Files
mabibli_ynh/conf/nginx.conf
T
Mathieu LimonierandClaude Opus 5 1373532345 Paquet YunoHost de MaBibli 1.0.0
Installe l'archive self-contained publiée en release du dépôt du code,
amd64 ou arm64 selon la machine.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 22:36:27 +02:00

50 lines
2.4 KiB
Nginx Configuration File

location / {
# Le service n'écoute que sur la boucle locale (cf. conf/systemd.service).
# nginx est le seul chemin d'accès, et donc le seul endroit où l'identité
# est établie.
proxy_pass http://127.0.0.1:__PORT__;
# ---------------------------------------------------------------------------
# Intégration SSOwat — c'est cette ligne qui rend `YNH_USER` fiable
# ---------------------------------------------------------------------------
# `proxy_params_with_auth` (fourni par YunoHost) transmet à l'application les
# en-têtes d'identité, là où `proxy_params_no_auth` les vide explicitement.
#
# Deux jeux d'en-têtes coexistent, et ce n'est pas une redondance :
# - SSOwat (Lua, `access.lua`) injecte `YNH_USER`, `YNH_USER_EMAIL` et
# `YNH_USER_FULLNAME` dans la requête ; c'est ce que MaBibli lit.
# - `proxy_params_with_auth` ajoute par-dessus `Ynh-User`, `Ynh-User-Email`,
# `Ynh-User-Fullname`, `REMOTE_USER` et `X-Forwarded-User`, recopiés depuis
# les précédents pour les applications qui attendent la forme à tirets.
#
# Anti-usurpation : avant toute injection, SSOwat efface *tous* les en-têtes
# entrants dont le nom commence par `ynh_` ou `ynh-`, sans distinction de casse.
# Un client ne peut donc pas fournir son propre `YNH_USER` — à condition que la
# requête passe bien par nginx, d'où la contrainte d'écoute sur 127.0.0.1.
include proxy_params_with_auth;
# Le client Blazor télécharge des assemblies .wasm de plusieurs mégaoctets, et le
# premier chargement en enchaîne beaucoup. Des tampons plus larges évitent que
# nginx ne les fasse transiter par des fichiers temporaires.
proxy_buffers 16 32k;
proxy_buffer_size 32k;
# Le lookup ISBN interroge la BnF puis OpenLibrary en cascade, avec un délai de
# 10 s par source côté application : laisser à nginx une marge au-dessus.
proxy_read_timeout 60s;
# Aucun envoi de fichier : les ebooks sont des fiches, pas des fichiers
# (CLAUDE.md, « Ebooks : fiches uniquement »). Une limite basse suffit.
client_max_body_size 1m;
# `application/wasm` n'est pas dans la liste gzip par défaut, et les assemblies
# Blazor se compressent très bien.
gzip on;
gzip_min_length 1024;
gzip_proxied any;
gzip_types application/wasm application/octet-stream application/json
application/javascript text/css text/plain
application/manifest+json;
}