diff --git a/README.md b/README.md
new file mode 100644
index 0000000..31d1ab9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,146 @@
+# Folio
+
+Moteur de blog PHP minimaliste — articles Markdown, authentification SSO (OIDC) ou lien magique, commentaires, recherche, flux RSS.
+
+---
+
+## Prérequis
+
+- PHP ≥ 8.2 avec les extensions `pdo`, `pdo_pgsql`, `mbstring`, `openssl`
+- PostgreSQL ≥ 14
+- Composer
+- Apache avec `mod_rewrite` (ou Nginx — voir ci-dessous)
+
+## Installation
+
+### 1. Cloner et installer les dépendances
+
+```bash
+git clone https://git.abonnel.fr/cedricAbonnel/folio mon-site
+cd mon-site
+composer install --no-dev
+```
+
+### 2. Configurer l'environnement
+
+```bash
+cp .env.example .env
+```
+
+Remplir les valeurs dans `.env` :
+
+| Variable | Description |
+|---|---|
+| `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 |
+| `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 |
+
+### 3. Créer la base de données
+
+```bash
+createdb monsite
+```
+
+### 4. Initialiser le schéma et jouer les migrations
+
+```bash
+php database/migrate.php
+```
+
+Ce script crée toutes les tables et applique les migrations dans l'ordre. À relancer après chaque mise à jour.
+
+### 5. Configurer le vhost Apache
+
+```apache
+
+ ServerName example.com
+ DocumentRoot /var/www/mon-site/public
+
+
+ AllowOverride All
+ Require all granted
+
+
+```
+
+Le fichier `public/.htaccess` gère le routage via `mod_rewrite`. `AllowOverride All` est requis.
+
+
+Nginx
+
+```nginx
+server {
+ listen 443 ssl;
+ server_name example.com;
+ root /var/www/mon-site/public;
+ index index.php;
+
+ location / {
+ try_files $uri $uri/ /index.php?$query_string;
+ }
+
+ location ~ \.php$ {
+ fastcgi_pass unix:/run/php/php8.2-fpm.sock;
+ fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
+ include fastcgi_params;
+ }
+}
+```
+
+
+
+### 6. Permissions fichiers
+
+```bash
+chown -R www-data:www-data data/
+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`).
+
+### 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` :
+
+```json
+{
+ "site_title": "Mon site",
+ "site_claim": "Un blog propulsé par Folio",
+ "site_lang": "fr-FR",
+ "site_license_label": "CC BY 4.0",
+ "site_license_url": "https://creativecommons.org/licenses/by/4.0/",
+ "posts_per_page": 12
+}
+```
+
+---
+
+## Mise à jour
+
+```bash
+git pull
+composer install --no-dev
+php database/migrate.php
+```
+
+## Structure du projet
+
+```
+├── config/ Configuration (charge .env, définit APP_URL)
+├── data/ Articles, cache, settings (non versionné)
+├── database/ Schéma SQL et runner de migrations
+├── docs/ Documentation technique
+├── public/ Racine web (index.php, assets, .htaccess)
+├── src/ Code applicatif (PSR-4, App\)
+└── templates/ Vues PHP
+```
+
+## Licence
+
+[MIT](LICENSE)