Skip to main content

On This Page

Deploying CyberChef on Ubuntu 24.04 with Docker and Traefik

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

Deploying CyberChef Open-Source Data Transformation Platform on Ubuntu 24.04

CyberChef is GCHQ’s open-source “cyber swiss army knife” for data analysis. All operations run client-side, ensuring no data leaves the browser during processing.

Why This Matters

While many data transformation tools rely on server-side processing, which introduces privacy risks and latency, CyberChef’s client-side execution model eliminates the need for sensitive data to transit to a backend. Deploying this via Docker and Traefik provides a scalable, secure, and self-hosted environment that maintains this privacy model while adding professional TLS encryption.

Key Insights

  • Client-side Execution: All encoding and decryption happen in the browser, ensuring zero data leakage to the host server (GCHQ/CyberChef).
  • Stateless Architecture: The platform requires no persistent database directories, simplifying deployment via Docker Compose.
  • Automated Certificate Management: Traefik v3.6 integrates with Let’s Encrypt to handle automatic HTTPS provisioning via HTTP challenges.

Working Examples

Project directory setup and environment file initialization.

mkdir -p ~/cyberchef
cd ~/cyberchef
nano .env

.env configuration for domain and SSL email.

DOMAIN=cyberchef.example.com
LETSENCRYPT_EMAIL=[email protected]

Docker Compose manifest integrating Traefik as a reverse proxy for CyberChef.

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/dockersock:/var/run/docker sock:ro"
    restart: unless-stopped

  cyberchef:
    image: ghcr docker io/gchq/cyberchef:10220
    container_name: cyberchef
    expose:
      - "80"
    labels:								 	 	 	 	 	 	n
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"
// Note: formatting cleaned for readability from source manifest.
r restart unless stopped 
v volumes letsencrypt:

Practical Applications

  • … (Wait, I must stick strictly to provided content) …

References:

Continue reading

Next article

Deploying Discourse on Ubuntu 24.04: A Technical Guide to Self-Hosted Community Platforms

Related Content