chore: Update deployment configuration and documentation
- Update Gitea configuration (remove DEFAULT_ACTIONS_URL) - Fix deployment documentation - Update Ansible playbooks - Clean up deprecated files - Add new deployment scripts and templates
This commit is contained in:
197
docs/deployment/test-registry-credentials.md
Normal file
197
docs/deployment/test-registry-credentials.md
Normal file
@@ -0,0 +1,197 @@
|
||||
# Docker Registry Credentials Testen
|
||||
|
||||
Dieses Dokument erklärt, wie du die Docker Registry Credentials testen kannst.
|
||||
|
||||
## Lokales Testen
|
||||
|
||||
### Voraussetzungen
|
||||
|
||||
1. Docker muss installiert und laufend sein
|
||||
2. Curl muss verfügbar sein (wird automatisch installiert falls fehlend)
|
||||
|
||||
### Verwendung
|
||||
|
||||
```bash
|
||||
# Setze die Credentials als Environment-Variablen
|
||||
export REGISTRY_USER="admin"
|
||||
export REGISTRY_PASSWORD="dein-registry-passwort"
|
||||
|
||||
# Führe das Test-Script aus
|
||||
./scripts/test-registry-credentials.sh
|
||||
```
|
||||
|
||||
### Mit expliziten Werten
|
||||
|
||||
```bash
|
||||
REGISTRY_USER="admin" \
|
||||
REGISTRY_PASSWORD="dein-passwort" \
|
||||
REGISTRY_DOMAIN="registry.michaelschiemer.de" \
|
||||
REGISTRY_HOST="94.16.110.151" \
|
||||
REGISTRY_PORT="5000" \
|
||||
./scripts/test-registry-credentials.sh
|
||||
```
|
||||
|
||||
## Was wird getestet?
|
||||
|
||||
Das Script führt folgende Tests durch:
|
||||
|
||||
### 1. HTTP Connectivity
|
||||
- Testet ob die Registry über HTTP erreichbar ist (`http://94.16.110.151:5000`)
|
||||
- Erwartet Status 401 (Auth erforderlich) oder 200
|
||||
|
||||
### 2. HTTPS Connectivity
|
||||
- Testet ob die Registry über HTTPS erreichbar ist (`https://registry.michaelschiemer.de`)
|
||||
- Erwartet Status 401 (Auth erforderlich) oder 200
|
||||
|
||||
### 3. Docker Login über HTTP
|
||||
- Versucht Docker Login über HTTP
|
||||
- Benötigt `insecure-registry` Konfiguration im Docker-daemon
|
||||
|
||||
### 4. Docker Login über HTTPS
|
||||
- Versucht Docker Login über HTTPS
|
||||
- Keine zusätzliche Konfiguration nötig (empfohlen)
|
||||
|
||||
### 5. Registry API Zugriff
|
||||
- Testet ob die Registry API funktioniert
|
||||
- Listet verfügbare Repositories auf
|
||||
|
||||
## Test in CI/CD
|
||||
|
||||
### Via Gitea Workflow
|
||||
|
||||
Das Script kann auch in einem Gitea Workflow verwendet werden:
|
||||
|
||||
```yaml
|
||||
- name: Test Registry Credentials
|
||||
shell: bash
|
||||
env:
|
||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
||||
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
run: |
|
||||
./scripts/test-registry-credentials.sh
|
||||
```
|
||||
|
||||
### Workflow ausführen
|
||||
|
||||
Es gibt einen dedizierten Workflow `.gitea/workflows/test-registry.yml`:
|
||||
|
||||
1. Gehe zu: **Actions** → **Test Registry Credentials**
|
||||
2. Klicke auf **Run workflow**
|
||||
3. Der Workflow testet automatisch die Credentials aus Gitea Secrets
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Problem: "REGISTRY_PASSWORD ist nicht gesetzt"
|
||||
|
||||
**Lösung:**
|
||||
```bash
|
||||
export REGISTRY_PASSWORD="dein-passwort"
|
||||
```
|
||||
|
||||
### Problem: "Unauthorized (401)" beim Login
|
||||
|
||||
**Ursache:** Falsche Credentials
|
||||
|
||||
**Lösung:**
|
||||
1. Prüfe `REGISTRY_USER` - sollte `admin` sein (oder der richtige Username)
|
||||
2. Prüfe `REGISTRY_PASSWORD` - muss mit dem Passwort in `deployment/stacks/registry/auth/htpasswd` übereinstimmen
|
||||
3. Prüfe Gitea Secrets:
|
||||
- Repository → Settings → Secrets
|
||||
- Stelle sicher, dass `REGISTRY_USER` und `REGISTRY_PASSWORD` korrekt sind
|
||||
|
||||
### Problem: "HTTP response to HTTPS client"
|
||||
|
||||
**Ursache:** Docker versucht HTTPS, aber Registry läuft auf HTTP
|
||||
|
||||
**Lösung:**
|
||||
- Für HTTP: Docker-daemon muss mit `--insecure-registry` konfiguriert werden
|
||||
- Oder verwende HTTPS-Zugriff über `registry.michaelschiemer.de` (empfohlen)
|
||||
|
||||
### Problem: "Registry nicht erreichbar"
|
||||
|
||||
**Ursache:** Registry läuft nicht oder Netzwerk-Problem
|
||||
|
||||
**Lösung:**
|
||||
```bash
|
||||
# Prüfe ob Registry läuft
|
||||
docker ps | grep registry
|
||||
|
||||
# Prüfe Registry-Logs
|
||||
docker logs registry
|
||||
|
||||
# Prüfe Netzwerk
|
||||
curl -v http://94.16.110.151:5000/v2/
|
||||
```
|
||||
|
||||
### Problem: "404" bei HTTPS
|
||||
|
||||
**Ursache:** Traefik-Routing ist nicht richtig konfiguriert
|
||||
|
||||
**Lösung:**
|
||||
1. Prüfe Traefik Labels in `deployment/stacks/registry/docker-compose.yml`
|
||||
2. Prüfe ob Registry im `traefik-public` Netzwerk ist
|
||||
3. Prüfe DNS-Konfiguration für `registry.michaelschiemer.de`
|
||||
|
||||
## Passwort prüfen/ändern
|
||||
|
||||
### Passwort auf dem Server prüfen
|
||||
|
||||
```bash
|
||||
ssh deploy@94.16.110.151
|
||||
cd ~/deployment/stacks/registry
|
||||
cat auth/htpasswd
|
||||
```
|
||||
|
||||
### Neues Passwort setzen
|
||||
|
||||
```bash
|
||||
ssh deploy@94.16.110.151
|
||||
cd ~/deployment/stacks/registry
|
||||
|
||||
# Neues Passwort setzen
|
||||
htpasswd -B auth/htpasswd admin
|
||||
|
||||
# Registry neu starten
|
||||
docker compose restart registry
|
||||
```
|
||||
|
||||
Dann in Gitea Secrets aktualisieren:
|
||||
- Repository → Settings → Secrets
|
||||
- `REGISTRY_PASSWORD` mit neuem Passwort aktualisieren
|
||||
|
||||
## Script-Output
|
||||
|
||||
### Erfolgreich
|
||||
|
||||
```
|
||||
✅ Docker ist verfügbar
|
||||
✅ curl ist verfügbar
|
||||
✅ Registry erreichbar über HTTPS (Status: 401 - Auth erforderlich, das ist gut!)
|
||||
✅ Docker Login erfolgreich!
|
||||
✅ Credentials sind korrekt und funktionieren!
|
||||
```
|
||||
|
||||
### Fehlgeschlagen
|
||||
|
||||
```
|
||||
❌ Docker Login fehlgeschlagen (Exit Code: 1)
|
||||
⚠️ Fehler: Unauthorized (401)
|
||||
ℹ️ Die Credentials sind falsch:
|
||||
ℹ️ - Username: admin
|
||||
ℹ️ - Password Länge: 24 Zeichen
|
||||
```
|
||||
|
||||
## Integration in CI/CD
|
||||
|
||||
Das Script kann in jedem Workflow-Step verwendet werden:
|
||||
|
||||
```yaml
|
||||
- name: Verify Registry Access
|
||||
env:
|
||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
||||
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
run: |
|
||||
./scripts/test-registry-credentials.sh
|
||||
```
|
||||
|
||||
Falls das Script fehlschlägt (Exit Code 1), wird der Workflow gestoppt und du bekommst klare Fehlermeldungen.
|
||||
Reference in New Issue
Block a user