# Server PORT=3000 NODE_ENV=development API_BASE_URL=http://localhost:3000 BODY_LIMIT=5mb # Redis REDIS_URL=redis://localhost:6379 # Authentication (space-separated for multiple tokens) AUTH_TOKEN=your-secret-token # Auth headers to check (space-separated, checked in order) AUTH_HEADERS=X-Auth-Token x-rapidapi-key # Execution Limits DEFAULT_CPU_TIME_LIMIT=5 MAX_CPU_TIME_LIMIT=15 DEFAULT_WALL_TIME_LIMIT=10 MAX_WALL_TIME_LIMIT=30 DEFAULT_MEMORY_LIMIT=128000 MAX_MEMORY_LIMIT=512000 MAX_PROCESSES=60 MAX_SOURCE_SIZE=65536 MAX_ADDITIONAL_FILES_SIZE=2097152 # Worker WORKER_CONCURRENCY=4 # Cache RESULT_CACHE_TTL=3600 # Rate Limiting RATE_LIMIT_WINDOW_MS=60000 RATE_LIMIT_MAX_REQUESTS=100 # Executor Type # Options: auto | docker | firecracker # auto = Firecracker if available, otherwise Docker EXECUTOR_TYPE=auto # Docker Settings DOCKER_SOCKET=/var/run/docker.sock CONTAINER_TIMEOUT=30000 # Firecracker Settings (only used when EXECUTOR_TYPE=firecracker or auto on Linux with KVM) FC_BASE_DIR=/var/lib/codebox/firecracker FC_KERNEL_PATH=/var/lib/codebox/firecracker/kernels/vmlinux # ── Production resource limits (docker-compose.prod.yml) ─────────────────── # Defaults below are sized for a 2 vCPU / 8GB VPS. # WORKER_CPUS must NOT exceed the host's vCPU count or Docker refuses to # start the container ("Range of CPUs is from 0.01 to N.00"). WORKER_CPUS=1.5 WORKER_MEMORY=4G API_CPUS=0.25 API_MEMORY=256M REDIS_CPUS=0.25 REDIS_MEMORY=384M REDIS_MAXMEMORY=256mb CADDY_CPUS=0.25 CADDY_MEMORY=128M PROMETHEUS_CPUS=0.25 PROMETHEUS_MEMORY=512M PROMETHEUS_RETENTION=7d GRAFANA_CPUS=0.25 GRAFANA_MEMORY=256M # Domain. This single variable selects how CodeBox is served. # # DOMAIN= -> plain HTTP on this server's IP, port 80. # No DNS record and no certificate needed. # Traffic and API tokens travel in cleartext. # # DOMAIN=codebox.example.com -> automatic HTTPS via Let's Encrypt. # Needs an A record already pointing at this # server and ports 80+443 reachable (check the # provider's panel firewall as well as ufw). # # Leave it blank to start without a domain; fill it in and re-run # `docker compose -f docker-compose.prod.yml up -d` to switch to HTTPS later. DOMAIN= METRICS_TOKEN=change-me GRAFANA_PASSWORD=change-me