docs: prioritize nginx, fix sample config and use certbot snap
This commit is contained in:
+26
-26
@@ -229,7 +229,7 @@ NOTE: Les fichiers marqués « legacy » sont conservés pour référence mais n
|
||||
* `intl` — dates internationales et fuseaux horaires
|
||||
* `mbstring` — chaînes multi-octets
|
||||
* `xml` (SimpleXML) — recommandée pour Castopod (un fallback regex existe)
|
||||
- 🌐 *Serveur web* : Apache ou Nginx
|
||||
- 🌐 *Serveur web* : Nginx (recommandé) ou Apache
|
||||
- 🔒 *HTTPS* : requis pour les fonctionnalités PWA
|
||||
|
||||
.Installation de l'extension `intl`
|
||||
@@ -783,18 +783,9 @@ NOTE: L'en-tête COEP a été *volontairement retiré* (commit `62d4d99`) : `req
|
||||
- *Anti-SSRF* : validation des URLs d'instances (schéma http/https, blocage IP privées et `localhost`), liste blanche des endpoints de l'API PeerTube, cURL sans redirections
|
||||
- *Anti-XSS* : échappement systématique des sorties ; validation des entrées (UUID vidéo, requête de recherche ≤ 200 car., numéros de page, ID de catégorie 1–20)
|
||||
|
||||
==== Configuration serveur (Apache)
|
||||
==== Configuration serveur (Nginx, recommandé)
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
cp conf/.htaccess.sample .htaccess
|
||||
----
|
||||
|
||||
Protections incluses : blocage des fichiers de configuration et `.sample`, des dossiers `/includes/`, `/cache/`, `/docs/`, `/conf/` ; pas de listing de répertoires ; fichiers cachés bloqués ; HTTPS forcé ; masquage de l'extension `.php` (URLs propres `/video` au lieu de `/video.php`).
|
||||
|
||||
WARNING: Cette configuration est *essentielle* : sans elle, vos fichiers de configuration sont exposés aux visiteurs.
|
||||
|
||||
==== Configuration serveur (Nginx)
|
||||
Le fichier `conf/nginx.conf.sample` est l'équivalent Nginx complet du `.htaccess` : mêmes protections (fichiers de configuration et `.sample`, dossiers `/includes/`, `/cache/`, `/docs/`, `/conf/`, fichiers cachés, pas de listing), HTTPS forcé, masquage de l'extension `.php` (URLs propres `/video` au lieu de `/video.php`), `no-cache` pour `sw.js` et `site.webmanifest`, plus le cache des assets et gzip.
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
@@ -804,7 +795,16 @@ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
----
|
||||
|
||||
WARNING: Le bloc `location ~* \.(php|inc|conf|config|local)$ { deny all; }` de l'exemple correspond tel quel à *tous* les fichiers `.php`. Ajustez-le pour ne cibler que les chemins sensibles (par exemple `^/includes/`), sous peine de rendre l'application inaccessible.
|
||||
==== Configuration serveur (Apache, alternative)
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
cp conf/.htaccess.sample .htaccess
|
||||
----
|
||||
|
||||
Protections incluses : blocage des fichiers de configuration et `.sample`, des dossiers `/includes/`, `/cache/`, `/docs/`, `/conf/` ; pas de listing de répertoires ; fichiers cachés bloqués ; HTTPS forcé ; masquage de l'extension `.php`.
|
||||
|
||||
WARNING: Cette configuration est *essentielle* : sans elle, vos fichiers de configuration sont exposés aux visiteurs.
|
||||
|
||||
=== 📱 Progressive Web App (PWA)
|
||||
|
||||
@@ -1157,7 +1157,7 @@ NOTE: Files marked "legacy" are kept for reference but are not included by any p
|
||||
* `intl` — international dates and timezones
|
||||
* `mbstring` — multi-byte strings
|
||||
* `xml` (SimpleXML) — recommended for Castopod (a regex fallback exists)
|
||||
- 🌐 *Web server*: Apache or Nginx
|
||||
- 🌐 *Web server*: Nginx (recommended) or Apache
|
||||
- 🔒 *HTTPS*: required for PWA features
|
||||
|
||||
.Installing the `intl` extension
|
||||
@@ -1711,18 +1711,9 @@ NOTE: The COEP header was *deliberately removed* (commit `62d4d99`): `require-co
|
||||
- *Anti-SSRF*: instance URL validation (http/https scheme, blocking private IPs and `localhost`), allowlist of PeerTube API endpoints, cURL without redirects
|
||||
- *Anti-XSS*: systematic output escaping; input validation (video UUID, search query ≤ 200 chars, page numbers, category ID 1–20)
|
||||
|
||||
==== Server configuration (Apache)
|
||||
==== Server configuration (Nginx, recommended)
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
cp conf/.htaccess.sample .htaccess
|
||||
----
|
||||
|
||||
Included protections: blocking of configuration and `.sample` files, of the `/includes/`, `/cache/`, `/docs/`, `/conf/` directories; no directory listing; hidden files blocked; HTTPS enforced; `.php` extension masking (clean URLs `/video` instead of `/video.php`).
|
||||
|
||||
WARNING: This configuration is *essential*: without it, your configuration files are exposed to visitors.
|
||||
|
||||
==== Server configuration (Nginx)
|
||||
The `conf/nginx.conf.sample` file is the complete Nginx equivalent of the `.htaccess`: same protections (configuration and `.sample` files, `/includes/`, `/cache/`, `/docs/`, `/conf/` directories, hidden files, no directory listing), HTTPS enforced, `.php` extension masking (clean URLs `/video` instead of `/video.php`), `no-cache` for `sw.js` and `site.webmanifest`, plus asset caching and gzip.
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
@@ -1732,7 +1723,16 @@ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
----
|
||||
|
||||
WARNING: The sample's `location ~* \.(php|inc|conf|config|local)$ { deny all; }` block as written matches *all* `.php` files. Adjust it to target only sensitive paths (e.g. `^/includes/`), or the whole application will become unreachable.
|
||||
==== Server configuration (Apache, alternative)
|
||||
|
||||
[source,bash]
|
||||
----
|
||||
cp conf/.htaccess.sample .htaccess
|
||||
----
|
||||
|
||||
Included protections: blocking of configuration and `.sample` files, of the `/includes/`, `/cache/`, `/docs/`, `/conf/` directories; no directory listing; hidden files blocked; HTTPS enforced; `.php` extension masking.
|
||||
|
||||
WARNING: This configuration is *essential*: without it, your configuration files are exposed to visitors.
|
||||
|
||||
=== 📱 Progressive Web App (PWA)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user