Guides
Production
Modes de Déploiement

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

CritereLocalRemote
UsageDeveloppement, test, petite equipeProduction, RGPH, haute charge
PrerequisDocker uniquementDocker + serveur DB distant
PerformanceLimitee par la machine localeScalable independamment
MaintenanceTout-en-un, simpleDeux 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_PASSWORD

2. Lancer :

docker compose --profile local-postgres up -d

3. Services disponibles :

ServicePortURL
CSWeb8080http://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-connections

Mode 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_DISTANT

2. Lancer (pas de profil breakout) :

docker compose up -d

3. Services disponibles :

ServicePortDescription
CSWeb8080http://localhost:8080 (opens in a new tab)
MySQL (metadata)3306Container 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 5432

Resume des commandes

BreakoutMode LocalMode Remote
PostgreSQLdocker compose --profile local-postgres up -ddocker compose up -d
MySQLdocker compose --profile local-mysql up -ddocker compose up -d
SQL Serverdocker compose --profile local-sqlserver up -ddocker 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
OutilPortURL
phpMyAdmin8081http://localhost:8081 (opens in a new tab)
pgAdmin8082http://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 -d

Commandes 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 down

Voir aussi