Guide de Déploiement VPS
Vue d'ensemble
Guide de déploiement complet pour srv759970.hstgr.cloud, incluant la configuration initiale du serveur et le déploiement de tous les services.
Configuration Initiale du Serveur
1. Connexion SSH
2. Mise à Jour du Système
3. Installation Docker
# Installation des dépendances
apt-get install -y ca-certificates curl gnupg lsb-release
# Ajout de la clé GPG Docker
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Configuration du dépôt
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# Installation
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
4. Installation Nginx
5. Installation Certbot
6. Configuration du Pare-feu
Déploiement des Services
WhisperX (Transcription avec Diarization)
mkdir -p /opt/whisperx
cd /opt/whisperx
# Créer docker-compose.yml, server.py, worker.py
# (voir documentation WhisperX)
docker-compose up -d
Vérification:
Faster-Whisper Queue
mkdir -p /opt/faster-whisper-queue
cd /opt/faster-whisper-queue
# Créer docker-compose.yml, server.py, worker.py, Dockerfile
# (voir documentation Faster-Whisper Queue)
docker-compose up -d
Vérification:
Monitoring Stack (Grafana + Prometheus + Loki)
mkdir -p /opt/monitoring/{prometheus,loki,promtail,grafana/provisioning/{datasources,dashboards}}
cd /opt/monitoring
# Créer docker-compose.yml et fichiers de config
# (voir documentation Monitoring)
docker-compose up -d
Vérification:
curl http://localhost:3001 # Grafana
curl http://localhost:9090 # Prometheus
curl http://localhost:3100/ready # Loki
Dashy Dashboard
Dozzle (Docker Logs Viewer)
docker run -d \
--name dozzle \
--restart unless-stopped \
-p 8888:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
amir20/dozzle:latest
MkDocs Documentation
mkdir -p /opt/mkdocs/docs
cd /opt/mkdocs
# Créer mkdocs.yml, Dockerfile, docker-compose.yml
# Copier les fichiers de documentation
docker-compose up -d
Configuration SSL/Nginx
Créer les Certificats
# Monitoring
certbot certonly --nginx -d monitoring.srv759970.hstgr.cloud --non-interactive --agree-tos -m julien@julienfernandez.xyz
# WhisperX
certbot certonly --nginx -d whisperx.srv759970.hstgr.cloud --non-interactive --agree-tos -m julien@julienfernandez.xyz
# Dozzle
certbot certonly --nginx -d dozzle.srv759970.hstgr.cloud --non-interactive --agree-tos -m julien@julienfernandez.xyz
# Faster-Whisper
certbot certonly --nginx -d faster-whisper.srv759970.hstgr.cloud --non-interactive --agree-tos -m julien@julienfernandez.xyz
Créer les Configurations Nginx
Pour chaque service, créer un fichier dans /etc/nginx/sites-available/ et activer:
ln -sf /etc/nginx/sites-available/<service> /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
Configuration Basic Auth
# Créer le fichier de mots de passe
htpasswd -c /etc/nginx/.htpasswd admin
# Créer le snippet
cat > /etc/nginx/snippets/basic-auth.conf << EOF
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
EOF
Vérification Post-Déploiement
Services Docker
Services HTTPS
# Monitoring
curl -I https://monitoring.srv759970.hstgr.cloud
# WhisperX
curl https://whisperx.srv759970.hstgr.cloud/
# Dozzle
curl -I https://dozzle.srv759970.hstgr.cloud
# Dashy
curl -I https://dashy.srv759970.hstgr.cloud
Certificats SSL
Maintenance
Mises à Jour
# Système
apt-get update && apt-get upgrade -y
# Images Docker
cd /opt/<service>
docker-compose pull
docker-compose up -d --build
Backup
# Volumes Docker
docker run --rm -v <volume_name>:/data -v $(pwd):/backup alpine tar czf /backup/backup.tar.gz -C /data .
# Configurations Nginx
tar czf nginx-configs-$(date +%Y%m%d).tar.gz /etc/nginx/sites-available/
Logs
# Nginx
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
# Docker
docker logs -f <container_name>
# Système
tail -f /var/log/syslog
Troubleshooting
Service ne démarre pas
# Voir les logs
docker logs <container_name> --tail 50
# Inspecter le conteneur
docker inspect <container_name>
# Vérifier le réseau
docker network inspect <network_name>
Erreur 502 Nginx
# Vérifier que le service écoute
netstat -tlnp | grep <port>
# Logs Nginx
tail -50 /var/log/nginx/error.log
# Redémarrer le service
docker-compose restart
Certificat SSL expiré
Structure Finale
/opt/
├── whisperx/
│ ├── docker-compose.yml
│ ├── server.py
│ └── worker.py
├── faster-whisper-queue/
│ ├── docker-compose.yml
│ ├── Dockerfile
│ ├── server.py
│ ├── worker.py
│ └── requirements.txt
├── monitoring/
│ ├── docker-compose.yml
│ ├── prometheus/
│ ├── loki/
│ ├── promtail/
│ └── grafana/
├── dashy/
│ ├── docker-compose.yml
│ └── conf.yml
└── mkdocs/
├── docker-compose.yml
├── Dockerfile
├── mkdocs.yml
└── docs/
/etc/nginx/
├── sites-available/
│ ├── monitoring
│ ├── whisperx-api
│ ├── dozzle
│ ├── dashy
│ └── faster-whisper-queue
├── sites-enabled/ (symlinks)
└── snippets/
└── basic-auth.conf