HelipodDocs

Deploy a Docker image

Run a ready-made container image from Docker Hub, GitHub, GitLab or any other registry.

If your app is already packaged as a container image, Helipod can run it without building anything. You pick the registry, enter the image name and the port it listens on, choose the resources, and deploy. This works for public images such as nginx:1.27 and for private images that need a login.

Open Add Service

In the dashboard, open your project and go to Containers. Click Add Service at the top right.

The Add Service window

Choose the registry

Click Container Registry, then the registry that holds your image:

OptionUse it forImage example
Docker HubPublic or private images on Docker Hubnginx:latest, myuser/myapp:v1
GitHub Container RegistryImages on GHCRghcr.io/owner/repo:tag
GitLab RegistryImages in a GitLab projectregistry.gitlab.com/owner/repo:tag
Custom RegistryAny other registry (Quay, a self-hosted registry, ...)registry.example.com/app:tag

Container registry options

Enter the image

Fill in the form:

  • Image URL: the image and tag, for example nginx:1.27. Pin a version tag rather than latest, so every deploy runs the same image.
  • Private image (requires authentication): tick it when the registry needs a login, then fill in:
    • Username: your registry user name (for GHCR, your GitHub username; for GitLab, your GitLab username).
    • The token or password: a Personal Access Token for GHCR (ghp_...), an Access Token for GitLab (glpat-...), or the password or access token of your Docker Hub or custom registry account. Give it read access to the registry only.
  • Exposed Port: the port your container listens on, for example 80 for nginx or 8080 for many Java and Go images. If you leave it empty, Helipod uses 80.

Entering a Docker Hub image

Click Next.

Configure resources

Choose CPU (0.125 to 4 vCPU, in steps of 0.125) and Memory (128 MB to 8 GB, in steps of 128 MB). The estimate shows the daily total (Total Harian) and a monthly estimate (Estimasi Bulanan).

Configure resources

Click Continue. The service is created on the canvas and its panel opens.

Deploy

On the Deployments tab, click Deploy and confirm. Helipod pulls the image and starts it; there is no build step. The deployment moves from Queued to Deploying to Live. Click Live logs or Build logs to see what happens.

The Deployments tab

Make it public

A new image service is only reachable from your other services. To open it to the internet, click Make public accessible on the Deployments tab, keep Magic Domain selected, enter the App port (the same as Exposed Port) and click Create domain. You get a free *.helipod.app address with HTTPS. See Custom domains to use your own domain.

Billing

The service is billed daily for its CPU and memory from the first deploy. If your wallet holds less than one day of its cost and you have no bundle, Helipod asks you to top up before deploying.

See which image a service runs

Open the service and go to Settings. The Container Image section shows the registry and the image the service was created from. The Build & Run section lets you override the start command and set a health check, see Volumes and scaling.

Common problems

What you seeWhat to do
The deploy fails right away with a pull errorCheck the image name and tag. For a private image, check the username and token, and that the token can read packages.
The app is live but the domain does not answerThe App port of the domain must match the port the container listens on. Change it in Settings › Networking & Domains and redeploy.
The container keeps restartingOpen App logs on the Deployments tab. Often a required variable is missing; add it in Variables.

Next steps

On this page