docker-compose.yml auf Coolify-Caddy-Proxy umgestellt
Kein Host-Port-Mapping mehr, stattdessen Anbindung an das externe Docker-Netzwerk "coolify" mit caddy-Labels für domainbasiertes Routing und automatisches TLS über ressourceksr.bbundco.de. README entsprechend aktualisiert (Coolify-Deployment ohne manuelle Port-Konfiguration). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -87,16 +87,25 @@ per Proxy an das Backend weiter.
|
||||
## Deployment (Docker)
|
||||
|
||||
Die App läuft als ein Container: Das Backend serviert die REST-API und das
|
||||
gebaute Frontend intern über Port 8080, nach außen gemappt auf Host-Port 8090
|
||||
(siehe `docker-compose.yml`).
|
||||
gebaute Frontend intern über Port 8080. `docker-compose.yml` ist auf den in
|
||||
Coolify installierten Caddy-Proxy zugeschnitten (siehe Abschnitt
|
||||
"Deployment in Coolify") — es wird kein Host-Port mehr veröffentlicht,
|
||||
stattdessen hängt sich der Container über das externe Docker-Netzwerk
|
||||
`coolify` in den Proxy ein und ist über die im `caddy`-Label hinterlegte
|
||||
Domain erreichbar.
|
||||
|
||||
Für einen rein lokalen Test außerhalb von Coolify muss das Netzwerk zuerst
|
||||
angelegt werden, danach ist die App (ohne Domain/TLS) nur über die
|
||||
Container-IP oder testweise per Port-Override erreichbar:
|
||||
|
||||
```bash
|
||||
docker network create coolify # einmalig, falls nicht vorhanden
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
Danach ist die App unter http://localhost:8090 erreichbar. Die SQLite-Datenbank
|
||||
liegt im Docker-Volume `data`. `ADMIN_EMAIL` vor dem ersten Start setzen (z. B.
|
||||
in einer `.env`-Datei neben `docker-compose.yml`), damit ein Start-Admin für
|
||||
Die SQLite-Datenbank liegt im Docker-Volume `data`. `ADMIN_EMAIL` vor dem
|
||||
ersten Start setzen (z. B. in einer `.env`-Datei neben `docker-compose.yml`),
|
||||
damit ein Start-Admin für
|
||||
einen bestehenden Mitarbeiter angelegt wird.
|
||||
|
||||
## Umstieg von der alten Version (ohne Login)
|
||||
@@ -150,15 +159,17 @@ beim nächsten Login vergeben. Mit `--password` wird sofort ein Passwort gesetzt
|
||||
2. **Build-Pack**: **Docker Compose** wählen. Das mitgelieferte
|
||||
`docker-compose.yml` baut das `Dockerfile` (Multi-Stage: Vue-Build +
|
||||
Node-Server) und startet einen einzelnen Container.
|
||||
3. **Port**: Der Container lauscht intern auf Port `8080`, im
|
||||
`docker-compose.yml` auf Host-Port `8090` gemappt (Port 8080 war auf dem
|
||||
Host bereits durch eine andere Ressource belegt →
|
||||
`driver failed programming external connectivity ... port is already
|
||||
allocated`). In Coolify unter "Domains"/der Port-Konfiguration der
|
||||
Ressource **muss der Host-Port (8090) explizit eingetragen werden** —
|
||||
das passiert nicht automatisch. Falls auch 8090 belegt sein sollte, in
|
||||
`docker-compose.yml` einen anderen freien Host-Port wählen (z. B.
|
||||
`"8091:8080"`) und die Coolify-Konfiguration entsprechend nachziehen.
|
||||
3. **Routing über den Caddy-Proxy**: Der Container veröffentlicht keinen
|
||||
Host-Port mehr, sondern hängt sich über das externe Netzwerk `coolify`
|
||||
(von Coolify automatisch angelegt) in den von Coolify verwalteten
|
||||
Caddy-Proxy ein. Die Labels in `docker-compose.yml`
|
||||
(`caddy: ressourceksr.bbundco.de` / `caddy.reverse_proxy:
|
||||
"{{upstreams 8080}}"`) sorgen dafür, dass Caddy die Domain automatisch
|
||||
auf Container-Port `8080` routet und ein TLS-Zertifikat besorgt. Damit
|
||||
das funktioniert, muss die Domain per DNS (A/AAAA-Record) auf den
|
||||
Coolify-Host zeigen; einen zusätzlichen Domain-/Port-Eintrag in der
|
||||
Coolify-UI braucht es für dieses Setup nicht mehr. Soll die App unter
|
||||
einer anderen Domain laufen, das `caddy`-Label entsprechend anpassen.
|
||||
4. **Persistenz**: Das Docker-Volume `data` sichert `server/data/data.db`
|
||||
(SQLite). Bei Redeploys bleiben die Daten erhalten, solange das Volume
|
||||
nicht gelöscht wird. Coolifys eingebaute Volume-Backup-Funktion kann
|
||||
|
||||
+11
-2
@@ -1,13 +1,22 @@
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
ports:
|
||||
- "8090:8080"
|
||||
expose:
|
||||
- "8080"
|
||||
environment:
|
||||
- ADMIN_EMAIL=${ADMIN_EMAIL}
|
||||
volumes:
|
||||
- data:/app/server/data
|
||||
networks:
|
||||
- coolify
|
||||
labels:
|
||||
caddy: ressourceksr.bbundco.de
|
||||
caddy.reverse_proxy: "{{upstreams 8080}}"
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
coolify:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
data:
|
||||
|
||||
Reference in New Issue
Block a user