Fix url
Deploy stack su Proxmox / deploy (push) Successful in 11s

This commit is contained in:
Lorenzo Sanesi
2026-08-06 21:03:56 +02:00
parent fb5423f625
commit 66bb936dce
8 changed files with 138 additions and 60 deletions
+11 -2
View File
@@ -1,8 +1,16 @@
# keycloak/realm-export.json
# keycloak/realm-export.template.json
Realm `scouthub` con feature Organizations abilitata, importato automaticamente
all'avvio di Keycloak (`--import-realm` nel `docker-compose.yml` alla radice).
Il file è un **template**: i placeholder `__HOME_FE_URL__`/`__ATTIVITA_FE_URL__`/
`__MAGAZZINO_FE_URL__`/`__EVENTI_FE_URL__` (redirect URI, web origins, post-logout
redirect del client `scouthub-frontend`) vengono sostituiti a runtime dal servizio
one-shot `keycloak-realm-render` con i valori delle variabili `*_FE_PUBLIC_URL` in
`.env` (localhost in locale, dominio dietro Caddy in produzione), e il risultato
(`realm-export.json`) viene scritto in un volume Docker montato da `keycloak` come
cartella di import — non esiste più un `realm-export.json` statico committato.
Basato su `keycloak/realm.json` (bozza di riferimento), con l'aggiunta del
ruolo `admin` richiesto da `POST /gruppi` e `GET /gruppi` in
`scouthub-home-be`: creazione/elenco diretti restano riservati ad `admin`,
@@ -23,7 +31,8 @@ Contiene già:
il suo `clientId`/`secret` devono corrispondere a
`KEYCLOAK_ORG_SERVICE_CLIENT_ID`/`_SECRET` in `scouthub-home-be/.env.example`)
- il client pubblico `scouthub-frontend` (login utente, condiviso da tutti i
frontend Angular del progetto, redirect su `http://localhost:7000-7003/*`)
frontend Angular del progetto, redirect sugli URL pubblici configurati in
`.env`/`*_FE_PUBLIC_URL`, `http://localhost:7000-7003/*` di default in locale)
Passi manuali ancora da fare dopo l'import (non automatizzabili in un realm
export senza conoscere gli id generati a runtime):
@@ -76,21 +76,21 @@
"standardFlowEnabled": true,
"directAccessGrantsEnabled": false,
"redirectUris": [
"http://localhost:7000/*",
"http://localhost:7001/*",
"http://localhost:7002/*",
"http://localhost:7002/silent-check-sso.html",
"http://localhost:7003/*",
"http://localhost:7003/silent-check-sso.html"
"__HOME_FE_URL__/*",
"__ATTIVITA_FE_URL__/*",
"__MAGAZZINO_FE_URL__/*",
"__MAGAZZINO_FE_URL__/silent-check-sso.html",
"__EVENTI_FE_URL__/*",
"__EVENTI_FE_URL__/silent-check-sso.html"
],
"webOrigins": [
"http://localhost:7000",
"http://localhost:7001",
"http://localhost:7002",
"http://localhost:7003"
"__HOME_FE_URL__",
"__ATTIVITA_FE_URL__",
"__MAGAZZINO_FE_URL__",
"__EVENTI_FE_URL__"
],
"attributes": {
"post.logout.redirect.uris": "http://localhost:7000/*##http://localhost:7001/*##http://localhost:7002/*##http://localhost:7003/*"
"post.logout.redirect.uris": "__HOME_FE_URL__/*##__ATTIVITA_FE_URL__/*##__MAGAZZINO_FE_URL__/*##__EVENTI_FE_URL__/*"
},
"defaultClientScopes": [
"openid",
+26
View File
@@ -0,0 +1,26 @@
#!/bin/sh
# Sostituisce nel template i placeholder __XXX_FE_URL__ con gli URL pubblici reali dei
# frontend (localhost in locale, dominio dietro Caddy in produzione — vedi CLAUDE.md/.env.example),
# scrivendo il risultato nella cartella di import di Keycloak. Necessario perche' realm-export.json
# è statico e --import-realm non supporta variabili d'ambiente nei suoi campi.
set -eu
: "${HOME_FE_URL:?variabile HOME_FE_URL mancante}"
: "${ATTIVITA_FE_URL:?variabile ATTIVITA_FE_URL mancante}"
: "${MAGAZZINO_FE_URL:?variabile MAGAZZINO_FE_URL mancante}"
: "${EVENTI_FE_URL:?variabile EVENTI_FE_URL mancante}"
mkdir -p /rendered
sed \
-e "s#__HOME_FE_URL__#$HOME_FE_URL#g" \
-e "s#__ATTIVITA_FE_URL__#$ATTIVITA_FE_URL#g" \
-e "s#__MAGAZZINO_FE_URL__#$MAGAZZINO_FE_URL#g" \
-e "s#__EVENTI_FE_URL__#$EVENTI_FE_URL#g" \
/template/realm-export.template.json > /rendered/realm-export.json
echo "[keycloak-realm-render] realm-export.json generato con:"
echo " HOME_FE_URL=$HOME_FE_URL"
echo " ATTIVITA_FE_URL=$ATTIVITA_FE_URL"
echo " MAGAZZINO_FE_URL=$MAGAZZINO_FE_URL"
echo " EVENTI_FE_URL=$EVENTI_FE_URL"