Files
got-gaming/README.docker.md

2.6 KiB

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 :

# 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 :

cp .env.example .env

Puis modifiez les valeurs dans .env selon votre configuration :

# 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 :

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é :

UPLOADS_PATH=/path/to/your/uploads docker-compose up -d

Commandes utiles

# 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