Modes de Déploiement
CSWeb supporte 6 configurations selon le type de base breakout et le mode de déploiement.
Architecture
┌─────────────────────────────────────────────────────────────┐
│ Mode LOCAL (Docker) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌────────────────────┐ │
│ │ CSWeb │ │ MySQL │ │ PostgreSQL / MySQL │ │
│ │ (Apache) │ │(Metadata)│ │ / SQL Server │ │
│ │ :8080 │ │ :3306 │ │ (Breakout local) │ │
│ └──────────┘ └──────────┘ └────────────────────┘ │
│ │
│ csweb-network (bridge) │
└─────────────────────────────────────────────────────────────┘
┌────────────────────────────┐ ┌────────────────────────┐
│ Mode REMOTE │ │ Serveur Distant │
│ │ │ │
│ ┌──────────┐ ┌──────────┐│ │ ┌──────────────────┐ │
│ │ CSWeb │ │ MySQL ││ ───► │ │ PostgreSQL/MySQL │ │
│ │ (Apache) │ │(Metadata)││ │ │ /SQL Server │ │
│ │ :8080 │ │ :3306 ││ │ │ (Breakout) │ │
│ └──────────┘ └──────────┘│ │ └──────────────────┘ │
│ │ │ │
│ Docker (local) │ │ Serveur production │
└────────────────────────────┘ └────────────────────────┘Choisir votre configuration
| Critere | Local | Remote |
|---|---|---|
| Usage | Developpement, test, petite equipe | Production, RGPH, haute charge |
| Prerequis | Docker uniquement | Docker + serveur DB distant |
| Performance | Limitee par la machine locale | Scalable independamment |
| Maintenance | Tout-en-un, simple | Deux serveurs a maintenir |
Setup par type de base
Choisissez votre type de base breakout :
PostgreSQL - Breakout
PostgreSQL est recommande pour le breakout analytique grace a ses performances sur les gros volumes et ses fonctions avancees (JSONB, window functions).
Mode Local (Docker)
1. Configuration .env :
# Mode
BREAKOUT_MODE=local
BREAKOUT_DB_TYPE=postgresql
# MySQL Metadata (toujours local)
MYSQL_HOST=mysql
MYSQL_PORT=3306
MYSQL_DATABASE=csweb_metadata
MYSQL_USER=csweb_user
MYSQL_PASSWORD=CHANGEZ_MOT_DE_PASSE
MYSQL_ROOT_PASSWORD=CHANGEZ_ROOT_PASSWORD
# PostgreSQL Breakout (container Docker)
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DATABASE=csweb_analytics
POSTGRES_USER=csweb_analytics
POSTGRES_PASSWORD=CHANGEZ_PG_PASSWORD2. Lancer :
docker compose --profile local-postgres up -d3. Services disponibles :
| Service | Port | URL |
|---|---|---|
| CSWeb | 8080 | http://localhost:8080 (opens in a new tab) |
| MySQL (metadata) | 3306 | - |
| PostgreSQL (breakout) | 5432 | - |
4. Verifier :
# Conteneurs
docker compose ps
# Connexion PostgreSQL
docker compose exec postgres psql -U csweb_analytics -d csweb_analytics
# Drivers
docker compose exec csweb php bin/console csweb:check-database-drivers --test-connectionsMode Remote (serveur distant)
1. Configuration .env :
# Mode
BREAKOUT_MODE=remote
BREAKOUT_DB_TYPE=postgresql
# MySQL Metadata (toujours en container local)
MYSQL_HOST=mysql
MYSQL_PORT=3306
MYSQL_DATABASE=csweb_metadata
MYSQL_USER=csweb_user
MYSQL_PASSWORD=CHANGEZ_MOT_DE_PASSE
MYSQL_ROOT_PASSWORD=CHANGEZ_ROOT_PASSWORD
# PostgreSQL Breakout (serveur distant)
POSTGRES_HOST=192.168.1.100
POSTGRES_PORT=5432
POSTGRES_DATABASE=csweb_analytics
POSTGRES_USER=csweb_analytics
POSTGRES_PASSWORD=MOT_DE_PASSE_DISTANT2. Lancer (pas de profil breakout) :
docker compose up -d3. Services disponibles :
| Service | Port | Description |
|---|---|---|
| CSWeb | 8080 | http://localhost:8080 (opens in a new tab) |
| MySQL (metadata) | 3306 | Container local |
| PostgreSQL (breakout) | - | Serveur distant 192.168.1.100:5432 |
4. Prerequis serveur distant :
# postgresql.conf
listen_addresses = '*'
# pg_hba.conf
host all all 0.0.0.0/0 md5# Firewall
sudo ufw allow from [IP_CSWEB] to any port 5432Resume des commandes
| Breakout | Mode Local | Mode Remote |
|---|---|---|
| PostgreSQL | docker compose --profile local-postgres up -d | docker compose up -d |
| MySQL | docker compose --profile local-mysql up -d | docker compose up -d |
| SQL Server | docker compose --profile local-sqlserver up -d | docker compose up -d |
En mode remote, configurez BREAKOUT_MODE=remote + les variables de connexion dans .env, puis lancez docker compose up -d (sans profil). Seuls CSWeb + MySQL metadata demarrent en Docker.
Ajouter les outils de developpement
Combinez --profile dev avec n'importe quel mode local pour ajouter phpMyAdmin et pgAdmin :
# PostgreSQL local + outils dev
docker compose --profile local-postgres --profile dev up -d
# MySQL local + outils dev
docker compose --profile local-mysql --profile dev up -d| Outil | Port | URL |
|---|---|---|
| phpMyAdmin | 8081 | http://localhost:8081 (opens in a new tab) |
| pgAdmin | 8082 | http://localhost:8082 (opens in a new tab) |
Basculer entre modes
# De local a remote :
# 1. Modifier .env : BREAKOUT_MODE=remote + variables serveur distant
# 2. Redemarrer sans profil breakout
docker compose down
docker compose up -d
# De remote a local :
# 1. Modifier .env : BREAKOUT_MODE=local
# 2. Redemarrer avec le profil
docker compose down
docker compose --profile local-postgres up -dCommandes utiles
# Voir les conteneurs actifs
docker compose ps
# Logs d'un service
docker compose logs -f csweb
# Verifier la configuration
docker compose exec csweb php bin/console csweb:check-config
# Tester les connexions
docker compose exec csweb php bin/console csweb:check-database-drivers --test-connections
# Rebuild apres modification
docker compose --profile local-postgres up -d --build
# Arreter tout
docker compose downVoir aussi
- Performance Tuning - Optimiser PHP, MySQL, PostgreSQL, Apache
- Docker Production - Deploiement production securise
- Variables d'Environnement - Reference complete
.env - Backup & Restore - Sauvegardes automatiques