Screenshots à venir
| Composant | Techno |
|---|---|
| Backend | Python 3.12 · FastAPI · Alembic |
| Frontend | React · TypeScript · Vite |
| Auth | Keycloak 26 |
| DNS | PowerDNS (gpgsql) |
| Hyperviseur | Proxmox |
| Base de données | PostgreSQL 16 |
| Orchestration | Docker Compose |
- Docker + Docker Compose
- Make
- Accès à un Proxmox (optionnel pour le dev — les routes VM fonctionneront pas sans)
# 1. Copier le fichier d'environnement
make env
# 2. Remplir les variables obligatoires dans .env
# (voir section Variables d'environnement ci-dessous)
# 3. Démarrer tous les services
make up
# 4. Appliquer les migrations de base de données
make db-migrateL'app est accessible sur :
- Frontend : http://localhost:5173
- Backend (API) : http://localhost:8000
- Keycloak : http://localhost:8080
Le realm hosting-dev est importé automatiquement au démarrage de Keycloak.
Les comptes suivants sont disponibles sans configuration supplémentaire :
| Utilisateur | Mot de passe | Groupes | Cas testé |
|---|---|---|---|
admin |
admin |
cluster-dev + admin |
Administrateur, cotisation active |
user |
user |
cluster-dev |
Membre normal, cotisation active |
newuser |
newuser |
cluster-dev |
Membre sans charte signée |
expired |
expired |
cluster-dev |
Cotisation expirée |
recently_expired |
recently_expired |
cluster-dev |
Cotisation expirée récemment |
outsider |
outsider |
(aucun) | Utilisateur hors asso |
Pour se connecter, cliquer sur Se connecter sur le frontend — la redirection vers Keycloak est automatique.
Les variables avec une valeur par défaut fonctionnent directement en dev. Celles sans valeur par défaut sont obligatoires pour certaines fonctionnalités.
| Variable | Défaut dev | Description |
|---|---|---|
POSTGRES_DB |
hosting |
|
POSTGRES_USER |
app |
|
POSTGRES_PASSWORD |
devpassword |
|
SESSION_SECRET |
dev-session-secret-change-me-in-prod |
Secret de session — changer en prod |
PROXMOX_TOKEN_ID |
— | Token API Proxmox (optionnel en dev) |
PROXMOX_TOKEN_SECRET |
— | Secret du token Proxmox |
PDNS_API_KEY |
devkey |
|
DNS_ZONE |
h.lan |
Zone DNS gérée par PowerDNS |
make up # Démarrer tous les services
make down # Arrêter tous les services
make logs # Suivre les logs (tous les services)
make logs-back # Logs backend uniquement
make logs-front # Logs frontend uniquement
make db-migrate # Appliquer les migrations Alembic
make db-revision MSG="description" # Créer une nouvelle migration
make api-types # Regénérer les types TypeScript depuis l'OpenAPI du backend
make back-lint # Linter le backend (ruff)
make back-format # Formatter le backend (ruff)
make front-lint # Linter le frontend (eslint)
make help # Lister toutes les commandes disponiblesLes issues sont ouvertes :
Pour une demande de fonctionnalité, ouvrir une issue avec le label feature en décrivant :
- Le besoin (contexte, pourquoi c'est utile)
- Le comportement attendu
- Éventuellement une proposition d'implémentation
Voir LICENSE.
