Environment Variables
Core Settings
string
default:"3000"
Port number for the web server. The application listens on
0.0.0.0 by default.string
default:"0.0.0.0"
Host address to bind the web server. Use
0.0.0.0 to accept connections from any interface.string
default:"/app/data"
Directory for storing application data (database, stacks, cache). Should be mounted as a volume for data persistence.
string
default:"auto-detected"
Override the detected Docker host hostname. Useful for licensing and multi-host setups.
If not set, Dockhand automatically detects the hostname from the Docker daemon.
Database Configuration
string
default:"sqlite"
PostgreSQL connection string. If not set, Dockhand uses SQLite (stored in Format:
DATA_DIR/dockhand.db).postgres://USERNAME:PASSWORD@HOST:PORT/DATABASEboolean
default:"true"
Stop application startup if database migrations fail. Set to
false to continue despite migration errors (not recommended).boolean
default:"false"
Enable verbose SQL query logging for debugging database issues.
boolean
default:"false"
Skip database migrations entirely. Useful for read-only replicas or troubleshooting.
Docker Connection
string
default:"/var/run/docker.sock"
Path to the Docker socket inside the container. Useful when Docker socket is mounted at a non-standard location.
string
default:"unix:///var/run/docker.sock"
Docker daemon connection URL. Supports Unix socket, TCP, and SSH protocols.
When using TCP, configure TLS certificates via the web UI (Settings > Environments) for secure connections.
string
default:"auto-negotiated"
Force a specific Docker API version. Normally auto-negotiated with the daemon.
string
default:"auto-detected"
Host path to the data directory. Used for translating container paths when creating stacks. Auto-detected by inspecting Dockhand’s own container.
string
default:"auto-detected"
Host path to the Docker socket. Used for socket-proxy scenarios or non-standard socket locations.
Security & Authentication
string
default:"auto-generated"
Base64-encoded 32-byte encryption key for encrypting sensitive data (passwords, tokens, certificates). Auto-generated if not provided.
Generate a key with:
openssl rand -base64 32boolean
default:"auto"
Force secure cookies (HTTPS-only). Auto-detected based on
x-forwarded-proto header.true: Always use Secure flag (requires HTTPS)false: Never use Secure flag (allows HTTP)- Not set: Auto-detect based on
x-forwarded-proto: httpsheader
boolean
default:"false"
Disable username/password authentication and require SSO/OIDC login.
User & Permissions
integer
default:"1001"
User ID to run the application as. Useful for matching host user permissions.
The container automatically configures the
dockhand user with this UID on startup.integer
default:"1001"
Group ID to run the application as. Useful for matching host group permissions.
Performance & Timeouts
integer
default:"900"
Timeout in seconds for Docker Compose operations (up, down, pull). Increase for slow networks or large images.
boolean
default:"false"
Skip disk usage collection (
df command). Recommended for Synology NAS and other systems where df is slow.Disabling this removes disk usage graphs from the dashboard but significantly improves performance on affected systems.
boolean
default:"false"
Enable memory usage tracking and RSS snapshots for debugging memory leaks. Enables the
/api/debug/memory endpoint.integer
default:"60"
Interval in minutes for memory snapshots when
MEMORY_MONITOR=true.boolean
default:"false"
Disable metrics collection subprocess. Metrics include container stats, system info, and resource usage.
boolean
default:"false"
Disable Docker event stream monitoring. Events drive real-time UI updates.
Git Integration
string
default:"$DATA_DIR/git-repos"
Directory for storing cloned Git repositories (for Git-based stacks).
Configuration Examples
Production Deployment with PostgreSQL
docker-compose.yaml
Remote Docker Host Management
docker-compose.yaml
Configure TLS certificates for the remote Docker host via the web UI (Settings > Environments).
High-Performance Configuration
docker-compose.yaml
Debugging Configuration
docker-compose.yaml
Session Management
Session timeout is configured via the web UI:1
Navigate to Settings
Go to Settings > Authentication in the web interface.
2
Set Session Timeout
Configure Session Timeout in seconds:
- Minimum:
1second - Maximum:
2592000seconds (30 days) - Default:
86400seconds (24 hours)
3
Save Changes
Click Save. New sessions will use the updated timeout.
Sessions are stored in the database and survive container restarts.
TLS & HTTPS
Dockhand does not include a built-in TLS/HTTPS server. Use a reverse proxy for production deployments.Nginx Reverse Proxy Example
nginx.conf
The
X-Forwarded-Proto: https header enables automatic secure cookie mode.Traefik Reverse Proxy Example
docker-compose.yaml
Backup & Restore
SQLite Database
- Backup
- Restore
PostgreSQL Database
- Backup
- Restore
Troubleshooting
Database migration errors
Database migration errors
Symptoms: “Migration failed” errors on startupSolutions:
-
Check database connectivity:
-
Verify DATABASE_URL format:
-
Skip migrations temporarily (for diagnosis only):
Performance issues on Synology NAS
Performance issues on Synology NAS
Symptom: Slow dashboard, high CPU usageSolution: Disable disk usage collectionThe
df command is extremely slow on Synology DSM and can freeze the UI.Memory leaks or high memory usage
Memory leaks or high memory usage
Symptom: Container memory grows over timeSolution: Enable memory monitoringThen access:
http://localhost:3000/api/debug/memoryCompose operations timeout
Compose operations timeout
Symptom: Stack deployments fail with “timeout” errorsSolution: Increase timeoutUseful for large images or slow networks.
Cannot access Docker socket
Cannot access Docker socket
Symptom: “Permission denied” or “Socket not accessible”Solutions:
-
Add Docker socket group:
-
Verify socket is mounted:
-
Check entrypoint logs:
Locked out after enabling DISABLE_LOCAL_LOGIN
Locked out after enabling DISABLE_LOCAL_LOGIN
Solution: Temporarily re-enable local loginThen configure OIDC provider before re-enabling.
Next Steps
Authentication
Configure OIDC/SSO and LDAP authentication
Stacks
Deploy and manage Docker Compose stacks
API Reference
Integrate Dockhand with automation tools
Deployment Guide
Production deployment best practices
