ToolsOps
Fast digital tools, no install required.
Calculators, converters and utilities for developers and sysadmins. Everything runs in your browser. No unnecessary tracking.
Trust by default
- Runs in your browser
The data you enter is processed in your browser and not sent to a ToolsOps server.
- No account required
No sign-up, no login, no newsletter. Open the page and use it.
- Minimal, documented analytics
Cloudflare Web Analytics measures aggregated traffic and site performance. It does not receive the inputs you enter into the tools, emits no custom events and stays separate from any future monetization.
Why ToolsOps?
Fast tools: static pages, no load times or installs.
Privacy by default: logic runs in the user's browser, not on a server.
Built for developers, sysadmins and technical teams.
Each utility is an independent module, accessible directly from its URL.
Featured tools
See all →- Permissionschmod calculator - octal permissions 755, 750 and 765
Convert between octal (755, 750, 765, 644), symbolic (rwxr-xr-x) and ls -l style permissions. Supports setuid, setgid and sticky bit.
- JSON/YAMLOnline JSON validator and formatter
Validate, pretty-print or minify JSON in your browser. Errors show line and column whenever the browser exposes them. The JSON is processed in your tab, not sent to a ToolsOps server.
- DevOpsCron expression generator
Build, parse and explain 5-field Unix cron expressions. Computes the next runs in your local time zone.
- NetworkingIPv4/IPv6 CIDR and Subnet Calculator
IPv4/IPv6 CIDR and subnet calculator online: IPv4 masks and wildcard, IPv6 ranges, prefix splits and address totals in your browser.
- JSON/YAMLYAML to JSON and JSON to YAML Converter
Convert YAML to JSON and JSON to YAML in your browser. Nothing is sent to a server, no tracking, with clear error reporting.
- NetworkingMAC vendor and OUI lookup
Identify the vendor of a MAC address or OUI, normalize common formats and flag locally administered, multicast, broadcast or unknown addresses without sending data to a server.
- PermissionsUmask calculator - default Linux permissions
Calculate the permissions new files and directories get from a umask. Explains 022, 027, 077 and 002 with octal and symbolic output.
- SecurityHash and checksum calculator (SHA-256, MD5, SHA-512)
Calculate SHA-256, SHA-1, SHA-384, SHA-512 and MD5 of text or files without sending anything to a server. Compare against an expected checksum to verify downloads. Everything runs in your browser.
- SecurityJWT decoder and verifier (HS256, RS256, ES256)
Decode the header and payload of a JWT and verify its signature with HS256/384/512, RS256/384/512 or ES256/384/512. Everything runs in your browser with Web Crypto API: the token, secret, and key never leave the page.
- IdentifiersUUID generator and decoder (v4 and v7)
Generate, validate and decode UUIDs in your browser. Random v4 and time-ordered v7. The generated UUIDs and the input you paste for validate or decode run locally with Web Crypto API and are not sent to a server.
- DevOpsDocker Compose generator and validator
Generate a practical compose.yaml for common stacks (Postgres, MySQL, Redis, WordPress...), validate yours with an operational lint, and build correct healthchecks. All in your browser.
Technical guides
See all guides →- Linux chmod permissions guide
Linux chmod permissions: 755, 644 and 777 modes, symbolic notation, safe examples and common mistakes when setting permissions.
- What umask means in Linux and how to choose 022, 027 or 077
How default permissions for new files and directories are computed, what 022, 027, 077 and 002 each choose, and why umask complements (rather than replaces) chmod.
- CIDR subnetting guide for IPv4
Learn IPv4 CIDR and subnetting with /24, /30 and /32 examples, IP ranges, subnet masks and practical use cases.
- What a MAC address, OUI and vendor mean
Anatomy of MAC addresses: OUI vs device extension, MAC vs IP, locally administered, multicast/broadcast and why a MAC does not geolocate.
- JSON and YAML best practices
When to pick JSON or YAML, common errors in each, big numbers, YAML anchors, pre-deploy validation and why client-side execution matters.
- Cron expression examples for Linux and Unix
Practical Unix/POSIX cron examples: every 5 minutes, hourly, weekdays, monthly jobs and more. Includes POSIX OR semantics and common pitfalls.
- What a hash is, checksums and SHA-256 in practice
How hash functions work, the difference between a hash and a checksum, when to use SHA-256 over MD5, how to verify downloads and why plain hashes are not safe for storing passwords.
- JWT best practices: header, payload, signature and common pitfalls
What lives inside a JWT, how decoding differs from verifying, how HS256, RS256 and ES256 compare, what to do about expiration, why `alg: none` still causes incidents, and where to store the token.
- UUID v4 and v7: when to use each and how to validate
What a UUID is, how v4 (random) differs from v7 (time-ordered), when to use each as a primary key, how to validate and normalize UUIDs and common pitfalls when handling identifiers.
- Docker Compose healthchecks: depends_on, secrets and .env
How to write correct per-service healthchecks, use depends_on with condition: service_healthy, manage secrets with .env.example and avoid exposing database ports.
- Docker Compose examples: real stacks explained
A Docker Compose example library by stack (Postgres, Redis, Nginx, Node, WordPress, Prometheus + Grafana) with a comparison table, healthchecks, safe ports and the real error each one avoids.
- Docker Compose for PostgreSQL step by step
A working PostgreSQL compose.yaml with a persistent volume, pg_isready healthcheck, .env.example and the key commands, plus why changing the password fails if you keep the old volume.
- Docker Compose: PostgreSQL + pgAdmin
PostgreSQL with pgAdmin: connect the panel to the database by service name, bind it to localhost, .env.example and why exposing pgAdmin to the Internet is a bad idea.
- Docker Compose for Redis with a password
A Redis compose.yaml with requirepass, AOF persistence, a redis-cli healthcheck and a localhost-bound port, plus why a Redis with no AUTH and an open port gets compromised in minutes.
- Docker Compose for Node.js + PostgreSQL
A Node.js app and its PostgreSQL database in the same Compose, using depends_on and condition: service_healthy to avoid ECONNREFUSED on startup, migrations and dev vs production.
- Docker Compose: Nginx as a reverse proxy
Put an app behind Nginx: internal network, proxy_pass to the service name, healthcheck and how to diagnose a 502 Bad Gateway. Includes when to use Traefik or Caddy instead.
- Docker Compose for WordPress + MariaDB
WordPress with MariaDB locally: two volumes (database and files with your uploads), .env.example, a MariaDB healthcheck and how to fix the database connection error.
- Docker Compose: Prometheus + Grafana locally
Prometheus and Grafana locally: prometheus.yml, volumes for the data, connecting Grafana to Prometheus by service name, and what this stack monitors and what it does not.