99 lines
2.6 KiB
Markdown
99 lines
2.6 KiB
Markdown
# Docker Setup
|
|
|
|
Ce projet inclut des fichiers Docker pour faciliter le déploiement.
|
|
|
|
## Fichiers Docker
|
|
|
|
- `Dockerfile` - Image de production optimisée (multi-stage build)
|
|
- `docker-compose.yml` - Configuration pour la production
|
|
|
|
## Production
|
|
|
|
Pour construire et démarrer l'application en production :
|
|
|
|
```bash
|
|
# Construire l'image
|
|
docker-compose build
|
|
|
|
# Démarrer les services
|
|
docker-compose up -d
|
|
|
|
# Voir les logs
|
|
docker-compose logs -f
|
|
```
|
|
|
|
## Variables d'environnement
|
|
|
|
Créez un fichier `.env` à la racine du projet à partir du template `.env.example` :
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Puis modifiez les valeurs dans `.env` selon votre configuration :
|
|
|
|
```env
|
|
# NextAuth Configuration
|
|
NEXTAUTH_SECRET=your-secret-key-here
|
|
NEXTAUTH_URL=http://localhost:3000
|
|
|
|
# PostgreSQL Configuration
|
|
POSTGRES_USER=gotgaming
|
|
POSTGRES_PASSWORD=change-this-in-production
|
|
POSTGRES_DB=gotgaming
|
|
|
|
# Database URL (optionnel - construite automatiquement si non définie)
|
|
# DATABASE_URL=postgresql://gotgaming:change-this-in-production@got-postgres:5432/gotgaming?schema=public
|
|
|
|
# Docker Volumes (optionnel)
|
|
POSTGRES_DATA_PATH=./data/postgres
|
|
UPLOADS_PATH=./public/uploads
|
|
```
|
|
|
|
**Important** :
|
|
- Le fichier `.env` est ignoré par Git (ne pas commiter vos secrets)
|
|
- Si vous changez `POSTGRES_PASSWORD` après la première initialisation, vous devrez soit réinitialiser la base, soit changer le mot de passe manuellement dans PostgreSQL
|
|
|
|
## Volumes persistants
|
|
|
|
### Base de données PostgreSQL
|
|
|
|
La base de données PostgreSQL est persistée via un volume Docker. Par défaut, elle est stockée dans `./data/postgres`, mais vous pouvez la personnaliser avec la variable d'environnement `POSTGRES_DATA_PATH`.
|
|
|
|
Les migrations Prisma sont appliquées automatiquement au démarrage du conteneur.
|
|
|
|
Pour appliquer manuellement les migrations :
|
|
|
|
```bash
|
|
docker-compose exec got-app pnpm dlx prisma migrate deploy
|
|
```
|
|
|
|
### Images uploadées
|
|
|
|
Les images uploadées (avatars et backgrounds) sont persistées dans un volume Docker. Par défaut, elles sont stockées dans `./uploads` à la racine du projet, mais vous pouvez personnaliser le chemin avec la variable d'environnement `UPLOADS_PATH`.
|
|
|
|
- Les avatars sont stockés dans `uploads/`
|
|
- Les backgrounds sont stockés dans `uploads/backgrounds/`
|
|
|
|
Exemple pour utiliser un chemin personnalisé :
|
|
|
|
```bash
|
|
UPLOADS_PATH=/path/to/your/uploads docker-compose up -d
|
|
```
|
|
|
|
## Commandes utiles
|
|
|
|
```bash
|
|
# Arrêter les conteneurs
|
|
docker-compose down
|
|
|
|
# Reconstruire sans cache
|
|
docker-compose build --no-cache
|
|
|
|
# Accéder au shell du conteneur
|
|
docker-compose exec got-app sh
|
|
|
|
# Voir les logs en temps réel
|
|
docker-compose logs -f got-app
|
|
```
|