Dokploy

Your own Vercel, Heroku or Netlify. Deploy apps and databases on ZimaOS with a few clicks

  • ghcr.io/hsinghhira/dokploy:latest
  • v0.30.10
  • Updated 30 Oct 2026
  • port 6183
  • amd64 · arm64
  • Developer
  • 38.1k stars

Screenshots

Dokploy screenshot 1: Compose stackDokploy screenshot 2: DeploymentsDokploy screenshot 3: Domains

Open the app

Dashboard

http://localhost:6183/

About Dokploy

Dokploy deploys your apps and databases on your own server, like your own Vercel, Heroku or Netlify. Point it at a Git repository or a Docker image, and it builds, runs and updates the app for you, with domains and free HTTPS certificates through Traefik. This IceStore version runs as one ZimaOS app: on first start it sets up Docker Swarm, its Postgres database and Traefik by itself, and every install gets its own secret keys.

Features

  • Deploy from GitHub, GitLab, Bitbucket, Gitea, any Git URL or a Docker image
  • Builds with Nixpacks, Railpack, Heroku buildpacks or your Dockerfile
  • Docker Compose stacks and one-click templates
  • Postgres, MySQL, MariaDB, MongoDB, Redis and libSQL databases, with backups to S3
  • Domains and Let's Encrypt certificates through Traefik
  • Logs, a terminal, resource graphs and deploy notifications
  • Teams, roles, an API and a CLI

How to use

  1. Open http://[ZIMAOS-IP-ADDRESS]:6183 and make the admin account.
  2. Make a project, then add an application, a compose stack or a database to it.
  3. Pick where the code comes from and press Deploy.
  4. Add a domain in the app's Domains tab. On your home network, open the app at http://<domain>:6184.

Before you install

Dokploy takes control of Docker on your ZimaOS: on first start it turns on Docker Swarm and adds a dokploy-postgres service and a dokploy-traefik container next to the app. Deployed apps are served on port 6184 (http) and 6185 (https), because ZimaOS uses 80 and 443 itself. For domains from the internet, forward ports 80 and 443 on your router to 6184 and 6185. The first start takes two or three minutes. Then open http://[ZIMAOS-IP-ADDRESS]:6183 and make the admin account.

If a deployed app won't start, open its Advanced tab, go to Cluster Settings and set the Endpoint Spec mode to dnsrr; ZimaOS's kernel lacks a feature (IPVS) that Swarm uses by default. Update Dokploy from the IceStore, not with the Update button inside Dokploy. Don't install this next to a Dokploy set up with its own install script.

Uninstalling the app leaves Swarm, dokploy-postgres, dokploy-traefik and your deployed apps running. To remove them too, run docker service rm dokploy-postgres, docker rm -f dokploy-traefik and docker swarm leave --force on ZimaOS.

The settings in the first table are already in the app settings. To use any other one, open the app settings, add the variable with your value, save, and the app restarts with it. A setting you leave out uses its default.

In the app settings

VariableDefault valueDescription
TZ$TZYour time zone, used for logs and scheduled jobs. It is filled in from your ZimaOS time zone. Leave it unless you need another.
TRAEFIK_PORT6184The port your deployed apps are served on over http. Not 80, which ZimaOS uses itself. To reach apps by domain from the internet, forward port 80 on your router to this port. Change it before the first start; afterwards change it in Dokploy under Web Server > Traefik too.
TRAEFIK_SSL_PORT6185The port your deployed apps are served on over https. Not 443. To reach apps by domain from the internet, forward port 443 on your router to this port. Change it before the first start, like TRAEFIK_PORT.

Traefik

VariableDefault valueDescription
TRAEFIK_HTTP3_PORT6185The UDP port for HTTP/3. Leave it out to use TRAEFIK_SSL_PORT.
TRAEFIK_VERSION—The Traefik version to run, like 3.6.25. Leave it out to use the one this Dokploy version comes with.

Docker Swarm

VariableDefault valueDescription
ADVERTISE_ADDR—The address Docker Swarm is set up with, only used when the swarm is first made. Leave it out for 127.0.0.1. Set it to your ZimaOS IP to add other servers to the swarm later.
DOCKER_SWARM_INIT_ARGS—More options for docker swarm init, only used when the swarm is first made. Use --default-addr-pool 172.20.0.0/16 --default-addr-pool-mask-length 24 if your home network uses 10.x.x.x addresses.
DOKPLOY_DOCKER_API_VERSION—The Docker API version to talk to, like 1.44. Only needed if your Docker is older than Dokploy expects.

Secrets

VariableDefault valueDescription
BETTER_AUTH_SECRET—Your own sign-in key. Leave it out: each install makes its own on first start and keeps it in the data folder as .better_auth_secret. Changing it signs everyone out.

API

VariableDefault valueDescription
OPENAPI_MAX_JSON_BODY_SIZE10485760The largest JSON request the API accepts, in bytes.
OPENAPI_MAX_UPLOAD_SIZE1073741824The largest file upload the API accepts, in bytes.
docker-compose.yml
name: dokploy

services:
  dokploy:
    image: ghcr.io/hsinghhira/dokploy:latest
    container_name: dokploy
    restart: unless-stopped
    stop_grace_period: 30s
    network_mode: bridge
    environment:
      - TZ=$TZ
      - TRAEFIK_PORT=6184
      - TRAEFIK_SSL_PORT=6185
    ports:
      - target: 3000
        published: "6183"
        protocol: tcp
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/data
        target: /data
        bind:
          create_host_path: true
      - type: bind
        source: /DATA/AppData/$AppID/docker-config
        target: /root/.docker
        bind:
          create_host_path: true
      - type: bind
        source: /etc/dokploy
        target: /etc/dokploy
        bind:
          create_host_path: true
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
    healthcheck:
      test: ["CMD", "curl", "-fs", "-o", "/dev/null", "http://127.0.0.1:3000/api/trpc/settings.health"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 180s
    deploy:
      resources:
        limits:
          cpus: "2.00"
          memory: 2048M
        reservations:
          cpus: "0.00"
          memory: 256M
    labels:
      icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dokploy/icon.png
    x-casaos:
      id: com.icestore.dokploy
      envs:
        - container: TZ
          description:
            en_US: >-
              Your time zone, used for logs and scheduled jobs. It is filled
              in from your ZimaOS time zone. Leave it unless you need another.
        - container: TRAEFIK_PORT
          description:
            en_US: >-
              The port your deployed apps are served on over http. Not 80,
              which ZimaOS uses itself. To reach apps by domain from the
              internet, forward port 80 on your router to this port. Change
              it before the first start; afterwards change it in Dokploy
              under Web Server > Traefik too.
        - container: TRAEFIK_SSL_PORT
          description:
            en_US: >-
              The port your deployed apps are served on over https. Not 443.
              To reach apps by domain from the internet, forward port 443 on
              your router to this port. Change it before the first start,
              like TRAEFIK_PORT.
      ports:
        - container: "3000"
          description:
            en_US: Dokploy dashboard, published on host as 6183
      volumes:
        - container: /data
          description:
            en_US: >-
              Dokploy's database (postgres/), plus .better_auth_secret and
              .postgres_password, this install's own keys made on first
              start. Back this folder up.
        - container: /root/.docker
          description:
            en_US: >-
              Docker registry logins Dokploy uses to pull and push your
              images.
        - container: /etc/dokploy
          description:
            en_US: >-
              Dokploy's working folder on ZimaOS: Traefik settings and
              certificates, app source code, compose files, logs and backups.
              It must be /etc/dokploy on the host too, because Dokploy hands
              these paths to Docker.
        - container: /var/run/docker.sock
          description:
            en_US: >-
              The Docker socket. Dokploy uses it to set up Docker Swarm,
              Postgres and Traefik and to build and run your apps. This gives
              Dokploy full control of Docker on ZimaOS.

x-casaos:
  id: com.icestore.dokploy
  architectures:
    - amd64
    - arm64
  main: dokploy
  author: HSinghHira
  category: Developer
  developer: Dokploy
  icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dokploy/icon.png
  thumbnail: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dokploy/screenshot-1.png
  screenshot_link:
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dokploy/screenshot-1.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dokploy/screenshot-2.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dokploy/screenshot-3.png
  title:
    en_US: Dokploy
  tagline:
    en_US: Your own Vercel, Heroku or Netlify. Deploy apps and databases on ZimaOS with a few clicks
  description:
    en_US: >-
      Visit: [https://icestore.hsinghhira.me/app/dokploy/](https://icestore.hsinghhira.me/app/dokploy/) for full details


      Dokploy deploys your apps and databases on your own server. Point it at
      a Git repository or a Docker image, and it builds, runs and updates the
      app for you, with domains and free HTTPS certificates through Traefik.
      This IceStore version runs as one ZimaOS app: on first start it sets up
      Docker Swarm, its Postgres database and Traefik by itself, and every
      install gets its own secret keys.


      **Features**


      - Deploy from GitHub, GitLab, Bitbucket, Gitea, any Git URL or a Docker
        image

      - Builds with Nixpacks, Railpack, Heroku buildpacks or your Dockerfile

      - Docker Compose stacks and one-click templates

      - Postgres, MySQL, MariaDB, MongoDB, Redis and libSQL databases, with
        backups to S3

      - Domains and Let's Encrypt certificates through Traefik

      - Logs, a terminal, resource graphs and deploy notifications

      - Teams, roles, an API and a CLI


      **How to use?**


      1. Open http://[ZIMAOS-IP-ADDRESS]:6183 and make the admin account.

      2. Make a project, then add an application, a compose stack or a
         database to it.

      3. Pick where the code comes from and press Deploy.

      4. Add a domain in the app's Domains tab. On your home network, open
         the app at http://<domain>:6184.
  tips:
    before_install:
      en_US: >-
        1. Dokploy takes control of Docker on your ZimaOS. On first start it
           turns on Docker Swarm, and it adds a dokploy-postgres service and a
           dokploy-traefik container next to the app.


        2. Your deployed apps are served on port 6184 (http) and 6185
           (https), because ZimaOS uses ports 80 and 443 itself. For domains
           from the internet, forward ports 80 and 443 on your router to 6184
           and 6185.


        3. Start the installation. The first start takes two or three
           minutes while Postgres and Traefik are downloaded.


        4. Open http://[ZIMAOS-IP-ADDRESS]:6183 and make the admin account.


        5. If a deployed app won't start, open its Advanced tab, go to
           Cluster Settings and set the Endpoint Spec mode to dnsrr.


        6. Update Dokploy from the IceStore, not with the Update button
           inside Dokploy.
  index: /
  port_map: "6183"
  scheme: http
  is_uncontrolled: false
  version: "v0.30.10"
  update_at: "2026-10-30"
  release_notes:
    en_US: |-
      - First IceStore release: dashboard on port 6183, deployed apps on 6184 (http) and 6185 (https)
      - Built on dokploy/dokploy v0.30.10, plus a start script that does the host installer's work: Docker Swarm, dokploy-network, the dokploy-postgres service and the dokploy-traefik container
      - Each install makes its own BETTER_AUTH_SECRET and Postgres password on first start and keeps them in the data folder
      - Postgres data is kept in the app's data folder, not in a Docker volume
  repo: "https://github.com/Dokploy/dokploy"
  support: "https://github.com/Dokploy/dokploy/issues"
  docs: "https://docs.dokploy.com"

Install Dokploy

Something not working with Dokploy?

Report it so it gets fixed, or ask for an app that is not here yet.

More Developer apps

See all