2.9 KiB
2.9 KiB
VPS-Infrastruktur — bujour.de
IONOS EU-VPS · Docker Compose + Caddy · Stand: Juni 2026
Übersicht
Der VPS läuft mit Docker Compose als Orchestrierung. Caddy übernimmt als Reverse Proxy automatisch TLS (Let's Encrypt) für alle Dienste — kein certbot, kein manuelles Zertifikatsmanagement.
Alle Dienste hängen im externen Docker-Netzwerk proxy. Caddy erreicht sie über den Container-Namen.
Verzeichnisstruktur
~/stacks/
├── caddy/
│ ├── compose.yaml
│ └── Caddyfile
├── forgejo/
│ └── compose.yaml
└── checkpoint/
├── compose.yaml
└── .env ← Secrets, nicht im Git
~/apps/
└── checkpoint/ ← geklontes Repo, Build-Quelle
Docker-Netzwerk
docker network create proxy
Externes Netzwerk proxy — einmalig angelegt, von allen Stacks referenziert.
Caddy (Reverse Proxy + TLS)
Stack: ~/stacks/caddy/
# compose.yaml
services:
caddy:
image: caddy:2
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
networks:
- proxy
# Caddyfile
git.bujour.de {
reverse_proxy forgejo:3000
}
cpe.bujour.info {
reverse_proxy checkpoint:8000
}
Caddy neu laden (nach Caddyfile-Änderung):
cd ~/stacks/caddy
docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile
Forgejo (Git)
Stack: ~/stacks/forgejo/
URL: https://git.bujour.de
SSH: Port 2222
services:
forgejo:
image: codeberg.org/forgejo/forgejo:10
container_name: forgejo
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- forgejo_data:/data
networks:
- proxy
expose:
- "3000"
ports:
- "2222:22"
Neuen Dienst hinzufügen
mkdir ~/stacks/<dienst>/compose.yamlerstellen —exposestattports, Netzwerkproxy(external)- Eintrag in
~/stacks/caddy/Caddyfileergänzen - Caddy neu laden
docker compose up -dim neuen Stack-Verzeichnis
Nützliche Befehle
# Status aller Container
docker ps
# Logs eines Dienstes
docker logs <container_name> -f
# Container neu starten
docker compose restart
# Image neu bauen und Container ersetzen
docker compose build
docker compose up -d
SSH-Schlüssel VPS → Forgejo
Schlüsselpaar auf dem VPS für unbeaufsichtigtes git pull:
ssh-keygen -t ed25519 -C "vps-checkpoint" -f ~/.ssh/id_ed25519_forgejo
~/.ssh/config:
Host git.bujour.de
HostName git.bujour.de
User git
Port 2222
IdentityFile ~/.ssh/id_ed25519_forgejo
Öffentlichen Schlüssel in Forgejo unter Einstellungen → SSH-Schlüssel eintragen.