Vardo
Tutorials

Deploy a Docker Compose Stack

Walk through deploying a multi-container Docker Compose app on Vardo — from project creation to a live domain.

You'll take an existing docker-compose.yml in a GitHub repo and deploy it to Vardo as a running stack with a custom domain.

Prerequisites

  • A running Vardo instance (installation guide)
  • GitHub connected to Vardo (setup instructions)
  • A GitHub repo containing a docker-compose.yml at the root (or a subdirectory — you'll specify the path)

1. Create a project

  1. Go to Projects in the sidebar
  2. Click New Project
  3. Name it something descriptive — e.g., plausible or my-saas
  4. Click Create

2. Create a Compose app

  1. Inside your project, click New App
  2. Choose GitHub as the source
  3. Search for and select your repository
  4. Pick the branch to deploy from (usually main)
  5. Set the deploy type to Compose
  6. If your compose file isn't at the repo root, set the Compose path — e.g., ./infra/docker-compose.yml
  7. Click Create App

3. Set environment variables

Most compose stacks need env vars — database passwords, API keys, config values.

  1. Open the app detail page
  2. Click the Environment tab
  3. Add your variables:
    POSTGRES_PASSWORD=supersecret
    APP_SECRET=change-me
    DOMAIN=myapp.example.com
  4. Click Save

These get injected into every container in the stack at runtime. They're encrypted at rest.


4. Deploy

  1. Click Deploy on the app detail page
  2. Watch the build log — Vardo clones the repo, runs docker compose up, and starts the containers
  3. When the status flips to Running, you're live

If you enabled Auto deploy when creating the app, every push to the configured branch triggers a redeploy automatically.


5. Access your app and add a domain

Vardo assigns a subdomain automatically (e.g., myapp.example.com under your base domain). To use a custom domain:

  1. Go to the app's Domains tab
  2. Click Add Domain
  3. Enter your domain — e.g., app.mycompany.com
  4. Add a DNS record at your registrar:
    CNAME  app.mycompany.com  →  vardo.example.com
    Or use an A record pointing directly to your server's IP.
  5. Click Verify — Vardo checks DNS and provisions a Let's Encrypt certificate automatically
  6. Once verified, the domain is live with HTTPS

That's it

Your compose stack is running, auto-deploys on push, and has a TLS-secured custom domain. From here you can:

  • Check container logs in the Logs tab
  • Monitor resource usage under Metrics
  • Add more apps to the same project — databases, caches, sidecars

On this page