Deploying CyberChef Open-Source Data Transformation Platform on Ubuntu 24.04
Step-by-step guide to deploy CyberChef with Docker Compose and Traefik on Ubuntu 24.04 for browser-based encoding, encryption, and analysis pipelines secured with automatic HTTPS.

CyberChef is GCHQ's open-source "cyber swiss army knife", a browser-based tool for encoding, encryption, compression, and data analysis pipelines. Everything runs client-side, so no data ever leaves the browser. This guide deploys CyberChef using Docker Compose with Traefik handling automatic HTTPS, following data transformation platform deployment practices documented in Vultr Docs.
Set Up the Directory Structure
1. Create the project directory:
mkdir -p ~/cyberchef
cd ~/cyberchef
2. Create the environment file:
nano .env
DOMAIN=cyberchef.example.com
LETSENCRYPT_EMAIL=admin@example.com
CyberChef is stateless, thus, no other directories are needed.
Deploy with Docker Compose
1. Create the Docker Compose manifest:
nano docker-compose.yaml
services:
traefik:
image: traefik:v3.6
container_name: traefik
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencrypt.acme.email=${LETSENCRYPT_EMAIL}"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
restart: unless-stopped
cyberchef:
image: ghcr.io/gchq/cyberchef:10.22.0
container_name: cyberchef
expose:
- "80"
labels:
- "traefik.enable=true"
- "traefik.http.routers.cyberchef.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.cyberchef.entrypoints=websecure"
- "traefik.http.routers.cyberchef.tls.certresolver=letsencrypt"
- "traefik.http.services.cyberchef.loadbalancer.server.port=80"
restart: unless-stopped
volumes:
letsencrypt:
2. Start the services:
docker compose up -d
3. Verify the services are running:
docker compose ps
docker compose logs
Access CyberChef
Open https://cyberchef.example.com in a browser. The four-panel UI loads:
Operations (left): searchable transform list
Recipe (centre): chain of operations
Input (top right): paste data
Output (bottom right): result
Run a Sample Recipe
1. Paste the Base64 input:
Q3liZXJDaGVmIHN1Y2Nlc3NmdWxseSBkZXBsb3llZCE=
2. Search for From Base64, drag it into the Recipe panel, then click Bake.
The Output panel shows:
CyberChef successfully deployed!
Next Steps
CyberChef is running and served securely over HTTPS. From here you can:
Save recipes as shareable URLs or JSON for reuse
Pin operations as favourites for quick recall
Front CyberChef with Authelia or basic auth if you want access control
For the full guide with additional tips, visit the original article on Vultr Docs.






