Browse docs

Deploy a Docker image

Run any public image from Docker Hub, GHCR or another registry, with environment variables and persistent storage.

Updated

On this page

If your app is already packaged as a container image, this is the fastest way to run it. You get a container with its own resources, a browser console, a file manager and backups.

1. Choose the image

  1. Go to New deployment and pick Containers.
  2. Pick the image in one of three ways:
    • Popular images: one click for PostgreSQL, Redis, MySQL or MongoDB. Databases get a dedicated setup; see Create and connect to a database.
    • Search Docker Hub: type a name such as uptime-kuma. Official and verified images are marked.
    • Custom image: any public image reference, including a tag. For example ghcr.io/OWNER/APP:latest or quay.io/ORG/IMAGE:1.2.

While you choose, BitQate inspects the image (Detecting configuration from image…) and suggests volume mounts it declares. Images used to generate AI images (Stable Diffusion, ComfyUI and similar) aren't supported.

2. Configure it

  • Name and Location
  • Resources: RAM, CPU and disk. You can resize later.
  • IPv4 address: optional. A free IPv6 block is always included.

Under Advanced settings:

  • Startup command: leave it empty to use the image's own entrypoint. Fill it in only to override it.
  • Environment variables: passed to the container at start. Most images document what they expect (for example TZ, ADMIN_EMAIL). Names may contain letters, numbers and underscores, and can't start with a number.
  • Extra volume mounts: see below.

Ports

Your server gets an assigned port, shown on its page. The container's port is mapped 1:1 to it, and its number is in the SERVER_PORT environment variable. Your app must listen on that port on 0.0.0.0. Many images let you set the port through an environment variable or a startup flag; check the image's documentation.

Storage that survives restarts

/home/container is always persisted. Anything an image writes elsewhere is lost whenever the container is recreated, for example on restart.

If an image keeps its data in another path (such as /data or /app/config), add that path under Extra volume mounts. Each mount gets its own persistent, sandboxed directory. The image detection pre-fills mounts the image declares, but always check the image's documentation as well. Some images need paths they don't declare.

3. Deploy

Review the Manifest (image, startup, environment, volumes, monthly cost) and press and hold Hold to deploy container. The Activity log shows the image being pulled and the container starting. Once it's Ready, open the server.

Managing it afterwards

TabWhat it's for
ConsoleLive output plus a command input
File ManagerBrowse, edit, upload and download files in /home/container
StartupChange the image, startup command and environment variables. Restart to apply.
BackupsCreate and restore backups

Troubleshooting

  • The container stops right after starting: read the Console output. It's usually a missing required environment variable or a wrong startup command.
  • Data disappeared after a restart: the image stores it outside /home/container. Add an extra volume mount for that path. Data written before the mount existed can't be recovered.
  • The app can't be reached: make sure it listens on 0.0.0.0 and on SERVER_PORT, not on 127.0.0.1 or a hard-coded port.

Still stuck?

Our team can look at your specific setup.