# E-Ticket Plateforme destinee aux associations pour la vente de tickets evenementiels, la reservation de tables, l'organisation de brocantes et le vote en ligne. ## Stack technique | Composant | Technologie | |-----------|-------------| | Backend | Symfony 8 / PHP 8.4 | | Base de donnees | PostgreSQL 16 | | Cache / Queue | Redis 7 | | Async | Symfony Messenger | | Frontend | Bun / Vite / Tailwind CSS | | Serveur web | Caddy | | Email | Amazon SES | | DNS / CDN | Cloudflare | | Deploiement | Ansible / Gitea Actions | ## Architecture ### Developpement | Service | Port | |---------|------| | Caddy (web) | `localhost:8000` | | Vite (HMR) | `localhost:5173` | | PostgreSQL | `localhost:5432` | | Redis | `localhost:6379` | | Mailpit (SMTP) | `localhost:1025` | | Mailpit (UI) | `localhost:8025` | | RedisInsight | `localhost:5540` | ### Production - 2x PHP-FPM (load balancing via Caddy) - PostgreSQL master / slave (replication) - PgBouncer (connection pooling) - 2x Messenger workers - Redis - Caddy installe sur la machine hote ## Prerequis - Docker & Docker Compose - Make ## Installation ```bash # Build les images make build_dev # Lance les containers make start_dev # Install les dependances make install_dev ``` ## Commandes disponibles ```bash make help ``` | Commande | Description | |----------|-------------| | `make build_dev` | Build les images Docker dev | | `make build_prod` | Build les images Docker prod | | `make start_dev` | Lance les containers dev | | `make start_prod` | Lance les containers prod (background) | | `make stop_dev` | Arrete les containers dev | | `make stop_prod` | Arrete les containers prod | | `make purge_dev` | Arrete et purge tout (volumes, images) | | `make install_dev` | Install les dependances via Docker | | `make install_prod` | Install les dependances et build les assets | | `make migration_dev` | Genere une migration | | `make migrate_dev` | Execute les migrations en dev | | `make migrate_prod` | Execute les migrations en prod | ## Base de donnees ### Dev | Param | Valeur | |-------|--------| | Host | `localhost` | | Port | `5432` | | Database | `e-ticket` | | User | `app` | | Password | `secret` | ### Prod PostgreSQL master/slave avec PgBouncer. Replication streaming asynchrone. ## Deploiement Le deploiement se fait via Gitea Actions (declenchement manuel) + Ansible. ```bash # Deployer la config Caddy ansible-playbook -i ansible/hosts.ini ansible/deploy-caddy.yml --ask-vault-pass ``` ### Mode maintenance Pour activer la maintenance : ```bash touch /var/www/e-ticket/public/.update ``` Pour desactiver : ```bash rm /var/www/e-ticket/public/.update ``` ## Licence Licence proprietaire. Voir [LICENSE.md](LICENSE.md).