Some checks failed
Deploy Application / deploy (push) Has been cancelled
Infrastructure Layer
Dieses Verzeichnis enthält die Infrastruktur-Stacks, die dauerhaft laufen und unabhängig von Application-Deployments sind.
Übersicht
Die Infrastruktur besteht aus drei Core-Komponenten:
- Traefik - Reverse Proxy mit SSL-Zertifikaten
- Gitea - Git Server mit eigener PostgreSQL-Instanz
- PostgreSQL - Shared Database für Application-Stacks
Verzeichnisstruktur
infrastructure/
├── traefik/ # Reverse Proxy & SSL
│ ├── docker-compose.yml
│ ├── secrets/
│ └── README.md
├── gitea/ # Git Server
│ ├── docker-compose.yml
│ ├── secrets/
│ └── README.md
├── postgresql/ # Shared Database
│ ├── docker-compose.yml
│ ├── secrets/
│ └── README.md
└── README.md (dieses Dokument)
Deployment-Reihenfolge
Wichtig: Die Stacks müssen in dieser Reihenfolge deployt werden:
- Traefik (muss zuerst laufen)
- PostgreSQL (wird von Application benötigt)
- Gitea (nutzt Traefik für SSL)
Quick Start
Initial Setup
# 1. Traefik deployen
cd traefik
docker compose up -d
# 2. PostgreSQL deployen
cd ../postgresql
docker compose up -d
# 3. Gitea deployen
cd ../gitea
docker compose up -d
Updates
# Einzelnen Stack updaten
cd <stack-name>
docker compose pull
docker compose up -d
# Alle Stacks updaten
./deploy.sh all
Networks
Die Infrastruktur verwendet folgende Networks:
- traefik-public - Wird von Traefik erstellt, für externe Zugriffe
- infrastructure - Für interne Infrastruktur-Kommunikation (Gitea ↔ PostgreSQL)
- app-internal - Wird von PostgreSQL erstellt, für Application-Zugriff
Secrets
Secrets werden in secrets/ Verzeichnissen pro Stack gespeichert:
traefik/secrets/acme_email.txt- Let's Encrypt E-Mailgitea/secrets/postgres_password.txt- Gitea PostgreSQL Passwortpostgresql/secrets/postgres_password.txt- Application PostgreSQL Passwort
Wichtig: Secrets-Dateien sind gitignored und müssen manuell erstellt werden.
Siehe SECRETS.md für Details zur Secrets-Generierung.
Troubleshooting
Traefik nicht erreichbar
cd traefik
docker compose logs -f
docker compose ps
PostgreSQL-Verbindungsprobleme
cd postgresql
docker compose logs postgres
docker network inspect app-internal
Gitea nicht erreichbar
cd gitea
docker compose logs -f gitea
docker compose ps