Skip to content

Commit ba1e75f

Browse files
committed
chore(doc): update doc for dev
1 parent bfa125c commit ba1e75f

21 files changed

+927
-591
lines changed

README.md

Lines changed: 110 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,116 @@
55
[![Build Status](https://gitlab.factory.social.gouv.fr/SocialGouv/domifa/badges/master/pipeline.svg)](https://gitlab.factory.social.gouv.fr/SocialGouv/domifa/-/commits/master)
66
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FSocialGouv%2Fdomifa.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FSocialGouv%2Fdomifa?ref=badge_shield)
77

8-
> Faciliter l'accès aux droits pour les personnes sans domicile stable, en simplifiant la gestion de la domiciliation
8+
> DomiFa est une plateforme numérique qui facilite la gestion de la domiciliation pour les organismes agréés et permet aux personnes sans domicile stable d'accéder à leurs droits.
9+
10+
🌐 **Homepage** : https://domifa.fabrique.social.gouv.fr
11+
12+
## 🚀 Démarrage rapide
13+
14+
### Prérequis
15+
16+
- Node.js (version LTS recommandée)
17+
- Yarn (gestionnaire de packages)
18+
- Docker et Docker Compose
19+
- PostgreSQL (ou via Docker)
20+
21+
### Installation rapide
22+
23+
```bash
24+
# 1. Cloner le projet
25+
git clone https://github.com/SocialGouv/domifa.git
26+
cd domifa
27+
28+
# 2. Lancer l'environnement de développement
29+
docker-compose up -d
30+
31+
# 3. Installer les dépendances
32+
yarn install
33+
34+
# 4. Démarrer le projet en mode développement
35+
yarn dev
36+
```
37+
38+
L'application sera accessible sur :
39+
40+
- Frontend structures : http://localhost:4200
41+
- Portail domiciliés : http://localhost:4201
42+
- Interface admin : http://localhost:4202
43+
- Backend API : http://localhost:3000
44+
45+
## 📁 Architecture du projet
46+
47+
DomiFa utilise une architecture **monorepo** avec plusieurs packages :
48+
49+
```
50+
domifa/
51+
├── packages/
52+
│ ├── backend/ # API NestJS + PostgreSQL
53+
│ ├── frontend/ # Interface structures (Angular)
54+
│ ├── portail-frontend/ # Portail domiciliés (Angular)
55+
│ ├── portail-admins/ # Interface admin (Angular)
56+
│ └── common/ # Types et interfaces partagés
57+
├── _docs/ # Documentation technique et guides
58+
├── docker/ # Configurations Docker
59+
└── scripts/ # Scripts de gestion de la DB
60+
```
61+
62+
## 🛠️ Développement
63+
64+
### Commands principales
65+
66+
```bash
67+
# Développement complet
68+
yarn dev
69+
70+
# Services individuels
71+
yarn dev:backend # Backend seul
72+
yarn dev:frontend # Interface structures
73+
yarn dev:portail-frontend # Portail domiciliés
74+
yarn dev:portail-admins # Interface admin
75+
76+
# Tests et qualité
77+
yarn test
78+
yarn lint
79+
yarn build
80+
```
81+
82+
### Base de données
83+
84+
Le projet utilise PostgreSQL avec TypeORM pour les migrations :
85+
86+
## 🔧 Stack technique
87+
88+
### Technologies principales
89+
90+
- **Langage** : TypeScript
91+
- **Frontend** : Angular 17
92+
- **Backend** : NestJS v11 + PostgreSQL
93+
- **Déploiement** : Docker Compose
94+
95+
### Tests disponibles
96+
97+
- **Frontend** : Tests unitaires
98+
- **Portail usagers** : Tests unitaires
99+
- **Backend** : Tests unitaires + tests d'intégration
100+
101+
## 🔗 Liens utiles
102+
103+
### Documentation
104+
105+
- **Documentation technique** : [\_docs/](https://github.com/SocialGouv/domifa/tree/master/_docs)
106+
107+
### Outils de monitoring
108+
109+
- **Sentry Backend** : https://sentry.fabrique.social.gouv.fr/incubateur/domifa-backend
110+
- **Sentry Frontend** : https://sentry.fabrique.social.gouv.fr/incubateur/domifa-frontend
111+
- **Sentry Portail** : https://sentry.fabrique.social.gouv.fr/incubateur/domifa-portail-usagers
112+
- **Matomo** : https://matomo.fabrique.social.gouv.fr
113+
114+
### Services
115+
116+
- **Mails (prod+dev)** : https://app.tipimail.com/
117+
- **Mails (dev)** : https://mailtrap.io/
9118

10119
## Développement
11120

@@ -15,6 +124,4 @@ Voir [./\_docs/dev](./_docs/dev).
15124

16125
Voir [./\_docs/ops.md](./_docs/ops.md).
17126

18-
## License
19-
20127
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FSocialGouv%2Fdomifa.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FSocialGouv%2Fdomifa?ref=badge_large)

_docs/dev/0.run-local-env.md

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
# Installation Backend + PostgreSQL
2+
3+
## 🎯 Objectif
4+
5+
Démarrer un environnement de développement avec PostgreSQL en Docker et le backend DomiFa.
6+
7+
## 🐳 Modes de développement
8+
9+
### Mode hybride (recommandé)
10+
11+
PostgreSQL en Docker + Backend en local avec yarn workspaces - permet un meilleur contrôle du développement.
12+
13+
### Mode Docker complet
14+
15+
Tous les services dans Docker - utile pour la reproductibilité mais moins flexible pour le développement.
16+
17+
## ⚙️ Configuration des variables d'environnement
18+
19+
### Fichiers requis (obligatoires)
20+
21+
```bash
22+
# 1. Configuration racine
23+
cp .env.dev.example.env .env
24+
25+
# 2. Configuration backend
26+
cp packages/backend/.env.backend.dev.example.env packages/backend/.env
27+
28+
# 3. Configuration tests (optionnel)
29+
cp packages/backend/.env.backend.test.local.example.env packages/backend/.env.backend.test.local.env
30+
```
31+
32+
### Configuration de la connexion PostgreSQL
33+
34+
**Mode Docker complet** (Backend aussi en Docker) :
35+
36+
```env
37+
# Dans packages/backend/.env
38+
POSTGRES_HOST=postgres
39+
# OU utiliser le preset
40+
DOMIFA_ENV_PRESET=local-dev-docker.preset.env
41+
```
42+
43+
**Mode hybride** (Backend en local, PostgreSQL en Docker) :
44+
45+
```env
46+
# Dans packages/backend/.env
47+
POSTGRES_HOST=localhost
48+
# OU utiliser le preset
49+
DOMIFA_ENV_PRESET=local-dev.preset.env
50+
```
51+
52+
## 🐳 Lancement de l'environnement Docker
53+
54+
### Démarrage des services
55+
56+
```bash
57+
# PostgreSQL uniquement (recommandé avec yarn workspaces)
58+
./docker-compose.local.run.sh
59+
60+
# PostgreSQL + Backend en Docker (mode conteneurisé)
61+
./docker-compose.local.run.sh --with-dev-containers
62+
```
63+
64+
### Gestion des containers
65+
66+
```bash
67+
# Arrêter les services
68+
./docker-compose.local.run.sh --stop
69+
70+
# Supprimer les containers
71+
./docker-compose.local.run.sh --stop --remove
72+
73+
# Reset complet (⚠️ SUPPRIME TOUTES LES DONNÉES DOMIFA)
74+
./docker-compose.local.run.sh --stop --remove --drop-domifa-volumes
75+
```
76+
77+
## 🗄️ Base de données PostgreSQL
78+
79+
### Initialisation automatique
80+
81+
Les bases de données sont créées automatiquement au premier démarrage avec des données de test.
82+
83+
> 📖 Voir [./20.databases-dumps.md](./20.databases-dumps.md) pour plus de détails
84+
85+
### Vérification
86+
87+
```bash
88+
# Vérifier que PostgreSQL fonctionne
89+
docker ps | grep postgres
90+
docker logs domifa-postgres
91+
```
92+
93+
## 🚀 Démarrage du Backend
94+
95+
### Mode hybride avec yarn workspaces (recommandé)
96+
97+
```bash
98+
# À la racine du projet - démarre le backend via workspace
99+
yarn workspace @domifa/backend start:dev
100+
101+
# OU directement dans le dossier backend
102+
cd packages/backend
103+
yarn start:dev
104+
```
105+
106+
### Mode Docker complet
107+
108+
```bash
109+
# Entrer dans le container backend
110+
docker exec -it domifa-backend bash
111+
112+
# Dans le container
113+
yarn start:dev
114+
```
115+
116+
## 🔧 Commandes utiles
117+
118+
```bash
119+
# Voir les logs PostgreSQL
120+
docker logs domifa-postgres -f
121+
122+
# Voir les logs Backend (si en Docker)
123+
docker logs domifa-backend -f
124+
125+
# Reset uniquement la base de données
126+
docker volume rm domifa_postgres_data
127+
128+
# Migrations manuelles
129+
yarn workspace @domifa/backend db:dev:migrate-up
130+
yarn workspace @domifa/backend db:dev:create -- NomDeLaMigration
131+
```
132+
133+
## 🚨 Dépannage
134+
135+
### PostgreSQL ne démarre pas
136+
137+
```bash
138+
# Vérifier les logs
139+
docker logs domifa-postgres
140+
141+
# Vérifier l'espace disque
142+
df -h
143+
144+
# Nettoyer les volumes orphelins
145+
docker volume prune
146+
```
147+
148+
### Backend ne se connecte pas à PostgreSQL
149+
150+
```bash
151+
# Vérifier la configuration
152+
cat packages/backend/.env | grep POSTGRES
153+
154+
# Vérifier que PostgreSQL accepte les connexions
155+
telnet localhost 5432
156+
```
157+
158+
### Port 3000 déjà utilisé
159+
160+
```bash
161+
# Identifier le processus
162+
lsof -i :3000
163+
kill -9 <PID>
164+
```
165+
166+
### Modules manquants
167+
168+
```bash
169+
# Réinstaller les dépendances backend
170+
cd packages/backend
171+
yarn install
172+
```
173+
174+
## 🎯 Résultat attendu
175+
176+
À la fin de cette installation, vous devez avoir :
177+
178+
- ✅ PostgreSQL accessible sur `localhost:5432`
179+
- ✅ Backend API accessible sur `http://localhost:3000`

0 commit comments

Comments
 (0)