> ## Documentation Index
> Fetch the complete documentation index at: https://docs.repocloud.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Dokploy

> Docker-native deployment platform on a dedicated VPS with Nixpacks, Docker Compose, Traefik routing, and one-click databases

## Dokploy on RepoCloud

Dokploy is an open-source, self-hosted PaaS built specifically for Docker container management. On RepoCloud, Dokploy runs on a dedicated VPS with full root access, SSH, a browser console, and all the management tools in the RepoCloud dashboard.

<CardGroup cols={2}>
  <Card title="Docker-Native" icon="docker">
    Purpose-built for Docker — deploy from Git repos, Docker images, or Docker Compose files with a unified interface
  </Card>

  <Card title="Auto-Detect Builds" icon="wand-magic-sparkles">
    Nixpacks auto-detects your language and dependencies, or use Heroku Buildpacks, Paketo, or a custom Dockerfile
  </Card>

  <Card title="Traefik Routing" icon="route">
    Built-in Traefik reverse proxy handles SSL certificates, domain routing, and load balancing automatically
  </Card>

  <Card title="One-Click Databases" icon="database">
    Provision PostgreSQL, MySQL, MariaDB, MongoDB, and Redis as first-class services alongside your apps
  </Card>

  <Card title="Full Root Access" icon="terminal">
    SSH into your server, use the browser console, and manage everything at the OS level
  </Card>

  <Card title="Container Orchestration" icon="layer-group">
    Built-in service orchestration with replicas, rolling updates, and health checks
  </Card>
</CardGroup>

## Prerequisites

* A RepoCloud account with credit balance (VPS Apps work with free sign-up credit)
* An email address for the Dokploy admin account

## Deploying Dokploy on RepoCloud

<Steps>
  <Step title="Find Dokploy in the Marketplace">
    Go to the RepoCloud marketplace and search for "Dokploy". Click on the Dokploy VPS listing.
  </Step>

  <Step title="Enter a Project Name">
    Choose a friendly name for your project (e.g., "my-dokploy"). This is for your reference in the RepoCloud dashboard.
  </Step>

  <Step title="Enter Your Admin Email">
    Provide the email address you want to use for the Dokploy admin account. It defaults to your RepoCloud account email.
  </Step>

  <Step title="Choose Resource Settings">
    Select a tier for your server. Tiers below 2 GB RAM are greyed out because Dokploy requires at least 2 GB for container orchestration initialization. Servers can be upgraded to a higher tier but not downsized.
  </Step>

  <Step title="Deploy">
    A dedicated IPv4 address is included with every VPS at no extra charge. Click **Deploy Dokploy** and wait 5–10 minutes.
  </Step>

  <Step title="Check Your Email">
    Once deployment finishes, you receive an email with:

    * **Dashboard URL** — the HTTPS link to your Dokploy dashboard
    * **App Credentials** — admin email and generated password
    * **SSH command** — `ssh root@<your-ip>`
    * **SSH Private Key** — save it to a file, `chmod 600`, and use it to connect
  </Step>
</Steps>

<Note>
  Dokploy requires a minimum of 2 GB RAM. Deploying on 1 GB causes out-of-memory errors during container orchestration initialization.
</Note>

## First-Time Setup

<Steps>
  <Step title="Open the Dashboard">
    Open the dashboard URL from your deployment email. Dokploy serves its web interface on port 3000, proxied through the VPS's default HTTPS domain.
  </Step>

  <Step title="Create Your Admin Account">
    On first visit, register with your name, email, and a secure password. The first account created becomes the Dokploy administrator.
  </Step>

  <Step title="Configure Your Domain (Optional)">
    For production use, go to **Settings** in the sidebar and set a domain for the Dokploy dashboard itself. Create a DNS A record pointing to your VPS IPv4, then enter the domain in Dokploy. It configures Traefik to serve the dashboard over HTTPS and you can close direct port 3000 access.
  </Step>
</Steps>

<Tip>
  After setup, consider restricting port 3000 to your IP address via `ufw`. All traffic should go through the Traefik HTTPS endpoint (port 443) once a domain is configured.
</Tip>

## Deploying Applications

### From a Git Repository

<Steps>
  <Step title="Create a Project">
    In the Dokploy dashboard, click **Create Project** and give it a name (e.g., "demo-project").
  </Step>

  <Step title="Add an Application">
    Inside the project, click **Create Service** and select **Application**. Name it (e.g., "my-app").
  </Step>

  <Step title="Configure the Source">
    Under the **General** tab, choose your provider (GitHub, GitLab, Bitbucket, or a raw Git URL). Enter the repository URL and branch.
  </Step>

  <Step title="Select Build Type">
    Choose a build method:

    * **Nixpacks** (default) — auto-detects your language and builds without a Dockerfile
    * **Heroku Buildpacks** — compatible with Heroku buildpack configurations
    * **Paketo Buildpacks** — Cloud Foundry buildpacks
    * **Dockerfile** — use a Dockerfile from your repo
  </Step>

  <Step title="Deploy">
    Click **Deploy**. Watch the build progress in the **Deployments** tab and runtime output in **Logs**.
  </Step>
</Steps>

### From a Docker Image

<Steps>
  <Step title="Create a Service">
    Inside a project, click **Create Service** and select **Application**.
  </Step>

  <Step title="Set the Docker Image">
    Under **General**, select **Docker** as the provider type and enter the image name (e.g., `nginx:latest` or `ghcr.io/your-org/your-image:v1.2`).
  </Step>

  <Step title="Configure and Deploy">
    Set environment variables, port mappings, and volumes as needed. Click **Deploy**.
  </Step>
</Steps>

### Docker Compose Stacks

Dokploy has first-class support for Docker Compose:

<Steps>
  <Step title="Create a Compose Service">
    Inside a project, click **Create Service** and select **Compose**.
  </Step>

  <Step title="Add Your Compose File">
    Paste your `docker-compose.yml` content or link a Git repository that contains one.
  </Step>

  <Step title="Configure Domains">
    Assign domains to any services in the stack that need external access. Dokploy configures Traefik labels for routing and SSL.
  </Step>

  <Step title="Deploy the Stack">
    Click **Deploy**. All services in the Compose file are built and started together.
  </Step>
</Steps>

## Managing Databases

Dokploy provisions databases as dedicated services:

<Steps>
  <Step title="Create a Database Service">
    Inside a project, click **Create Service** and select **Database**. Choose from PostgreSQL, MySQL, MariaDB, MongoDB, or Redis.
  </Step>

  <Step title="Configure">
    Set the database name, credentials, and any custom configuration. Dokploy pulls the official image and starts the container.
  </Step>

  <Step title="Connect Your App">
    Use the connection string shown in the database service details. For apps in the same Dokploy project, use the Docker internal hostname (e.g., `db-service:5432`).
  </Step>
</Steps>

Dokploy provides for each database:

* Connection credentials and strings
* Real-time log viewer
* Resource monitoring (CPU, memory, disk)
* Volume-backed persistent storage

## Custom Domains and SSL

Dokploy manages domains and SSL through its built-in Traefik reverse proxy:

**For applications deployed inside Dokploy:**

1. Open the application in the Dokploy dashboard
2. Go to the **Domains** tab
3. Click **Add Domain** and enter your domain (e.g., `app.yourdomain.com`)
4. Enable **HTTPS**
5. Create a DNS **A record** pointing to your VPS IPv4 address
6. Dokploy configures Traefik and provisions a Let's Encrypt certificate automatically

Traefik handles certificate renewal (30 days before expiry). If a certificate fails to issue, check that port 80 is open and DNS has propagated.

<Warning>
  Use Dokploy's own domain management for applications running inside it. The RepoCloud "Custom Domain" in the manage page is for the VPS itself, not for individual apps inside Dokploy.
</Warning>

## RepoCloud Manage Page

Your Dokploy VPS has a dedicated manage page in the RepoCloud dashboard with these sections:

<AccordionGroup>
  <Accordion title="Access">
    View your server's default domain (HTTPS link to Dokploy dashboard), dedicated IPv4 address, SSH connection command, and app credentials.
  </Accordion>

  <Accordion title="Power">
    **Power Off**, **Power On**, and **Reboot** controls. Available once deployment is complete.
  </Accordion>

  <Accordion title="Console">
    Browser-based serial console for emergency access without SSH.
  </Accordion>

  <Accordion title="SSH Keys">
    Manage SSH public keys for root access. An Ed25519 key pair is auto-generated at deployment.
  </Accordion>

  <Accordion title="Resize">
    Switch between tiers. Disk cannot be shrunk after an upgrade.
  </Accordion>

  <Accordion title="Snapshots">
    Create up to 5 point-in-time snapshots. Take one before risky changes. To restore, click **Restore** next to the target snapshot. If newer snapshots exist, a warning lists which ones will be permanently destroyed. The server restarts during restore (\~10–25 seconds) and the page refreshes automatically when complete.
  </Accordion>

  <Accordion title="Custom Domain (VPS-level)">
    Point your own domain to the VPS by creating an A record to your IPv4.
  </Accordion>

  <Accordion title="Danger Zone">
    Permanently delete the server and all data.
  </Accordion>
</AccordionGroup>

## Advanced Usage

### Container Orchestration

Dokploy includes built-in container orchestration. This gives you:

* **Service replicas** — scale any service to multiple replicas for redundancy
* **Rolling updates** — zero-downtime deployments with configurable update strategies
* **Health checks** — automatic restart of unhealthy containers
* **Service discovery** — containers can reach each other by service name

### Custom Networks

Create isolated Docker networks for groups of services:

* Navigate to **Settings > Docker** in the Dokploy dashboard
* Create custom overlay networks
* Assign services to specific networks for isolation

### Persistent Storage

Dokploy manages Docker volumes for data persistence:

* **Named volumes** are created automatically for databases
* **Bind mounts** can be configured for services that need specific host paths
* All persistent data is stored on the VPS disk and survives container restarts

### Terminal Access

Dokploy provides terminal access at two levels:

* **Host terminal** — access the VPS operating system (also available via SSH or the RepoCloud browser console)
* **Container terminal** — attach to any running container's shell directly from the Dokploy dashboard

## Troubleshooting

<AccordionGroup>
  <Accordion title="Dashboard not loading after deployment">
    Dokploy's dashboard runs on port 3000 behind the VPS's default HTTPS domain. If the URL does not load, wait a few more minutes for all containers to start. If it remains unreachable after 15 minutes, use the browser console from the RepoCloud manage page and run `docker service ls` to check service status.
  </Accordion>

  <Accordion title="Out of memory during initialization">
    Dokploy requires at least 2 GB RAM. On 1 GB servers, the orchestration initialization fails and SSH may become unresponsive. Resize to 2 GB or larger from the RepoCloud manage page.
  </Accordion>

  <Accordion title="Build fails with Nixpacks">
    Check the build log in the Deployments tab. Common causes: unsupported runtime version, missing `package.json` or `requirements.txt`, or incorrect build command. Switch the build type to Dockerfile if Nixpacks cannot detect your project correctly.
  </Accordion>

  <Accordion title="SSL certificate not provisioning">
    Verify your DNS A record points to the correct IPv4 (check the manage page Access section). Let's Encrypt uses port 80 for the HTTP-01 challenge — ensure it is not blocked. Check the Traefik logs under **Settings > Traefik** in the Dokploy dashboard.
  </Accordion>

  <Accordion title="Cannot SSH into the server">
    Ensure your key file has `chmod 600` permissions and you are connecting as `root`. If SSH is unresponsive, use the browser console from the RepoCloud manage page and check `systemctl status sshd`.
  </Accordion>
</AccordionGroup>

## Use Cases

Dokploy is ideal for:

* **Docker-first teams** who think in containers and Compose files rather than buildpacks
* **Developers** who want Vercel-like Git deploy workflows with full infrastructure control
* **DevOps engineers** who need container orchestration without the complexity of Kubernetes
* **Agencies** deploying multiple client apps on a single server with isolated networks and domains

## Next Steps

<CardGroup>
  <Card title="Deploy Dokploy" icon="rocket" href="https://repocloud.io/details/Dokploy%20VPS">
    Launch your Dokploy VPS from the RepoCloud marketplace
  </Card>

  <Card title="Dokploy Documentation" icon="book" href="https://docs.dokploy.com">
    Read the official Dokploy documentation
  </Card>

  <Card title="Coolify" icon="snowflake" href="/deployment/coolify">
    Explore Coolify as an alternative full-stack PaaS
  </Card>

  <Card title="VPS Apps Overview" icon="server" href="/deployment/vps-apps">
    Learn about all VPS Apps and the RepoCloud manage page
  </Card>
</CardGroup>
