feat: support d'un chemin de base (BASE_URL) pour reverse proxy
FanKarr supposait jusqu'ici être servi à la racine du domaine. La variable
d'environnement BASE_URL (ex. /fankarr) permet de l'héberger dans un
sous-dossier, sans reconstruire l'image : le préfixe est appliqué au démarrage.
- server/config.ts : BASE_URL normalisée et validée ('' = racine)
- server/index.ts : toutes les routes montées sous BASE_URL via un Router,
index.html servi avec <base href> et window.__BASE_URL__, redirection de /
- server/auth.ts : cookie de session limité au chemin de base
- src/base-url.ts : préfixage des appels fetch('/api/…') en un point unique,
helpers withBase / absoluteUrl
- src/router : createWebHistory(BASE_URL)
- vite.config.ts : base './' (assets relatifs, résolus par <base href>)
Comportement inchangé lorsque BASE_URL n'est pas défini.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e8dc76e94a
commit
be97aa0dea
12 files changed
+163
-35
No files matched your search
@@ -198,11 +198,41 @@ FanKarr est alors accessible sur `http://localhost:9898`. La configuration, les
|
||||
| `JWT_SECRET` | généré | Secret des sessions, généré dans `secret.key` (dossier de configuration) si absent |
|
||||
| `AUTH_TOKEN_EXPIRY` | `30d` | Durée de validité de la session (ex. `7d`, `1y` ; `never` ou `0` : pas d'expiration) |
|
||||
| `GITHUB_BASE` | dépôt scraper | Adresse de base des données du scraper, si vous hébergez votre propre copie |
|
||||
| `BASE_URL` | non défini | Sous-dossier derrière un reverse proxy (ex. `/fankarr`) |
|
||||
|
||||
Par défaut, `GITHUB_BASE` vaut `https://raw.githubusercontent.com/masutayunikon/fankarr-scraper/main`.
|
||||
|
||||
---
|
||||
|
||||
### Reverse proxy en sous-dossier
|
||||
|
||||
Par défaut, FanKarr est servi à la racine du domaine. Pour l'héberger sous un
|
||||
sous-dossier (`https://exemple.tld/fankarr`), renseignez `BASE_URL` :
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
- BASE_URL=/fankarr
|
||||
```
|
||||
|
||||
L'application, l'API et l'API publique v1 sont alors servies sous ce préfixe
|
||||
(`/fankarr/api/v1/...`), et une requête sur `/` y est redirigée. Aucune
|
||||
reconstruction de l'image n'est nécessaire : le préfixe est appliqué au
|
||||
démarrage.
|
||||
|
||||
Côté proxy, transmettez l'URL **sans réécrire le chemin** :
|
||||
|
||||
```nginx
|
||||
location /fankarr/ {
|
||||
proxy_pass http://127.0.0.1:9898; # pas de / final : le chemin est conservé
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
```
|
||||
|
||||
Laissez `BASE_URL` vide pour un sous-domaine dédié (`https://fankarr.exemple.tld`).
|
||||
|
||||
---
|
||||
|
||||
### Premier lancement
|
||||
|
||||
1. Ouvrez `http://localhost:9898` (ou l'adresse de votre serveur).
|
||||
|
||||
Reference in new issue
Block a user