busyfeed: Initial commit mit Tag-Deployment
Bestehende App plus Gitea-Actions-Pipeline: Tag v* loest Build, Tests und Container-Neustart auf dem VPS aus. - .gitea/workflows/deploy.yml: npm ci/build/test als Gate, danach docker compose up -d --build. Die .env wird aus dem Repo-Secret DOTENV erzeugt, damit auf dem Host keine Secret-Datei gepflegt werden muss. - docker-compose.yml: fester Projektname (der CI-Job hat ein anderes Arbeitsverzeichnis als der Host), Image mit Versionstag fuer Rollback, fester Volume-Name. - README: Deployment- und Rollback-Abschnitt, Token-Rotation angepasst. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
31
docker-compose.yml
Normal file
31
docker-compose.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
# Fester Projektname: sonst leitet Compose ihn aus dem Verzeichnisnamen ab und
|
||||
# der weicht im CI-Job vom Host ab.
|
||||
name: busyfeed
|
||||
|
||||
services:
|
||||
busyfeed:
|
||||
image: busyfeed:${IMAGE_TAG:-latest}
|
||||
build: .
|
||||
container_name: busyfeed
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
volumes:
|
||||
- busyfeed-data:/data
|
||||
networks:
|
||||
- nginx-proxy-manager_default
|
||||
healthcheck:
|
||||
test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:8080/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
|
||||
interval: 60s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
# Kein ports-Mapping: Der nginx proxy manager erreicht den Container ueber das
|
||||
# gemeinsame Docker-Netz, es liegt nichts offen am Host.
|
||||
networks:
|
||||
nginx-proxy-manager_default:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
busyfeed-data:
|
||||
# Fester Name, damit das Volume nicht am Projektnamen haengt.
|
||||
name: busyfeed-data
|
||||
Reference in New Issue
Block a user