4.5 KiB
4.5 KiB
🐳 Docker - TowerControl
Guide d'utilisation de TowerControl avec Docker.
🚀 Démarrage rapide
Production
# Démarrer le service de production
docker-compose up -d towercontrol
# Accéder à l'application
open http://localhost:3006
Développement
# Démarrer le service de développement avec live reload
docker-compose --profile dev up towercontrol-dev
# Accéder à l'application
open http://localhost:3005
📋 Services disponibles
🚀 towercontrol (Production)
- Port : 3006
- Base de données :
./data/prod.db - Sauvegardes :
./data/backups/ - Mode : Optimisé, standalone
- Restart : Automatique
🛠️ towercontrol-dev (Développement)
- Port : 3005
- Base de données :
./data/dev.db - Sauvegardes :
./data/backups/(partagées) - Mode : Live reload, debug
- Profile :
dev
📁 Structure des données
./data/ # Mappé vers /app/data dans les conteneurs
├── README.md # Documentation du dossier data
├── prod.db # Base SQLite production
├── dev.db # Base SQLite développement
└── backups/ # Sauvegardes automatiques
├── towercontrol_2025-01-15T10-30-00-000Z.db.gz
└── ...
🔧 Configuration
Variables d'environnement
| Variable | Production | Développement | Description |
|---|---|---|---|
NODE_ENV |
production |
development |
Mode d'exécution |
DATABASE_URL |
file:./data/prod.db |
file:./data/dev.db |
Base Prisma |
BACKUP_DATABASE_PATH |
./data/prod.db |
./data/dev.db |
Source backup |
BACKUP_STORAGE_PATH |
./data/backups |
./data/backups |
Dossier backup |
TZ |
Europe/Paris |
Europe/Paris |
Fuseau horaire |
Ports
- Production :
3006:3000 - Développement :
3005:3000
📚 Commandes utiles
Gestion des conteneurs
# Voir les logs
docker-compose logs -f towercontrol
docker-compose logs -f towercontrol-dev
# Arrêter les services
docker-compose down
# Reconstruire les images
docker-compose build
# Nettoyer tout
docker-compose down -v --rmi all
Gestion des données
# Sauvegarder les données
docker-compose exec towercontrol pnpm run backup:create
# Lister les sauvegardes
docker-compose exec towercontrol pnpm run backup:list
# Accéder au shell du conteneur
docker-compose exec towercontrol sh
Base de données
# Migrations Prisma
docker-compose exec towercontrol pnpm prisma migrate deploy
# Reset de la base (dev uniquement)
docker-compose exec towercontrol-dev pnpm prisma migrate reset
# Studio Prisma (dev)
docker-compose exec towercontrol-dev pnpm prisma studio
🔍 Debugging
Vérifier la santé
# Health check
curl http://localhost:3006/api/health
curl http://localhost:3005/api/health
# Vérifier les variables d'env
docker-compose exec towercontrol env | grep -E "(DATABASE|BACKUP|NODE_ENV)"
Logs détaillés
# Logs avec timestamps
docker-compose logs -f -t towercontrol
# Logs des 100 dernières lignes
docker-compose logs --tail=100 towercontrol
🚨 Dépannage
Problèmes courants
Port déjà utilisé
# Trouver le processus qui utilise le port
lsof -i :3006
kill -9 <PID>
Base de données corrompue
# Restaurer depuis une sauvegarde
docker-compose exec towercontrol pnpm run backup:restore filename.db.gz
Permissions
# Corriger les permissions du dossier data
sudo chown -R $USER:$USER ./data
📊 Monitoring
Espace disque
# Taille du dossier data
du -sh ./data
# Espace libre
df -h .
Performance
# Stats des conteneurs
docker stats
# Utilisation mémoire
docker-compose exec towercontrol free -h
🔒 Production
Recommandations
- Utiliser un reverse proxy (nginx, traefik)
- Configurer HTTPS
- Sauvegarder régulièrement
./data/ - Monitorer l'espace disque
- Logs centralisés
Exemple nginx
server {
listen 80;
server_name towercontrol.example.com;
location / {
proxy_pass http://localhost:3006;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
📚 Voir aussi : data/README.md