Initial commit: AliasVault VPS deployment configuration
This commit is contained in:
@@ -0,0 +1,91 @@
|
|||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# AliasVault configuration file for VPS
|
||||||
|
#
|
||||||
|
# 1. Kopiere diese Datei nach .env im selben Verzeichnis wie docker-compose.vps.yml
|
||||||
|
# cp .env.example .env
|
||||||
|
# 2. Passe die Werte entsprechend an (insbesondere HOSTNAME und Passwörter)
|
||||||
|
# 3. Starte mit: docker-compose -f docker-compose.vps.yml up -d
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# ===========================================
|
||||||
|
# NETWORK PORTS
|
||||||
|
# ===========================================
|
||||||
|
|
||||||
|
# Ports für den Reverse-Proxy - Ändere falls notwendig (z.B. 8080:80, 8443:443)
|
||||||
|
HTTP_PORT=80
|
||||||
|
HTTPS_PORT=443
|
||||||
|
|
||||||
|
# SMTP Ports - falls du einen eigenen Mailserver betreibst, passe diese an
|
||||||
|
SMTP_PORT=25
|
||||||
|
SMTP_TLS_PORT=587
|
||||||
|
|
||||||
|
# Redirect von HTTP zu HTTPS aktivieren (empfohlen)
|
||||||
|
FORCE_HTTPS_REDIRECT=true
|
||||||
|
|
||||||
|
# ===========================================
|
||||||
|
# EMAIL SERVER CONFIGURATION
|
||||||
|
# ===========================================
|
||||||
|
|
||||||
|
# Private Email-Domains, die der Server akzeptieren soll (kommagetrennt)
|
||||||
|
# Beispiel: PRIVATE_EMAIL_DOMAINS=meinedomain.com,beispiel.org
|
||||||
|
# Leer lassen, um die Funktion zu deaktivieren
|
||||||
|
PRIVATE_EMAIL_DOMAINS=
|
||||||
|
|
||||||
|
# Private Email-Domains, die in der UI versteckt werden sollen
|
||||||
|
HIDDEN_PRIVATE_EMAIL_DOMAINS=
|
||||||
|
|
||||||
|
# Hostname für SMTP (EHLO) - sollte mit PTR-DNS deiner IP übereinstimmen
|
||||||
|
# Beispiel: SMTP_ADVERTISED_HOSTNAME=mail.deinedomain.com
|
||||||
|
SMTP_ADVERTISED_HOSTNAME=
|
||||||
|
|
||||||
|
# SMTP TLS aktivieren (STARTTLS)
|
||||||
|
# Benötigt TLS-Zertifikate in ./certificates/smtp/
|
||||||
|
SMTP_TLS_ENABLED=false
|
||||||
|
|
||||||
|
# ===========================================
|
||||||
|
# Let's Encrypt configuration
|
||||||
|
# ===========================================
|
||||||
|
|
||||||
|
# Let's Encrypt aktivieren (für automatische SSL-Zertifikate)
|
||||||
|
# Benötigt HOSTNAME (öffentliche Domain) und offene Ports 80/443
|
||||||
|
LETSENCRYPT_ENABLED=false
|
||||||
|
|
||||||
|
# Öffentlicher Hostname für Let's Encrypt
|
||||||
|
# Beispiel: aliasvault.deinedomain.com
|
||||||
|
HOSTNAME=
|
||||||
|
|
||||||
|
# ===========================================
|
||||||
|
# Optional configuration settings
|
||||||
|
# ===========================================
|
||||||
|
|
||||||
|
# Öffentliche Registrierung erlauben
|
||||||
|
PUBLIC_REGISTRATION_ENABLED=true
|
||||||
|
|
||||||
|
# IP-Logging für Auth-Versuche (letztes Oktett wird anonymisiert)
|
||||||
|
IP_LOGGING_ENABLED=true
|
||||||
|
|
||||||
|
# Support-Email-Adresse (in der Web-App angezeigt)
|
||||||
|
SUPPORT_EMAIL=
|
||||||
|
|
||||||
|
# Maximale Upload-Größe in MB (für Vault-Sync)
|
||||||
|
MAX_UPLOAD_SIZE_MB=100
|
||||||
|
|
||||||
|
# IP-Beschränkung für /admin Endpoint
|
||||||
|
# - Leer = keine Beschränkung
|
||||||
|
# - "private" = nur lokale/RFC1918-Adressen
|
||||||
|
# - CIDR-Liste = z.B. "192.168.1.0/24,10.0.0.0/8"
|
||||||
|
ADMIN_IP_ALLOWLIST=
|
||||||
|
|
||||||
|
# Vertrauenswürdige Upstream-Proxies für X-Forwarded-For Header
|
||||||
|
# - Leer = RFC1918 vertrauen
|
||||||
|
# - "none" = keine Proxies vertrauen
|
||||||
|
# - CIDR-Liste = spezifische Proxies
|
||||||
|
TRUSTED_PROXIES=
|
||||||
|
|
||||||
|
# ===========================================
|
||||||
|
# WEITERE EINSTELLUNGEN
|
||||||
|
# ===========================================
|
||||||
|
|
||||||
|
# PostgreSQL Passwort - in ./secrets/postgres_password setzen
|
||||||
|
# Dieses Passwort muss in einer Datei ./secrets/postgres_password gespeichert werden
|
||||||
|
# Beispiel: echo "dein_starkes_passwort" > ./secrets/postgres_password
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
# AliasVault VPS Deployment
|
||||||
|
|
||||||
|
Dieses Repository enthält die optimierte Docker Compose-Konfiguration für die Bereitstellung von AliasVault auf einem VPS.
|
||||||
|
|
||||||
|
## 🚀 Schnellstart
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📁 Dateistruktur
|
||||||
|
|
||||||
|
- `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:**
|
||||||
|
```env
|
||||||
|
HOSTNAME=aliasvault.deinedomain.com
|
||||||
|
LETSENCRYPT_ENABLED=true
|
||||||
|
FORCE_HTTPS_REDIRECT=true
|
||||||
|
```
|
||||||
|
|
||||||
|
**Für lokalen/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
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Verwaltung
|
||||||
|
|
||||||
|
**Container starten:**
|
||||||
|
```bash
|
||||||
|
docker-compose -f docker-compose.vps.yml up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
**Container stoppen:**
|
||||||
|
```bash
|
||||||
|
docker-compose -f docker-compose.vps.yml down
|
||||||
|
```
|
||||||
|
|
||||||
|
**Logs anzeigen:**
|
||||||
|
```bash
|
||||||
|
docker-compose -f docker-compose.vps.yml logs -f
|
||||||
|
```
|
||||||
|
|
||||||
|
**Updates durchführen:**
|
||||||
|
```bash
|
||||||
|
docker-compose -f docker-compose.vps.yml pull
|
||||||
|
docker-compose -f docker-compose.vps.yml up -d --force-recreate
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔒 Sicherheit
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
## 📦 Docker Volumes
|
||||||
|
|
||||||
|
Die Daten werden in folgenden Volumes gespeichert:
|
||||||
|
- `postgres_data` – PostgreSQL-Datenbank
|
||||||
|
- `database_data` – AliasVault-Datenbank
|
||||||
|
- `logs_data` – Logdateien
|
||||||
|
|
||||||
|
## 🚨 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
|
||||||
|
|
||||||
|
- [Offizielle AliasVault Dokumentation](https://docs.aliasvault.net)
|
||||||
|
- [AliasVault GitHub Repository](https://github.com/aliasvault/aliasvault)
|
||||||
|
- [Docker Compose Dokumentation](https://docs.docker.com/compose/)
|
||||||
@@ -0,0 +1,142 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: ghcr.io/aliasvault/postgres:latest
|
||||||
|
container_name: aliasvault-postgres
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data:rw
|
||||||
|
- ./secrets:/secrets:ro
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: aliasvault
|
||||||
|
POSTGRES_USER: aliasvault
|
||||||
|
POSTGRES_PASSWORD_FILE: /secrets/postgres_password
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U aliasvault"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
start_period: 10s
|
||||||
|
networks:
|
||||||
|
- aliasvault-network
|
||||||
|
|
||||||
|
client:
|
||||||
|
image: ghcr.io/aliasvault/client:latest
|
||||||
|
container_name: aliasvault-client
|
||||||
|
volumes:
|
||||||
|
- ./logs/msbuild:/apps/server/msbuild-logs:rw
|
||||||
|
expose:
|
||||||
|
- "3000"
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
networks:
|
||||||
|
- aliasvault-network
|
||||||
|
|
||||||
|
api:
|
||||||
|
image: ghcr.io/aliasvault/api:latest
|
||||||
|
container_name: aliasvault-api
|
||||||
|
expose:
|
||||||
|
- "3001"
|
||||||
|
volumes:
|
||||||
|
- database_data:/database:rw
|
||||||
|
- logs_data:/logs:rw
|
||||||
|
- ./secrets:/secrets:ro
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
networks:
|
||||||
|
- aliasvault-network
|
||||||
|
|
||||||
|
admin:
|
||||||
|
image: ghcr.io/aliasvault/admin:latest
|
||||||
|
container_name: aliasvault-admin
|
||||||
|
expose:
|
||||||
|
- "3002"
|
||||||
|
volumes:
|
||||||
|
- database_data:/database:rw
|
||||||
|
- logs_data:/logs:rw
|
||||||
|
- ./secrets:/secrets:ro
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
networks:
|
||||||
|
- aliasvault-network
|
||||||
|
|
||||||
|
smtp:
|
||||||
|
image: ghcr.io/aliasvault/smtp:latest
|
||||||
|
container_name: aliasvault-smtp
|
||||||
|
ports:
|
||||||
|
- "${SMTP_PORT:-25}:25"
|
||||||
|
- "${SMTP_TLS_PORT:-587}:587"
|
||||||
|
volumes:
|
||||||
|
- database_data:/database:rw
|
||||||
|
- logs_data:/logs:rw
|
||||||
|
- ./secrets:/secrets:ro
|
||||||
|
- ./certificates/smtp:/certificates/smtp:ro
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
networks:
|
||||||
|
- aliasvault-network
|
||||||
|
|
||||||
|
task-runner:
|
||||||
|
image: ghcr.io/aliasvault/task-runner:latest
|
||||||
|
container_name: aliasvault-task-runner
|
||||||
|
volumes:
|
||||||
|
- database_data:/database:rw
|
||||||
|
- logs_data:/logs:rw
|
||||||
|
- ./secrets:/secrets:ro
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
networks:
|
||||||
|
- aliasvault-network
|
||||||
|
|
||||||
|
reverse-proxy:
|
||||||
|
image: ghcr.io/aliasvault/reverse-proxy:latest
|
||||||
|
container_name: aliasvault-reverse-proxy
|
||||||
|
ports:
|
||||||
|
- "${HTTP_PORT:-80}:80"
|
||||||
|
- "${HTTPS_PORT:-443}:443"
|
||||||
|
volumes:
|
||||||
|
- ./certificates/ssl:/etc/nginx/ssl:rw
|
||||||
|
- ./certificates/letsencrypt:/etc/nginx/ssl-letsencrypt:rw
|
||||||
|
- ./certificates/letsencrypt/www:/var/www/certbot:rw
|
||||||
|
depends_on:
|
||||||
|
- admin
|
||||||
|
- client
|
||||||
|
- api
|
||||||
|
- smtp
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
networks:
|
||||||
|
- aliasvault-network
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
||||||
|
driver: local
|
||||||
|
database_data:
|
||||||
|
driver: local
|
||||||
|
logs_data:
|
||||||
|
driver: local
|
||||||
|
|
||||||
|
networks:
|
||||||
|
aliasvault-network:
|
||||||
|
driver: bridge
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# AliasVault VPS Setup Script
|
||||||
|
# https://git.schoettler-mk.de/schoettik/aliasvault-vps
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
echo -e "${GREEN}========================================${NC}"
|
||||||
|
echo -e "${GREEN} AliasVault VPS Setup Script${NC}"
|
||||||
|
echo -e "${GREEN}========================================${NC}"
|
||||||
|
|
||||||
|
# Prüfe, ob Docker installiert ist
|
||||||
|
if ! command -v docker &> /dev/null; then
|
||||||
|
echo -e "${RED}Docker ist nicht installiert.${NC}"
|
||||||
|
echo "Installiere Docker mit:"
|
||||||
|
echo " curl -fsSL https://get.docker.com | sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prüfe, ob Docker Compose installiert ist
|
||||||
|
if ! command -v docker-compose &> /dev/null; then
|
||||||
|
echo -e "${RED}Docker Compose ist nicht installiert.${NC}"
|
||||||
|
echo "Installiere Docker Compose mit:"
|
||||||
|
echo " sudo apt-get install docker-compose"
|
||||||
|
echo " oder"
|
||||||
|
echo " sudo pip install docker-compose"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Installation Directory
|
||||||
|
INSTALL_DIR="${1:-/opt/aliasvault}"
|
||||||
|
echo -e "${YELLOW}Installationsverzeichnis: ${INSTALL_DIR}${NC}"
|
||||||
|
|
||||||
|
# Repository URL (kann angepasst werden)
|
||||||
|
REPO_URL="https://git.schoettler-mk.de/schoettik/aliasvault-vps.git"
|
||||||
|
|
||||||
|
# Frage nach Bestätigung
|
||||||
|
read -p "AliasVault in ${INSTALL_DIR} installieren? (j/N): " -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ ! $REPLY =~ ^[Jj]$ ]]; then
|
||||||
|
echo -e "${YELLOW}Abgebrochen.${NC}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verzeichnis erstellen
|
||||||
|
echo -e "${YELLOW}Erstelle Installationsverzeichnis...${NC}"
|
||||||
|
sudo mkdir -p "${INSTALL_DIR}"
|
||||||
|
sudo chown -R $(id -u):$(id -g) "${INSTALL_DIR}"
|
||||||
|
cd "${INSTALL_DIR}"
|
||||||
|
|
||||||
|
# Repository klonen oder Dateien kopieren
|
||||||
|
echo -e "${YELLOW}Lade Konfigurationsdateien herunter...${NC}"
|
||||||
|
if [[ -f "docker-compose.vps.yml" ]]; then
|
||||||
|
echo -e "${YELLOW}Dateien existieren bereits. Überspringe Download.${NC}"
|
||||||
|
else
|
||||||
|
# Versuche Git Clone, falls nicht klappt, kopiere lokale Dateien
|
||||||
|
if command -v git &> /dev/null; then
|
||||||
|
git clone "${REPO_URL}" .
|
||||||
|
else
|
||||||
|
echo -e "${RED}Git nicht verfügbar. Lade Dateien manuell herunter.${NC}"
|
||||||
|
echo "Bitte Repository manuell klonen oder Dateien kopieren."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# .env-Datei erstellen
|
||||||
|
if [[ ! -f ".env" ]]; then
|
||||||
|
echo -e "${YELLOW}Erstelle .env-Datei aus Vorlage...${NC}"
|
||||||
|
if [[ -f ".env.example" ]]; then
|
||||||
|
cp .env.example .env
|
||||||
|
echo -e "${GREEN}.env-Datei erstellt. Bitte bearbeite: ${INSTALL_DIR}/.env${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}.env.example nicht gefunden.${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}.env-Datei existiert bereits.${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Secrets-Verzeichnis erstellen
|
||||||
|
echo -e "${YELLOW}Erstelle Secrets-Verzeichnis...${NC}"
|
||||||
|
mkdir -p secrets
|
||||||
|
|
||||||
|
# PostgreSQL Passwort setzen
|
||||||
|
if [[ ! -f "secrets/postgres_password" ]]; then
|
||||||
|
echo -e "${YELLOW}Erstelle PostgreSQL Passwort...${NC}"
|
||||||
|
echo "Bitte gib ein starkes PostgreSQL-Passwort ein (Enter für automatische Generierung):"
|
||||||
|
read -s POSTGRES_PASSWORD
|
||||||
|
if [[ -z "$POSTGRES_PASSWORD" ]]; then
|
||||||
|
POSTGRES_PASSWORD=$(openssl rand -base64 32 2>/dev/null || date +%s | sha256sum | base64 | head -c 32)
|
||||||
|
echo -e "${YELLOW}Automatisch generiertes Passwort:${NC}"
|
||||||
|
echo " $POSTGRES_PASSWORD"
|
||||||
|
fi
|
||||||
|
echo "$POSTGRES_PASSWORD" > secrets/postgres_password
|
||||||
|
chmod 600 secrets/postgres_password
|
||||||
|
echo -e "${GREEN}PostgreSQL Passwort gespeichert: ${INSTALL_DIR}/secrets/postgres_password${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}PostgreSQL Passwort existiert bereits.${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Zertifikate-Verzeichnis erstellen
|
||||||
|
echo -e "${YELLOW}Erstelle Zertifikate-Verzeichnisse...${NC}"
|
||||||
|
mkdir -p certificates/{ssl,letsencrypt/www,smtp}
|
||||||
|
|
||||||
|
# Container starten
|
||||||
|
echo -e "${GREEN}========================================${NC}"
|
||||||
|
echo -e "${GREEN}Starten der AliasVault Container...${NC}"
|
||||||
|
echo -e "${GREEN}========================================${NC}"
|
||||||
|
|
||||||
|
if sudo docker-compose -f docker-compose.vps.yml up -d; then
|
||||||
|
echo -e "${GREEN}✅ AliasVault Container erfolgreich gestartet!${NC}"
|
||||||
|
|
||||||
|
# Zeige Status
|
||||||
|
echo ""
|
||||||
|
echo -e "${YELLOW}Container-Status:${NC}"
|
||||||
|
sudo docker-compose -f docker-compose.vps.yml ps
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}📋 Nächste Schritte:${NC}"
|
||||||
|
echo "1. Bearbeite die .env-Datei: ${INSTALL_DIR}/.env"
|
||||||
|
echo "2. Konfiguriere DNS-Einträge für deine Domain (falls Let's Encrypt)"
|
||||||
|
echo "3. Öffne ${INSTALL_DIR}/README.md für weitere Informationen"
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}🔗 Erreichbare Services:${NC}"
|
||||||
|
echo "- Web Interface: http://localhost (oder deine Domain)"
|
||||||
|
echo "- Admin Interface: http://localhost/admin"
|
||||||
|
echo "- SMTP Server: localhost:25 (oder ${SMTP_PORT:-587} für TLS)"
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}⚡ Verwaltung:${NC}"
|
||||||
|
echo " Status: sudo docker-compose -f docker-compose.vps.yml ps"
|
||||||
|
echo " Logs: sudo docker-compose -f docker-compose.vps.yml logs -f"
|
||||||
|
echo " Stoppen: sudo docker-compose -f docker-compose.vps.yml down"
|
||||||
|
echo " Updates: sudo docker-compose -f docker-compose.vps.yml pull && sudo docker-compose -f docker-compose.vps.yml up -d"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Fehler beim Starten der Container.${NC}"
|
||||||
|
echo "Überprüfe die Logs: sudo docker-compose -f docker-compose.vps.yml logs"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}✅ Installation abgeschlossen!${NC}"
|
||||||
Reference in New Issue
Block a user