# postgresql

PostgreSQL 16 sur storage-01 — persistance de Hermes, LiteLLM, n8n, Open WebUI (et Grafana).

## Ce que fait le rôle

- Repo PGDG + désactivation du module AppStream
- PGDATA déplacé vers `/srv/data/postgres` (override systemd)
- Init du cluster si absent, `pg_hba.conf`, listen_addresses, port, shared_buffers
- Crée bases + users + privilèges (dont `GRANT ON SCHEMA public` requis en PG 15+)

## Variables principales

| Variable | Défaut |
|---|---|
| `postgresql_version` | 16 |
| `postgresql_data_dir` | `/srv/data/postgres` |
| `postgresql_listen_addresses` | `localhost, 192.168.10.1` (pods k8s via LAN) |
| `postgresql_databases` / `postgresql_users` | hermes, litellm, openwebui, n8n |

Mots de passe dans le vault : `vault_pg_hermes_password`, `vault_pg_litellm_password`, `vault_pg_openwebui_password`, `vault_pg_n8n_password`.

## Caveat

- Les tasks de Grant utilisent `no_log` — en cas d'échec, relancer avec `-vvv` après avoir temporairement retiré `no_log`
- Les pods k8s (n8n, openwebui, grafana) se connectent via `192.168.10.1:5432` — port ouvert dans nftables (rôle gateway)
