diff --git a/README.md b/README.md index 31d1ab9..4154806 100644 --- a/README.md +++ b/README.md @@ -34,11 +34,14 @@ Remplir les valeurs dans `.env` : | `APP_URL` | URL publique du site (`https://example.com`) | | `ADMIN_EMAIL` | Email de l'administrateur principal | | `SESSION_NAME` | Nom du cookie de session — doit être unique par instance | +| `DATA_PATH` | Chemin absolu vers le répertoire des articles (ex. `/srv/data/mon-site`). Par défaut : `/data` | | `OIDC_ISSUER` / `OIDC_CLIENT_ID` / `OIDC_CLIENT_SECRET` | SSO OpenID Connect | | `DB_DSN` / `DB_USER` / `DB_PASS` | Connexion PostgreSQL | | `SMTP_*` | Serveur email sortant (commentaires, contact, lien magique) | | `CONTACT_EMAIL` | Destinataire du formulaire de contact | +> En production, placer `DATA_PATH` **hors du document root** (ex. `/srv/data/mon-site`) pour que les articles ne soient pas accessibles directement via le serveur web. + ### 3. Créer la base de données ```bash @@ -96,17 +99,24 @@ server { ### 6. Permissions fichiers ```bash -chown -R www-data:www-data data/ +# Répertoire des articles +mkdir -p /srv/data/mon-site +chown -R www-data:www-data /srv/data/mon-site + +# .env lisible par www-data uniquement +chown user:www-data .env chmod 640 .env ``` -PHP-FPM tourne en `www-data`. Le `.env` doit être lisible par `www-data` mais pas par les autres (`640`, owner `user:www-data`). +PHP-FPM tourne en `www-data`. Le `.env` doit être lisible par `www-data` mais pas par les autres. + +> Le script `scripts/setup.sh` automatise la vérification des prérequis, la création des répertoires et les droits. ### 7. Paramètres du site Au premier lancement, se connecter en tant qu'admin et aller dans **Administration → Paramètres du site** pour définir le titre, le claim, la langue et la licence. -Ou créer directement `data/site_settings.json` : +Ou créer directement `$DATA_PATH/site_settings.json` : ```json { @@ -132,15 +142,17 @@ php database/migrate.php ## Structure du projet ``` -├── config/ Configuration (charge .env, définit APP_URL) -├── data/ Articles, cache, settings (non versionné) +├── config/ Configuration (charge .env, définit APP_URL et DATA_PATH) ├── database/ Schéma SQL et runner de migrations ├── docs/ Documentation technique ├── public/ Racine web (index.php, assets, .htaccess) -├── src/ Code applicatif (PSR-4, App\) +├── scripts/ Scripts utilitaires (setup.sh, migrations de contenu) +├── src/ Code applicatif └── templates/ Vues PHP ``` +Les articles sont stockés dans `DATA_PATH` (hors dépôt git). + ## Licence [MIT](LICENSE)