README: document the appsettings-org.json deployment cycle
The Yavsc.Org service reads appsettings-org.json at runtime, but the contrib/Makefile renames that file to appsettings-org-dist.json right before deploying to $(BASEAPPDIR), so first-time operators have to copy the dist variant back to appsettings-org.json on the server and fill in their actual values. None of that was documented; this commit adds a Fichiers de configuration d'Yavsc.Org section under Paramétrage. The section also notes that Site.ExternalUrl is now consumed by the IdentityServer EF seed (added in the previous PostIt PKCE commit) to authorize a RedirectUri for the 'postit' OIDC client, so PostIt can be embedded in a Yavsc.Org web page without redirect_uri mismatch. Side note: the appsettings-org.Development.json template points at 'https://localhoist:5001' which looks like a typo for 'localhost'. Flagged in the README so it doesn't get copy-pasted into a new environment as-is.
This commit is contained in:
parent
28b63ce70d
commit
2768552a2d
1 changed files with 58 additions and 0 deletions
58
README.md
58
README.md
|
|
@ -89,6 +89,64 @@ Dans le cas des arrhes, à tout moment, jusqu'avant la date et l'heure de la pre
|
||||||
|
|
||||||
## Paramétrage
|
## Paramétrage
|
||||||
|
|
||||||
|
### Fichiers de configuration d'Yavsc.Org
|
||||||
|
|
||||||
|
Le paramétrage runtime d'Yavsc.Org se fait via `appsettings-org.json`,
|
||||||
|
lu par ASP.NET Core selon la convention standard (`appsettings.<ASPNETCORE_ENVIRONMENT>.json`
|
||||||
|
est fusionné par-dessus). Trois fichiers coexistent dans
|
||||||
|
`src/Yavsc.Org/`, avec trois rôles distincts :
|
||||||
|
|
||||||
|
| Fichier | Rôle | Commité ? |
|
||||||
|
|----------------------------------------------|--------------------------------------------------------------------------------------------------|-----------|
|
||||||
|
| `appsettings-org.json` | **Modèle**. Valeurs anonymisées (`[Your domaine name]`, `[YOURSMTPHOST]`, …). Sert de référence.| Oui |
|
||||||
|
| `appsettings-org.Development.json` | Surcharge pour `ASPNETCORE_ENVIRONMENT=Development`. Concrètement, `Site.Authority` et `Site.ExternalUrl` pointent sur `https://localhoist:5001` (à corriger en `localhost` si besoin), `Site.Title`/`Slogan` sont adaptés, et la `ConnectionStrings.YavscConnection` est fournie. | Oui |
|
||||||
|
| `appsettings-org-dist.json` | Généré par la cible `copy-binaries` du `contrib/Makefile` (alias `make reinstall`) à partir d'`appsettings-org.json` lors du déploiement, puis copié dans `$(BASEAPPDIR)`. C'est un clone du modèle, juste renommé pour signaler « à éditer ». | Non |
|
||||||
|
|
||||||
|
**Première installation sur un serveur :**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install_service # construit, déploie, active systemd
|
||||||
|
cd $BASEAPPDIR # voir contrib/.env
|
||||||
|
ls appsettings-org*.json # -> appsettings-org-dist.json (le modèle, jamais éditer celui-là)
|
||||||
|
cp appsettings-org-dist.json appsettings-org.json
|
||||||
|
$EDITOR appsettings-org.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Le `Makefile` renomme `appsettings-org.json` en `appsettings-org-dist.json`
|
||||||
|
juste avant le `cp -a` vers `$(BASEAPPDIR)`, et **supprime** la version
|
||||||
|
`appsettings-org.json` du publish dir. Conséquence : un `make reinstall`
|
||||||
|
ultérieur n'écrasera jamais ton `appsettings-org.json` édité — il
|
||||||
|
recopiera un `appsettings-org-dist.json` neuf par-dessus, sans
|
||||||
|
supprimer ton édition. Si tu veux repartir d'un modèle vierge, supprime
|
||||||
|
d'abord `appsettings-org.json` du serveur ; sinon, laisse-le en place.
|
||||||
|
|
||||||
|
**Valeurs minimales à renseigner pour un serveur de production :**
|
||||||
|
|
||||||
|
- `Site.Authority` — issuer OIDC visible de l'extérieur (URL exacte sous
|
||||||
|
laquelle `/.well-known/openid-configuration` est servi, par exemple
|
||||||
|
`https://yavsc.pschneider.fr`). C'est la valeur que PostIt et toutes
|
||||||
|
les autres applications clientes passent dans `Authority`.
|
||||||
|
- `Site.ExternalUrl` — URL canonique du serveur, utilisée pour générer
|
||||||
|
les liens absolus dans les e-mails, construire les RedirectUris des
|
||||||
|
clients OIDC tiers, etc. **Depuis la migration PKCE de PostIt, le
|
||||||
|
seed EF Core d'IdentityServer utilise `Site.ExternalUrl` pour
|
||||||
|
autoriser une RedirectUri du client `postit`** : cela permet à PostIt
|
||||||
|
d'être lancé depuis une page web de Yavsc.Org (iframe launcher)
|
||||||
|
sans rejet `redirect_uri mismatch` de l'OP. Les RedirectUris
|
||||||
|
« standalone » du client (`http://127.0.0.1:7890/` et
|
||||||
|
`android://postit-signin`) restent codées en dur dans
|
||||||
|
`EnsureDefaultConfiguration` car elles sont fixées par la plateforme,
|
||||||
|
pas par l'URL de déploiement.
|
||||||
|
- `ConnectionStrings.YavscConnection` — chaîne de connexion PostgreSQL
|
||||||
|
(utilisateur, mot de passe, hôte, base). Privilégier
|
||||||
|
`dotnet user-secrets` ou des variables d'environnement `ASPNETCORE_*`
|
||||||
|
plutôt qu'un mot de passe en clair dans le fichier.
|
||||||
|
- `Smtp.*` — hôte, port, identifiants SMTP pour l'envoi d'e-mails
|
||||||
|
transactionnels.
|
||||||
|
- `Authentication.PayPal.*` et `Authentication.Google.*` — clés d'API
|
||||||
|
pour les fournisseurs d'identité externes utilisés dans les flows
|
||||||
|
OAuth/OIDC.
|
||||||
|
|
||||||
### Administration
|
### Administration
|
||||||
|
|
||||||
Une fois le service disponible, s'enregistrer, et
|
Une fois le service disponible, s'enregistrer, et
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue