diff --git a/admin/k8s/ghostfolio.md b/admin/k8s/ghostfolio.md index 43a2c27..8e8cf35 100644 --- a/admin/k8s/ghostfolio.md +++ b/admin/k8s/ghostfolio.md @@ -68,13 +68,16 @@ ansible-playbook -i inventory.yml playbooks/storage-01.yml --tags postgresql ```bash kubectl create secret generic ghostfolio-secret -n ai \ - --from-literal=database-url="postgresql://ghostfolio:PG_PASSWORD@192.168.10.1:5432/ghostfolio?connect_timeout=300&sslmode=prefer" \ + --from-literal=database-url="postgresql://ghostfolio:PG_PASSWORD@192.168.10.1:5432/ghostfolio?connect_timeout=300&sslmode=disable" \ --from-literal=redis-password="$(openssl rand -hex 16)" \ --from-literal=access-token-salt="$(openssl rand -hex 32)" \ --from-literal=jwt-secret-key="$(openssl rand -hex 32)" ``` - `PG_PASSWORD` = la valeur mise dans `vault_pg_ghostfolio_password` à l'étape 1. +- `sslmode=disable` est **obligatoire** : PostgreSQL sur s01 n'a pas SSL activé, et l'adapter + `pg` de Prisma 7.x (étape de seed Ghostfolio) échoue en `TlsConnectionError` avec `prefer`. + Le LAN cluster est interne/de confiance, donc pas de TLS requis ici. - `redis-password` peut être n'importe quelle valeur aléatoire (Redis est interne au cluster). - `access-token-salt` / `jwt-secret-key` doivent rester stables : les régénérer invaliderait les sessions et les comptes existants. @@ -117,5 +120,16 @@ kubectl get pods -n ai -l app=ghostfolio-redis ≠ `vault_pg_ghostfolio_password`, ou rôle `postgresql` pas réappliqué). Vérifier nftables (port 5432 ouvert pour `192.168.10.0/24`, déjà le cas) et `pg_hba.conf` (host scram-sha-256 pour le LAN cluster, déjà le cas). +- **`Error: permission denied for schema public`** (migrations Prisma) : la base `ghostfolio` + est possédée par `postgres` (le rôle `postgresql_db` ne fixe pas `owner:`), donc l'utilisateur + `ghostfolio` n'a pas de droit implicite sur le schéma `public`. Les bases historiques + (n8n/openwebui/litellm) sont possédées par leur user et n'ont jamais eu ce souci. Correctif + (idempotent, identique à la task Ansible « Grant schema public ») : + ```bash + ssh storage-01 "sudo -u postgres psql -d ghostfolio -c 'GRANT ALL ON SCHEMA public TO ghostfolio;'" + ``` + Vérifier : `\dn+ public` doit montrer `ghostfolio=UC`. +- **`Error opening a TLS connection: The server does not support SSL`** (seed Prisma 7.x) : + PostgreSQL sur s01 n'a pas SSL → `database-url` doit finir par `sslmode=disable`, pas `prefer`. - **Quotes/prix vides** : Yahoo Finance peut throttler ; les prix se mettent à jour via le scheduler interne. Optionnellement ajouter une clé d'un autre data provider plus tard.