Getting Started

Set up your own Dokploy Enhanced build in under 10 minutes.

Table of contents
  1. Choose Your Path
  2. Option 1: Use Pre-Built Images
    1. One-Line Install
    2. What Gets Deployed
    3. Access Your Instance
  3. Option 2: Fork and Customize
    1. Step 1: Fork the Repository
    2. Step 2: Enable GitHub Actions
    3. Step 3: Configure Container Registry
    4. Step 4: Choose Your PRs
    5. Step 5: Trigger Your First Build
    6. Step 6: Deploy Your Build
  4. Finding Good PRs
    1. Where to Look
    2. What to Look For
    3. Recommended Evaluation
  5. Configuration Options
    1. Environment Variables
    2. Full Variable Reference
  6. Post-Installation
    1. File Locations
    2. Common Commands
  7. Automatic Updates
  8. Troubleshooting
    1. Build Fails with Merge Conflict
    2. Image Not Found
    3. Services Won’t Start
  9. Next Steps

Choose Your Path

Option Best For Time
Use Pre-Built Images Quick start, testing 2 min
Fork and Customize Production, custom PRs 10 min

Option 1: Use Pre-Built Images

Use our pre-built images with curated PR selections.

One-Line Install

curl -sSL https://raw.githubusercontent.com/amirhmoradi/dokploy-enhanced/main/install.sh | bash

What Gets Deployed

Component Details
Dokploy Enhanced image with merged PRs
PostgreSQL 16 Database with persistence
Valkey (Redis) Cache layer with AOF persistence
Traefik Reverse proxy with HTTPS (optional)

Access Your Instance

After installation completes:

╔════════════════════════════════════════════════════════════════╗
║                    Installation Complete!                       ║
╠════════════════════════════════════════════════════════════════╣
║  Access Dokploy at: http://YOUR_SERVER_IP:3000                 ║
║  Configuration: /etc/dokploy/.env                              ║
╚════════════════════════════════════════════════════════════════╝

This option uses our PR selections. For full control, use Option 2.


Option 2: Fork and Customize

Create your own build with exactly the PRs you want.

Step 1: Fork the Repository

  1. Go to github.com/amirhmoradi/dokploy-enhanced
  2. Click Fork in the top right
  3. Keep all default settings
  4. Click Create fork

Step 2: Enable GitHub Actions

  1. Go to your forked repository
  2. Click Actions tab
  3. Click I understand my workflows, go ahead and enable them

Step 3: Configure Container Registry

GitHub Container Registry (GHCR) needs write permissions:

  1. Go to SettingsActionsGeneral
  2. Scroll to Workflow permissions
  3. Select Read and write permissions
  4. Click Save

Step 4: Choose Your PRs

  1. Go to SettingsSecrets and variablesActions
  2. Click the Variables tab
  3. Click New repository variable
  4. Configure:
Name Value
PR_NUMBERS_TO_MERGE Comma-separated PR numbers (e.g., 1234,5678,9012)

Finding PRs: Browse Dokploy Pull Requests for features you need. Note the PR numbers.

Step 5: Trigger Your First Build

  1. Go to Actions tab
  2. Click Auto-Merge PRs and Build Enhanced Dokploy
  3. Click Run workflow
  4. Configure:
    • Branch: main
    • PR numbers: Leave empty to use your configured variable
    • Dokploy branch: canary (recommended) or main
  5. Click Run workflow

The build takes approximately 15-20 minutes.

Step 6: Deploy Your Build

Once the build completes, deploy using your registry:

DOKPLOY_REGISTRY=ghcr.io/YOUR_GITHUB_USERNAME \
curl -sSL https://raw.githubusercontent.com/YOUR_GITHUB_USERNAME/dokploy-enhanced/main/install.sh | bash

Replace YOUR_GITHUB_USERNAME with your actual GitHub username.


Finding Good PRs

Where to Look

  1. Open Pull Requests — Browse current PRs
  2. Issues with Linked PRs — Find PRs that fix specific issues
  3. Community Discussions — See what others need

What to Look For

Good candidates: Bug fixes, security patches, well-tested features, PRs with positive reviews

Use caution: Large refactors, breaking changes, PRs with failing tests, very old PRs

Before adding a PR:

  1. Read the PR description — Understand what it does
  2. Check the diff — Review the code changes
  3. Look at test status — Ensure CI passes
  4. Read comments — See maintainer/community feedback
  5. Check for conflicts — Very old PRs may not merge cleanly

Configuration Options

Environment Variables

Customize installation with environment variables:

# Custom port
DOKPLOY_PORT=8080 curl -sSL ... | bash

# Skip Traefik (use your own reverse proxy)
SKIP_TRAEFIK=true curl -sSL ... | bash

# Specific version
DOKPLOY_VERSION=20250110 curl -sSL ... | bash

# Custom PostgreSQL password
POSTGRES_PASSWORD=mysecretpassword curl -sSL ... | bash

# Force mode (skip confirmations)
FORCE=true curl -sSL ... | bash

Full Variable Reference

Variable Default Description
DOKPLOY_PORT 3000 Web interface port
DOKPLOY_VERSION latest Docker image tag
DOKPLOY_REGISTRY ghcr.io/amirhmoradi Docker registry
SKIP_TRAEFIK false Skip Traefik installation
POSTGRES_PASSWORD Auto-generated Database password
ADVERTISE_ADDR Auto-detected Docker Swarm address
FORCE false Skip confirmations
DEBUG false Enable debug output

Post-Installation

File Locations

/etc/dokploy/
├── .env                    # Configuration (edit this!)
├── docker-compose.yml      # Stack definition
├── install-info.json       # Installation metadata
└── traefik/                # Traefik configuration (if enabled)

Common Commands

# Check status
./install.sh status

# View logs
./install.sh logs -f

# Restart services
./install.sh restart

# Update to latest
./install.sh update

# Create backup
./install.sh backup

Automatic Updates

The GitHub Actions workflow runs daily at 00:00 UTC, automatically:

  1. Pulling latest Dokploy changes
  2. Merging your configured PRs
  3. Building new images
  4. Pushing to your registry

To update your deployment:

cd /etc/dokploy
./install.sh update

Troubleshooting

Build Fails with Merge Conflict

Some PRs may conflict with each other or with upstream changes.

Solution: Remove the conflicting PR from your list and try again. Check the build logs to identify which PR caused the conflict.

Image Not Found

Ensure your container registry is public or properly authenticated.

Solution:

  1. Go to your GitHub profile → Packages
  2. Find your dokploy-enhanced package
  3. Click Package settings
  4. Under Danger Zone, change visibility to Public

Services Won’t Start

Check Docker logs and service status:

./install.sh logs
docker compose -f /etc/dokploy/docker-compose.yml ps

Next Steps


Back to top

Dokploy Enhanced is open source under the MIT License. Not affiliated with Dokploy.