11# ☁️ Deploying to Remote Environments
22
3- SuperStack is Docker-native, so deployment is simple and portable. Here's
4- how to deploy it to a remote server.
3+ SuperStack is Docker-native, so deployment is simple and portable. Here's how
4+ to deploy it to a remote server.
55
6- ## ✅ 1. Set Your Image Names
6+ A clear goal of SuperStack is that ** only ` compose.yaml ` should be required on
7+ the remote server** . No other file should need to be copied there.
78
8- Change the image names to your own (e.g. using your Docker Hub or GitHub
9- Container Registry account) in ` compose.yaml ` , for example:
9+ ## ✅ 1. Prepare your Images
1010
11- ``` yaml
12- postgres :
13- image : ghcr.io/youruser/yourapp-postgres
11+ For services that are built, add ` image: ` URIs to your own container repository
12+ (e.g. your Docker Hub or GitHub Container Registry account), for example:
13+
14+ ``` yaml title="compose.yaml"
1415caddy :
1516 image : ghcr.io/youruser/yourapp-caddy
17+
18+ postgres :
19+ image : ghcr.io/youruser/yourapp-postgres
1620` ` `
1721
1822## 🛠️ 2. Build and Push your Images
@@ -26,8 +30,7 @@ docker compose push
2630
2731## 📦 3. Deploy the Compose File
2832
29- The only file needed for SuperStack to work on the remote server is
30- ` compose.yaml ` .
33+ Only ` compose.yaml ` is required on the remote server.
3134
3235Copy it to your server:
3336
@@ -41,17 +44,17 @@ SSH into your server and bring up the stack.
4144
4245For production, avoid using ` .env ` files. Instead, set secrets directly:
4346
44- ``` sh
47+ > 💡 Avoid leaking secrets by disabling shell history.
48+
49+ ``` sh title=".env"
50+ JWT_SECRET=your-secret \
4551CADDY_PORT=80 \
4652PG_USER=admin \
4753PG_PASS=supersecret \
4854POSTGREST_AUTHENTICATOR_PASS=supersecret \
49- JWT_SECRET=your-secret \
5055docker compose up -d
5156```
5257
53- > 💡 Avoid leaking secrets by disabling shell history.
54-
5558Alternatively, use environment injection in your CI/CD.
5659
5760---
0 commit comments