GrepBoard Tools
Small developer tools for servers and logs. What you type is calculated only in your browser and is not sent to a server.
Time & date
- cron · systemd time expressions*/15 * * * * · Mon..Fri 09:00Explain a crontab line or a systemd OnCalendar value, list the next 10 runs, convert between the two and catch common mistakes.
- Unix timestamp ↔ date1760842800 ⇄ 2025-10-19T03:00:00ZTurn an epoch value (seconds, ms, µs, ns) into ISO 8601 and RFC 2822 dates in any time zone, and a date back into a timestamp.
Network
- CIDR · subnet calculator192.0.2.10/24 → 192.0.2.1 – 192.0.2.254 (254)Network, broadcast, first and last host, netmask and wildcard for IPv4 and IPv6, a range check, subnet splitting and IANA special-purpose ranges.
- curl command buildercurl -H 'Accept: application/json' --data-raw '{"a":1}' …Build a safely quoted curl command from method, headers, JSON or form body, Basic or Bearer auth and common options — or paste one to see what each option does.
- HTTP status codes502 Bad Gateway · 499 (nginx) · 522 (Cloudflare)Every code in the IANA registry plus nginx 444 · 499 and Cloudflare 520–526, with meaning, common causes and when nginx, HAProxy or Cloudflare sends them.
- Certificate (PEM · X.509) decoderCN = ISRG Root X1 · 4096 bitPaste a PEM certificate or a whole chain: subject, issuer, days left, SANs, key type and size, signature algorithm, fingerprints, CA flag, key usage and whether the chain order is right.
Text & encoding
- Regex tester (JS · grep -E · grep -P)\d+ → JS ✓ · grep -E ✗ · grep -P ✓Highlight matches line by line with your browser's regex engine and see where grep -E (POSIX ERE) and grep -P (PCRE2) read the same pattern differently.
- Base64 · URL · JWT decodereyJhbGciOiJIUzI1NiJ9 → {"alg":"HS256"}Encode and decode Base64 (standard, URL-safe, no padding) and percent-encoding as UTF-8, and read a JWT's header and payload with exp and iat as dates — without verifying the signature.
- JSON · YAML formatter and converterdebug: no → 1.2 "no" · 1.1 falsePretty-print or minify JSON, find syntax errors by line and column, sort keys and convert JSON ↔ YAML — with the values YAML 1.1 (PyYAML) and 1.2 read differently.
- Hash & HMAC (MD5 · SHA)hello → 2cf24dba5fb0a30e…MD5, SHA-1, SHA-256, SHA-384 and SHA-512 of text (UTF-8, LF or CRLF) or a local file, with HMAC, sha256sum-style lines and a checksum comparison.
- Text diff (diff -u)-server_name example.com; +server_name example.com www…Line-by-line differences side by side or as a unified diff, with changed characters highlighted, -w / -b / -i options and output that matches GNU diff -u.
- UUID · ULID · token generator017f22e2-79b0-7cc3-… → v7 · 2022-02-22T19:22:22ZGenerate UUID v4, time-ordered UUID v7, ULID and random tokens with crypto.getRandomValues, and decode a pasted UUID's version, variant and time.
Server config
- nginx config generatorserver { listen 443 ssl http2; … }Choose static site or reverse proxy, HTTPS with a 301 redirect, upload size, gzip, log format, security headers and limit_req; get a sites-available server block that passes nginx -t.
- rsync command builderrsync -avh --delete src/ dest/Pick direction, mirror, excludes, bandwidth, progress and what to preserve; get one rsync line with each option explained and the trailing-slash rule spelled out.
- ssh_config generatorHost myserver · ProxyJump bastionFill in alias, address, user, port, key, jump host, forwards and keep-alive; get a ~/.ssh/config Host block and the permission commands.
- chmod · umask calculator755 ⇄ rwxr-xr-x · umask 027 → 640Convert 755 ↔ rwxr-xr-x ↔ checkboxes (setuid, setgid, sticky too), apply u+x,g-w to a mode, and see what a umask gives new files.
- htpasswd · bcrypt generatoradmin:$2y$10$…User name and password → a .htpasswd line in bcrypt ($2y$), APR1-MD5 or legacy {SHA}, with the nginx auth_basic and Apache setup; also checks whether a pasted line matches a password.
Step-by-step server guides are in the GrepBoard manuals; log files go into Log. grepboard.com · log.grepboard.com