Server Configuration

Configuration files, environment variables, and file paths.

config.json

The server reads configuration from /var/lib/openberth/config.json. The installer creates this file for you.

{
  "domain": "openberth.example.com",
  "port": 3456,
  "dataDir": "/var/lib/openberth",
  "cloudflareProxy": false,
  "insecure": false,
  "defaultTTLHours": 72,
  "defaultMaxDeploys": 10,
  "containerDefaults": {
    "memory": "512m",
    "cpus": "0.5",
    "pidsLimit": 256,
    "diskSize": "2g",
    "networkQuota": "5g"
  }
}

Configuration fields

Field Default Description
domain localhost Your domain name
port 3456 Port the server listens on (behind Caddy)
dataDir /var/lib/openberth Data directory (DB, deploys, uploads)
cloudflareProxy false Use Cloudflare proxy mode (internal TLS instead of Let’s Encrypt)
insecure false HTTP-only mode (no TLS certificates, for local/testing)
defaultTTLHours 72 Default deployment lifetime in hours
defaultMaxDeploys 10 Max deployments per user
containerDefaults.memory 512m Default memory limit per container
containerDefaults.cpus 0.5 Default CPU limit per container
containerDefaults.pidsLimit 256 Max processes per container
containerDefaults.diskSize — Container root filesystem limit (requires overlay2+xfs+pquota)
containerDefaults.networkQuota — Max network transfer per container (Caddy access log based)

Environment variables

DATA_DIR — overrides the data directory. Defaults to /var/lib/openberth.

File paths

Path Description
/var/lib/openberth/config.json Server configuration
/var/lib/AmirSoleimani/openberth.db SQLite database (WAL mode)
/var/lib/openberth/deploys/{id}/ Deployment source code
/var/lib/openberth/persist/{id}/ Persistent data (/data directory)
/etc/caddy/sites/{subdomain}.caddy Caddy reverse proxy configs
/etc/systemd/system/openberth.service Systemd service unit
/usr/local/bin/berth-server Server binary