Skip to main content

Core Settings

PORT

Default: 3000 HTTP server port.

HOST

Default: 0.0.0.0 Bind address for the HTTP server.

NODE_ENV

Default: production Node.js environment mode.

DATA_DIR

Default: /app/data (Docker) or ./data (local) Directory for persistent data (database, stacks, git repos, cache).

User and Permissions

PUID

Default: 1001 User ID for the Dockhand process (Docker only).

PGID

Default: 1001 Group ID for the Dockhand process (Docker only).

Database

DATABASE_URL

Default: SQLite at $DATA_DIR/db/dockhand.db PostgreSQL connection string. Omit to use SQLite.
See Database Configuration for details.

DB_FAIL_ON_MIGRATION_ERROR

Default: true Exit immediately if database migrations fail.

DB_VERBOSE_LOGGING

Default: false Enable verbose database logging.

SKIP_MIGRATIONS

Default: false Skip database migrations on startup (debugging only).

Docker Connection

DOCKER_SOCKET

Default: Auto-detected (/var/run/docker.sock) Path to the Docker socket.

DOCKER_HOST

Default: None Docker daemon connection URL.

DOCKER_API_VERSION

Default: Auto-negotiated Docker API version to use.

HOST_DATA_DIR

Default: Auto-detected Host path to DATA_DIR for Docker bind mounts.

HOST_DOCKER_SOCKET

Default: Auto-detected Host path to Docker socket for stack deployment.

Security

ENCRYPTION_KEY

Default: Auto-generated and saved to $DATA_DIR/.encryption_key 32-byte hex key for encrypting sensitive data (passwords, tokens, TLS keys).
Important: Back up this key. If lost, encrypted data cannot be recovered.
Generate a new key:
Default: Auto-detected (HTTPS = true, HTTP = false) Force secure cookies.

DISABLE_LOCAL_LOGIN

Default: false Disable local username/password login (force SSO).

Hostname

DOCKHAND_HOSTNAME

Default: Auto-detected from Docker API Hostname for license validation and display.

HOSTNAME

Default: Container hostname Container hostname (used for host path detection).

Performance

COMPOSE_TIMEOUT

Default: 900 (15 minutes) Timeout in seconds for Docker Compose operations.

SKIP_DF_COLLECTION

Default: false Skip disk usage collection (use if df command is slow).

MEMORY_MONITOR

Default: false Enable memory monitoring and heap snapshots.

SNAPSHOT_INTERVAL

Default: 60 (minutes) Interval for memory snapshots when MEMORY_MONITOR=true.

Event Collection

DISABLE_METRICS

Default: false Disable metrics collection (CPU, memory, disk).

DISABLE_EVENTS

Default: false Disable container event collection.

Git Integration

GIT_REPOS_DIR

Default: $DATA_DIR/git-repos Directory for cloned Git repositories.

Timezone

TZ

Default: UTC Timezone for logs and timestamps.

Example Configuration

Docker Compose with PostgreSQL

docker-compose.yaml

Environment File (.env)

.env

Best Practices

Use .env Files

Store sensitive variables in .env files, not in docker-compose.yaml.

Back Up Keys

Back up ENCRYPTION_KEY and .encryption_key file. Without them, encrypted data is lost.

Set Timeouts

Increase COMPOSE_TIMEOUT for large stacks that take time to deploy.

Use PostgreSQL

For production, use PostgreSQL instead of SQLite for better performance and reliability.

Validation

Check current environment variables:
Test database connection: