feat(deploy): build + serve worker and admin as static nginx images
All checks were successful
Build and Push Docker Image / build (push) Successful in 53s
All checks were successful
Build and Push Docker Image / build (push) Successful in 53s
- per-app Dockerfiles (vite build → nginx) + SPA nginx.conf - Gitea workflow pushes 3 images; frontends bake VITE_API_URL - docker-compose.prod.yml (registry images, solelog_network) + .env.prod.example - docker-compose.yml runs the full stack locally; add .dockerignore
This commit is contained in:
52
docker-compose.prod.yml
Normal file
52
docker-compose.prod.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
# Production deployment — runs on the server behind the Caddy reverse proxy.
|
||||
# Images are built and pushed by the Gitea workflow (.gitea/workflows/docker.yml).
|
||||
#
|
||||
# One-time server setup:
|
||||
# docker network create solelog_network
|
||||
# # attach your (containerised) Caddy to that network, e.g. add it to Caddy's
|
||||
# # compose as an external network, or: docker network connect solelog_network <caddy-container>
|
||||
# cp .env.prod.example .env # then fill in real values
|
||||
#
|
||||
# Deploy / update:
|
||||
# docker compose -f docker-compose.prod.yml pull
|
||||
# docker compose -f docker-compose.prod.yml up -d
|
||||
#
|
||||
# Caddyfile (on your edge Caddy — it resolves these names over solelog_network):
|
||||
# api.solelog.vrossem.net { reverse_proxy solelog-api:3000 }
|
||||
# solelog.vrossem.net { reverse_proxy solelog-worker:80 }
|
||||
# admin.solelog.vrossem.net { reverse_proxy solelog-admin:80 }
|
||||
|
||||
services:
|
||||
api:
|
||||
image: gitea.vrossem.net/bas/solelog:latest
|
||||
container_name: solelog-api
|
||||
env_file: .env # BETTER_AUTH_SECRET, BETTER_AUTH_URL, CORS_ORIGINS
|
||||
environment:
|
||||
DATABASE_URL: file:/data/app.db
|
||||
PORT: '3000'
|
||||
volumes:
|
||||
- solelog_db:/data
|
||||
networks:
|
||||
- solelog_network
|
||||
restart: unless-stopped
|
||||
|
||||
worker:
|
||||
image: gitea.vrossem.net/bas/solelog-worker:latest
|
||||
container_name: solelog-worker
|
||||
networks:
|
||||
- solelog_network
|
||||
restart: unless-stopped
|
||||
|
||||
admin:
|
||||
image: gitea.vrossem.net/bas/solelog-admin:latest
|
||||
container_name: solelog-admin
|
||||
networks:
|
||||
- solelog_network
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
solelog_network:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
solelog_db:
|
||||
Reference in New Issue
Block a user