Deploy App

Custom containers

Run any public Docker image — Redis, ClickHouse, Meilisearch, n8n… — on your server, with your own ports, volumes, network and limits.

Besides websites, Deploy App runs any public Docker image on your server: a cache, a search engine, an analytics database, a tool with a web interface. Press New app → Custom container.

What you fill in

FieldWhat it is
NameLower-case, like redis-cache. The container is called dcp-app-redis-cache. Can't be changed later
ImageThe name on Docker Hub, like redis or clickhouse/clickhouse-server. Images from other public registries work too (ghcr.io/owner/name)
Version (tag)Like 7.4. Empty means latest. Check looks the image up on Docker Hub and lists its recent tags
PortsContainer port → server port. Local = only this server can reach it (other apps, nginx). Public = anyone your cloud firewall lets through
VolumesWhere data lives. A named volume (like redis-data → /data) is kept across redeploys. A server folder (like /srv/files → /files) maps a folder on the server
EnvironmentVariables the image reads, pasted like a .env
Domains (optional)Point a domain at it and set the web port: nginx sends the domain's traffic there, and Apply SSL works as for websites

Under Advanced: network, extra network names (aliases), command and entrypoint, restart policy, memory and CPU limits, user, working folder, hostname, health-check command, privileged mode, extra capabilities and ulimits.

Networks

  • Private network (default). Your apps and managed databases share one network on the server and reach each other by container name: dcp-app-redis-cache:6379. Nothing needs a public port for that.
  • Bridge — Docker's default: isolated, reachable only through published ports.
  • Host — the container uses the server's network directly (no port mapping).
  • None — no network at all.

Public ports skip the server's firewall. Docker publishes ports past UFW and iptables, so restrict who can connect in your cloud provider's firewall (security group).

Deploys, updates and rollback

  • Deploy pulls the image again. For a tag like latest or 7, that brings the newest build of that version.
  • Containers keep data in volumes, so the new version doesn't run beside the old one: the old one stops, the new one starts, and if the new one crashes or fails its health check, the old one is started again.
  • Every deploy records the exact image (its digest), so Roll back runs the very same image as before, even if the tag has moved on.

Deleting

Delete removes the container and its nginx site. Data volumes are kept unless you tick Also delete the data volumes. Server folders are never deleted.