Skip to main content

Overview

Server settings allow you to configure core Dokploy server behavior, including domain configuration, SSL/TLS certificates, automated cleanup tasks, and monitoring options.

Domain Configuration

Assign a domain to your Dokploy server and configure SSL/TLS certificates.
host
string
The domain name for your Dokploy server
# Example
dokploy.example.com
https
boolean
default:"false"
Enable HTTPS for the server
certificateType
enum
default:"none"
SSL certificate type to use
  • none - No SSL certificate
  • letsencrypt - Automatic Let’s Encrypt certificate
  • custom - Custom SSL certificate
letsEncryptEmail
string
Email address for Let’s Encrypt certificate notifications (required when using Let’s Encrypt)

Server IP Configuration

serverIp
string
Public IP address of your server. Used for DNS configuration and service access.
# IPv4 example
192.168.1.100

# IPv6 example
2001:0db8:85a3:0000:0000:8a2e:0370:7334

SSH Configuration

sshPrivateKey
string
SSH private key for remote server access. Used for deploying to remote servers and executing commands.
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
...
-----END OPENSSH PRIVATE KEY-----
Keep your SSH private key secure. It grants access to remote servers.

Docker Cleanup

Automate Docker resource cleanup to prevent disk space issues.
enableDockerCleanup
boolean
default:"true"
Enable automated Docker cleanup tasksWhen enabled, Dokploy will periodically clean up:
  • Unused Docker images
  • Stopped containers
  • Unused volumes
  • Build cache
  • Dangling images

Cleanup Schedule

Docker cleanup runs on a cron schedule: 0 0 * * * (daily at midnight) The cleanup process:
  1. Removes unused Docker images
  2. Removes stopped containers
  3. Removes unused volumes
  4. Prunes build cache
  5. Sends notifications (if configured)

Manual Cleanup

You can also trigger cleanup operations manually through the API:
# Clean unused images
curl -X POST https://your-domain.com/api/trpc/settings.cleanUnusedImages \
  -H "x-api-key: your-api-key"

# Clean stopped containers
curl -X POST https://your-domain.com/api/trpc/settings.cleanStoppedContainers \
  -H "x-api-key: your-api-key"

# Clean unused volumes
curl -X POST https://your-domain.com/api/trpc/settings.cleanUnusedVolumes \
  -H "x-api-key: your-api-key"

# Clean all (comprehensive cleanup)
curl -X POST https://your-domain.com/api/trpc/settings.cleanAll \
  -H "x-api-key: your-api-key"

Log Cleanup

logCleanupCron
string
default:"0 0 * * *"
Cron expression for automated log cleanup. Default runs daily at midnight.
# Every day at midnight
0 0 * * *

# Every Sunday at 3 AM
0 3 * * 0

# Every 6 hours
0 */6 * * *

Build Cache Cleanup

Configure automatic cache cleanup for different deployment types:
cleanupCacheApplications
boolean
default:"false"
Clean build cache for application deploymentsWhen enabled, build cache is cleared after each application deployment.
cleanupCacheOnPreviews
boolean
default:"false"
Clean build cache for preview deploymentsWhen enabled, build cache is cleared after each preview deployment.
cleanupCacheOnCompose
boolean
default:"false"
Clean build cache for Docker Compose deploymentsWhen enabled, build cache is cleared after each compose deployment.

Metrics Configuration

Configure server and container monitoring settings.

Server Metrics

metricsConfig.server.type
enum
default:"Dokploy"
Metrics collection type
  • Dokploy - Built-in metrics collection
  • Remote - Remote metrics server
metricsConfig.server.refreshRate
number
default:"60"
Metrics refresh rate in seconds. Minimum value: 2 seconds.
metricsConfig.server.port
number
default:"4500"
Port for metrics server
metricsConfig.server.retentionDays
number
default:"2"
Number of days to retain metrics data
metricsConfig.server.thresholds.cpu
number
default:"0"
CPU usage threshold for alerts (percentage). Set to 0 to disable.
{
  "cpu": 80
}
metricsConfig.server.thresholds.memory
number
default:"0"
Memory usage threshold for alerts (percentage). Set to 0 to disable.
{
  "memory": 85
}

Container Metrics

metricsConfig.containers.refreshRate
number
default:"60"
Container metrics refresh rate in seconds. Minimum value: 2 seconds.
metricsConfig.containers.services.include
array
List of container names to include in metrics collection
{
  "include": ["app-container-1", "app-container-2"]
}
metricsConfig.containers.services.exclude
array
List of container names to exclude from metrics collection
{
  "exclude": ["temp-container", "test-container"]
}

Traefik Configuration

Dokploy uses Traefik as its reverse proxy and load balancer.

Dashboard

Enable the Traefik dashboard for monitoring and debugging:
# The dashboard runs on port 8080
http://your-server-ip:8080
Port 8080 must be available on your server. The system will check for conflicts before enabling the dashboard.

Environment Variables

Traefik can be configured using environment variables. Access them via:
# Read current Traefik environment variables
curl https://your-domain.com/api/trpc/settings.readTraefikEnv \
  -H "x-api-key: your-api-key"

Custom Ports

Configure additional ports for Traefik:
{
  "additionalPorts": [
    {
      "targetPort": 3000,
      "publishedPort": 3000,
      "protocol": "tcp"
    }
  ]
}
targetPort
number
The port inside the container
publishedPort
number
The port exposed on the host
protocol
enum
Network protocol
  • tcp - Transmission Control Protocol
  • udp - User Datagram Protocol
  • sctp - Stream Control Transmission Protocol

Access Logs

Enable request logging for debugging and monitoring:
{
  "accessLog": {
    "filePath": "/etc/dokploy/traefik/dynamic/access.log",
    "format": "json",
    "bufferingSize": 100
  }
}
When enabled, Traefik logs all HTTP requests with:
  • Request method and path
  • Response status code
  • Client IP address
  • Request duration
  • Timestamp

GPU Support

Configure GPU support for applications that require GPU acceleration:
# Setup GPU support
curl -X POST https://your-domain.com/api/trpc/settings.setupGPU \
  -H "x-api-key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"serverId": "your-server-id"}'

# Check GPU status
curl https://your-domain.com/api/trpc/settings.checkGPUStatus \
  -H "x-api-key: your-api-key"
GPU status includes:
  • Driver installation status
  • GPU model information
  • CUDA support and version
  • Available memory
  • Number of GPUs
  • Docker runtime configuration

Environment Variables

Core Dokploy environment variables:
DATABASE_URL
string
required
PostgreSQL database connection string
DATABASE_URL="postgres://user:password@localhost:5432/dokploy"
PORT
number
default:"3000"
Port for the Dokploy server
PORT=3000
NODE_ENV
string
default:"production"
Node.js environment mode
  • development - Development mode with hot reload
  • production - Production mode with optimizations
DOKPLOY_CLOUD_IPS
string
Comma-separated list of Dokploy Cloud IP addresses (Cloud version only)
DOKPLOY_CLOUD_IPS="192.168.1.1,192.168.1.2"

Server Management

Reload Server

Restart the Dokploy server:
curl -X POST https://your-domain.com/api/trpc/settings.reloadServer \
  -H "x-api-key: your-api-key"

Reload Traefik

Restart the Traefik proxy:
curl -X POST https://your-domain.com/api/trpc/settings.reloadTraefik \
  -H "x-api-key: your-api-key"

Reload Redis

Restart the Redis cache:
curl -X POST https://your-domain.com/api/trpc/settings.reloadRedis \
  -H "x-api-key: your-api-key"

Clean Redis

Flush all Redis data:
curl -X POST https://your-domain.com/api/trpc/settings.cleanRedis \
  -H "x-api-key: your-api-key"
This will remove all cached data and queued jobs.

Updates

Check for Updates

curl https://your-domain.com/api/trpc/settings.getUpdateData \
  -H "x-api-key: your-api-key"
Response:
{
  "updateAvailable": true,
  "latestVersion": "v0.5.0",
  "currentVersion": "v0.4.0"
}

Update Server

curl -X POST https://your-domain.com/api/trpc/settings.updateServer \
  -H "x-api-key: your-api-key"
The update process:
  1. Downloads the latest version
  2. Creates a backup
  3. Updates the Docker service
  4. Restarts Dokploy
The server will be unavailable for a few minutes during the update.

Health Check

Verify server health:
curl https://your-domain.com/api/trpc/settings.health
Response:
{
  "status": "ok"
}

Version Information

# Get Dokploy version
curl https://your-domain.com/api/trpc/settings.getDokployVersion \
  -H "x-api-key: your-api-key"

# Get release tag
curl https://your-domain.com/api/trpc/settings.getReleaseTag \
  -H "x-api-key: your-api-key"

Build docs developers (and LLMs) love