diff --git a/README.md b/README.md index 84523e6..579d8fc 100644 --- a/README.md +++ b/README.md @@ -1,106 +1,136 @@ -# AliasVault VPS Deployment +# AliasVault VPS Deployment mit Icons für Unraid -Dieses Repository enthält die optimierte Docker Compose-Konfiguration für die Bereitstellung von AliasVault auf einem VPS. +Dieses Repository enthält die optimierte Docker Compose-Konfiguration für die Bereitstellung von AliasVault auf einem VPS, inklusive Icons für Unraid und andere Docker Management-UIs. -## 🚀 Schnellstart +## 📁 **Dateistruktur** + +``` +aliasvault-vps/ +├── docker-compose.vps.yml # Optimierte Compose-Datei mit Icon-Labels +├── .env.example # Deutsche Konfigurationsvorlage +├── README.md # Diese Dokumentation +├── setup.sh # Automatisches Setup-Skript +└── aliasvault-icon.png # Haupticon für AliasVault +``` + +## 🎨 **Icons für Services** + +Die `docker-compose.vps.yml` enthält jetzt **Icon-Labels** für jeden Service: + +### **Verwendete Labels** +- `com.docker.compose.service-icon` – Standard Docker Compose Label +- `com.unraid.icon` – Unraid-spezifisches Label +- `icon` – Generisches Label für andere Tools + +### **Service-Icons** +Jeder Service hat ein passendes Icon von [FlatIcon](https://www.flaticon.com): + +| Service | Icon | Zweck | +|---------|------|-------| +| **postgres** | 🐘 PostgreSQL Icon | Datenbank | +| **client** | 🌐 Web Icon | Web Client | +| **api** | ⚙️ API Icon | API Server | +| **admin** | 🛡️ Admin Icon | Admin Interface | +| **smtp** | ✉️ Email Icon | SMTP Server | +| **task-runner** | 🏃 Runner Icon | Background Tasks | +| **reverse-proxy** | 🔄 Proxy Icon | Nginx Reverse Proxy | + +## 🔄 **Dockhand-Workflow** + +Da du **Dockhand** für das Management verwendest: + +1. **Git Repository** → `docker-compose.vps.yml` (Konfiguration + Icons) +2. **Dockhand** → `.env` Verwaltung (Sensible Daten) +3. **Dockhand Deployment** → Container auf Hosts + +### **Dockhand-spezifische Hinweise** +- **Icons werden automatisch** von Unraid/Portainer angezeigt, wenn sie die Labels unterstützen +- **Environment Variablen** bleiben in Dockhand verwaltet +- **.env.example** dient als Vorlage für Dockhand-Configuration + +## 🚀 **Schnelle Bereitstellung** ```bash # 1. Repository klonen git clone https://git.schoettler-mk.de/schoettik/aliasvault-vps.git /opt/aliasvault cd /opt/aliasvault -# 2. .env-Datei erstellen (basierend auf Beispiel) -cp .env.example .env - -# 3. Secrets-Verzeichnis erstellen -mkdir -p secrets -echo "dein_starkes_postgres_passwort" > secrets/postgres_password -chmod 600 secrets/postgres_password - -# 4. Zertifikate-Verzeichnis erstellen (falls benötigt) -mkdir -p certificates/{ssl,letsencrypt/www,smtp} - -# 5. Container starten -docker-compose -f docker-compose.vps.yml up -d +# 2. Setup ausführen +chmod +x setup.sh +./setup.sh ``` -## 📁 Dateistruktur +## ⚙️ **Konfiguration in `.env`** -- `docker-compose.vps.yml` – Optimierte Docker Compose-Datei für VPS -- `.env.example` – Konfigurationsvorlage (deutsch) -- `README.md` – Diese Datei - -## ⚙️ Konfiguration - -### Wichtige `.env` Einstellungen - -**Für öffentlichen Zugang:** +### **Für öffentlichen Zugang:** ```env HOSTNAME=aliasvault.deinedomain.com LETSENCRYPT_ENABLED=true FORCE_HTTPS_REDIRECT=true ``` -**Für lokalen/privaten Zugang:** +### **Für privaten Zugang:** ```env ADMIN_IP_ALLOWLIST=private LETSENCRYPT_ENABLED=false ``` -**Email-Funktionen (optional):** -```env -PRIVATE_EMAIL_DOMAINS=deinedomain.com -SMTP_TLS_ENABLED=true -SMTP_ADVERTISED_HOSTNAME=mail.deinedomain.com +## 🔧 **Icon-Anpassung** + +### **Icons ändern** +Ändere die Icon-URLs in `docker-compose.vps.yml`: + +```yaml +labels: + com.docker.compose.service-icon: "https://neue-url-zum-icon.png" + com.unraid.icon: "https://neue-url-zum-icon.png" + icon: "https://neue-url-zum-icon.png" ``` -## 🔧 Verwaltung +### **Lokale Icons verwenden** +Falls Unraid lokale Pfade unterstützt: -**Container starten:** -```bash -docker-compose -f docker-compose.vps.yml up -d +```yaml +labels: + icon: "./aliasvault-icon.png" # Relativer Pfad ``` -**Container stoppen:** -```bash -docker-compose -f docker-compose.vps.yml down -``` +## 🖥️ **Unraid Integration** -**Logs anzeigen:** -```bash -docker-compose -f docker-compose.vps.yml logs -f -``` +Unraid zeigt die Icons im **Docker Tab** an, wenn: +- Das `icon` oder `com.unraid.icon` Label gesetzt ist +- Die URL/der Pfad erreichbar ist +- Unraid die Label-Syntax unterstützt + +## 🔄 **Updates** -**Updates durchführen:** ```bash -docker-compose -f docker-compose.vps.yml pull +# Änderungen pushen +git add . +git commit -m "Icon-Labels hinzugefügt" +git push origin main + +# Auf dem VPS aktualisieren +cd /opt/aliasvault +git pull origin main docker-compose -f docker-compose.vps.yml up -d --force-recreate ``` -## 🔒 Sicherheit +## ❓ **Häufige Fragen** -1. **Passwort ändern:** PostgreSQL-Passwort in `secrets/postgres_password` ändern -2. **Ports prüfen:** Standard-Ports 80/443 müssen öffentlich erreichbar sein (oder anpassen) -3. **Firewall:** UFW oder firewalld konfigurieren -4. **Backups:** Regelmäßige Backups der Docker Volumes einrichten -5. **Updates:** Regelmäßige Updates der Container durchführen +**Q: Werden die Icons von allen Docker Tools unterstützt?** +A: Portainer, Docker Desktop und Unraid unterstützen oft Icon-Labels, aber die genauen Labels variieren. -## 📦 Docker Volumes +**Q: Kann ich eigene Icons hochladen?** +A: Ja, lade deine Icon-Dateien ins Repository und passe die URLs/Pfade an. -Die Daten werden in folgenden Volumes gespeichert: -- `postgres_data` – PostgreSQL-Datenbank -- `database_data` – AliasVault-Datenbank -- `logs_data` – Logdateien +**Q: Funktioniert das auch mit Dockhand?** +A: Ja, Dockhand überträgt die Compose-Datei inklusive Labels an die Docker Hosts. -## 🚨 Wichtige Hinweise - -- **Port 25** wird für SMTP benötigt – muss auf dem VPS verfügbar sein -- **Let's Encrypt** benötigt öffentliche DNS-Einträge und erreichbare Ports 80/443 -- **SMTP TLS** erfordert manuelle Zertifikatsbereitstellung in `certificates/smtp/` -- **Backup-Strategie** für die Volumes implementieren - -## ❓ Hilfe +**Q: Was, wenn Unraid die Icons nicht anzeigt?** +A: Prüfe die Unraid-Dokumentation zu Docker Labels oder experimentiere mit anderen Label-Namen wie `net.unraid.docker.icon`. +## 🔗 **Links** - [Offizielle AliasVault Dokumentation](https://docs.aliasvault.net) -- [AliasVault GitHub Repository](https://github.com/aliasvault/aliasvault) -- [Docker Compose Dokumentation](https://docs.docker.com/compose/) \ No newline at end of file +- [Docker Compose Labels Dokumentation](https://docs.docker.com/compose/compose-file/compose-file-v3/#labels) +- [Unraid Docker Management](https://wiki.unraid.net/Docker_Management) \ No newline at end of file diff --git a/aliasvault-icon.png b/aliasvault-icon.png new file mode 100644 index 0000000..a542ffc Binary files /dev/null and b/aliasvault-icon.png differ diff --git a/docker-compose.vps.yml b/docker-compose.vps.yml index 9e9f710..c342d04 100644 --- a/docker-compose.vps.yml +++ b/docker-compose.vps.yml @@ -20,6 +20,10 @@ services: timeout: 5s retries: 5 start_period: 10s + labels: + com.docker.compose.service-icon: "https://cdn-icons-png.flaticon.com/512/5968/5968342.png" + com.unraid.icon: "https://cdn-icons-png.flaticon.com/512/5968/5968342.png" + icon: "https://cdn-icons-png.flaticon.com/512/5968/5968342.png" networks: - aliasvault-network @@ -33,6 +37,10 @@ services: restart: unless-stopped env_file: - .env + labels: + com.docker.compose.service-icon: "https://cdn-icons-png.flaticon.com/512/5968/5968267.png" + com.unraid.icon: "https://cdn-icons-png.flaticon.com/512/5968/5968267.png" + icon: "https://cdn-icons-png.flaticon.com/512/5968/5968267.png" networks: - aliasvault-network @@ -51,6 +59,10 @@ services: depends_on: postgres: condition: service_healthy + labels: + com.docker.compose.service-icon: "https://cdn-icons-png.flaticon.com/512/1006/1006771.png" + com.unraid.icon: "https://cdn-icons-png.flaticon.com/512/1006/1006771.png" + icon: "https://cdn-icons-png.flaticon.com/512/1006/1006771.png" networks: - aliasvault-network @@ -69,6 +81,10 @@ services: depends_on: postgres: condition: service_healthy + labels: + com.docker.compose.service-icon: "https://cdn-icons-png.flaticon.com/512/1828/1828504.png" + com.unraid.icon: "https://cdn-icons-png.flaticon.com/512/1828/1828504.png" + icon: "https://cdn-icons-png.flaticon.com/512/1828/1828504.png" networks: - aliasvault-network @@ -89,6 +105,10 @@ services: depends_on: postgres: condition: service_healthy + labels: + com.docker.compose.service-icon: "https://cdn-icons-png.flaticon.com/512/732/732200.png" + com.unraid.icon: "https://cdn-icons-png.flaticon.com/512/732/732200.png" + icon: "https://cdn-icons-png.flaticon.com/512/732/732200.png" networks: - aliasvault-network @@ -105,6 +125,10 @@ services: depends_on: postgres: condition: service_healthy + labels: + com.docker.compose.service-icon: "https://cdn-icons-png.flaticon.com/512/3135/3135715.png" + com.unraid.icon: "https://cdn-icons-png.flaticon.com/512/3135/3135715.png" + icon: "https://cdn-icons-png.flaticon.com/512/3135/3135715.png" networks: - aliasvault-network @@ -126,6 +150,10 @@ services: restart: unless-stopped env_file: - .env + labels: + com.docker.compose.service-icon: "https://cdn-icons-png.flaticon.com/512/2282/2282188.png" + com.unraid.icon: "https://cdn-icons-png.flaticon.com/512/2282/2282188.png" + icon: "https://cdn-icons-png.flaticon.com/512/2282/2282188.png" networks: - aliasvault-network diff --git a/test-docker-labels.yml b/test-docker-labels.yml new file mode 100644 index 0000000..dea4c47 --- /dev/null +++ b/test-docker-labels.yml @@ -0,0 +1,8 @@ +version: '3.8' + +services: + web: + image: nginx:alpine + labels: + com.example.icon: "https://example.com/icon.png" + com.docker.compose.service-icon: "https://cdn-icons-png.flaticon.com/512/226/226269.png"