Initial: Traefik + cloudflared + Gitea auf dama.casa

This commit is contained in:
2026-03-19 14:24:12 +00:00
commit b201d3a13e
12 changed files with 311 additions and 0 deletions

79
README.md Normal file
View File

@@ -0,0 +1,79 @@
# dell01
Docker-Infrastruktur für Dell01 (OptiPlex 3060 Micro, Ubuntu 24.04).
## Architektur
```
Internet
└── Cloudflare Edge
└── Cloudflare Tunnel (cloudflared)
└── Traefik (Wildcard-Cert via Cloudflare DNS-Challenge)
└── Alle Docker-Container
```
## Ersteinrichtung
```bash
cp .env.example .env
# .env befüllen (alle Variablen, siehe Kommentare)
make setup
make all-up
```
### .env vorbereiten
| Variable | Beschreibung |
|---|---|
| `DOMAIN` | Aktive Domain, z.B. `home2.dnlm.de` |
| `INWX_USERNAME` | INWX Login-Name |
| `INWX_PASSWORD` | INWX Passwort |
| `CLOUDFLARE_TUNNEL_TOKEN` | Zero Trust → Networks → Tunnels → Tunnel erstellen |
| `TRAEFIK_DASHBOARD_USER` | `echo $(htpasswd -nb admin PW) \| sed -e 's/\$/\$\$/g'` |
### Cloudflare Tunnel konfigurieren
Tunnel anlegen: Zero Trust → Networks → Tunnels → Token kopieren.
Public Hostname im Dashboard: `*.${DOMAIN}``https://traefik:443`
Alternativ (ohne Cloudflare-Zone): Tunnel-UUID aus dem Dashboard nehmen und
bei INWX manuell setzen:
```
*.home2 CNAME <tunnel-uuid>.cfargotunnel.com
```
Dann ingress in `services/cloudflared/config.yaml` konfigurieren (statt Dashboard).
## Domain-Umstieg (home2 → home)
```bash
# In .env ändern:
DOMAIN=home.dnlm.de
make setup # traefik.yaml neu generieren
make all-down
make all-up
```
## Services
| Service | URL | Compose |
|-------------|------------------------------|----------------------------------|
| Traefik | traefik.home2.dnlm.de | services/traefik/ |
| Gitea | gitea.home2.dnlm.de | services/gitea/ |
| cloudflared | | services/cloudflared/ |
## Neuen Service hinzufügen
Nur Traefik-Labels in die `docker-compose.yaml`:
```yaml
labels:
- "traefik.enable=true"
- "traefik.http.routers.SERVICENAME.rule=Host(`SERVICENAME.home2.dnlm.de`)"
- "traefik.http.routers.SERVICENAME.entrypoints=websecure"
- "traefik.http.routers.SERVICENAME.tls=true"
- "traefik.http.services.SERVICENAME.loadbalancer.server.port=PORT"
```
Netzwerk `proxy` als external einbinden fertig.