Files
e-ticket/README.md

123 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

# 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).