Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d3927b0cc4 | |||
| def82235ca | |||
| 65db5fd8e9 |
26
CLAUDE.md
Normal file
26
CLAUDE.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# infra-postgres
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
- PostgreSQL 16 Alpine (conteneur Docker)
|
||||||
|
- Docker Compose
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
- `docker-compose.yml` — service PostgreSQL, port 5432, volume data/ en bind mount
|
||||||
|
- `deploy.sh` — pull + up + readiness check
|
||||||
|
- `backup.sh` — pg_dumpall + rotation (garde les 7 derniers)
|
||||||
|
- `doc/deployment.md` — guide complet de deploiement
|
||||||
|
|
||||||
|
## Conventions
|
||||||
|
- Un seul user `malio` pour toutes les bases de donnees
|
||||||
|
- Les applications se connectent via `host.docker.internal:5432`
|
||||||
|
- Les secrets (`.env`) ne sont jamais commites (`.gitignore`)
|
||||||
|
- Les backups sont dans `backups/` (non commites)
|
||||||
|
- Les donnees PostgreSQL sont dans `data/` (non commites)
|
||||||
|
|
||||||
|
## CI/CD
|
||||||
|
- Auto-tag sur push `main` (`.gitea/workflows/auto-tag.yml`)
|
||||||
|
- Token : `REGISTRY_TOKEN` (secret organisation MALIO-DEV)
|
||||||
|
|
||||||
|
## Language
|
||||||
|
- Documentation en francais
|
||||||
|
- Code/scripts en anglais
|
||||||
@@ -7,8 +7,8 @@ Un seul conteneur PostgreSQL gere toutes les bases de donnees (prod + recette).
|
|||||||
## Quick start
|
## Quick start
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cp .env.example .env
|
echo "POSTGRES_USER=admin" > .env
|
||||||
# Editer .env et init/01-create-databases.sql avec les vrais mots de passe
|
echo "POSTGRES_PASSWORD=$(openssl rand -hex 32)" >> .env
|
||||||
chmod +x deploy.sh backup.sh
|
chmod +x deploy.sh backup.sh
|
||||||
./deploy.sh
|
./deploy.sh
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -51,14 +51,12 @@ Se connecter au conteneur :
|
|||||||
docker compose exec -T postgres psql -U admin
|
docker compose exec -T postgres psql -U admin
|
||||||
```
|
```
|
||||||
|
|
||||||
Creer les bases et users :
|
Creer un user unique pour toutes les applications et les bases :
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE USER sirh_prod WITH PASSWORD 'motdepasse';
|
CREATE USER malio WITH PASSWORD 'motdepasse';
|
||||||
CREATE DATABASE sirh_prod OWNER sirh_prod;
|
CREATE DATABASE sirh_prod OWNER malio;
|
||||||
|
CREATE DATABASE sirh_recette OWNER malio;
|
||||||
CREATE USER sirh_recette WITH PASSWORD 'motdepasse';
|
|
||||||
CREATE DATABASE sirh_recette OWNER sirh_recette;
|
|
||||||
\q
|
\q
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -74,10 +72,10 @@ Les applications Docker sur la meme machine se connectent via `host.docker.inter
|
|||||||
|
|
||||||
```env
|
```env
|
||||||
# SIRH prod
|
# SIRH prod
|
||||||
DATABASE_URL="postgresql://sirh_prod:password@host.docker.internal:5432/sirh_prod?serverVersion=16&charset=utf8"
|
DATABASE_URL="postgresql://malio:password@host.docker.internal:5432/sirh_prod?serverVersion=16&charset=utf8"
|
||||||
|
|
||||||
# SIRH recette
|
# SIRH recette
|
||||||
DATABASE_URL="postgresql://sirh_recette:password@host.docker.internal:5432/sirh_recette?serverVersion=16&charset=utf8"
|
DATABASE_URL="postgresql://malio:password@host.docker.internal:5432/sirh_recette?serverVersion=16&charset=utf8"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Ajouter une nouvelle base
|
## Ajouter une nouvelle base
|
||||||
@@ -87,8 +85,7 @@ docker compose exec -T postgres psql -U admin
|
|||||||
```
|
```
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE USER nouvelle_app WITH PASSWORD 'motdepasse';
|
CREATE DATABASE nouvelle_app OWNER malio;
|
||||||
CREATE DATABASE nouvelle_app OWNER nouvelle_app;
|
|
||||||
\q
|
\q
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user