☁️ Deploying to Remote Environments
SuperStack is Docker-native, so deployments are simple, consistent, and portable.
The goal is that only compose.yaml and secrets need to exist on the remote
server.
🧱 1. Build Your Images
If a service has a build: section, add your own image: name and version tag:
app/compose.yaml
services:
caddy:
build:
context: ./caddy
image: ghcr.io/youruser/yourapp-caddy:0.1.0
Build and push your images:
cd app
docker compose build
docker compose push
cd ..
📦 2. Copy to Server
Copy your compose.yaml to the remote host:
scp app/compose.yaml youruser@yourserver:
3. Set Secrets
Your app will need credentials such as database passwords or API keys. Choose one of these approaches:
.envfile — simply place a.envfile alongside yourcompose.yaml. Be sure tochmod 600 .env.- Environment variables — pass secrets directly to the command line.
- CI/CD injection — good for automated pipelines.
🚀 3. Launch the App
Start the application on the server:
docker compose up -d
Your backend is now live. 🚀
Upgrading
To upgrade your app, simply increment the image tag versions in compose.yaml.
The rest is the same:
docker compose builddocker compose pushscp compose.yaml yourserver:docker compose up -d
🧭 Next Steps
If you want zero-downtime deployments, rollback support, or blue-green testing, continue to Advanced Deployments.