Working state but no uploads

This commit is contained in:
julien
2026-03-16 11:48:26 +01:00
parent e24ee5d622
commit 8e59daa4cd
21 changed files with 353 additions and 119 deletions

View File

@@ -1,6 +1,6 @@
# Slim Blog
![PHP](https://img.shields.io/badge/PHP-8.1%2B-777BB4?logo=php&logoColor=white)
![PHP](https://img.shields.io/badge/PHP-8.4.1%2B-777BB4?logo=php&logoColor=white)
![Slim](https://img.shields.io/badge/Slim-4-74a045)
![PHPStan](https://img.shields.io/badge/PHPStan-niveau%208-blue)
![Tests](https://img.shields.io/badge/tests-355%20passing-brightgreen)
@@ -38,7 +38,7 @@ projets (boutique, portfolio…).
## Développement
**Prérequis :** PHP 8.1+ avec `pdo_sqlite`, `intl`, `fileinfo`, `gd` (WebP), `xml` (dom), Composer, Node.js 18+
**Prérequis :** PHP 8.4.1+ avec `pdo_sqlite`, `intl`, `fileinfo`, `gd` (WebP), `xml` (dom), Composer, Node.js 18+
```bash
git clone https://git.netig.net/netig/slim-blog
@@ -46,6 +46,7 @@ cd slim-blog
composer install
npm install && npm run build
cp .env.example .env
php bin/provision.php
php -S localhost:8080 -t public
```
@@ -76,6 +77,7 @@ cd slim-blog
cp .env.example .env
# Définir APP_ENV=production, APP_URL, ADMIN_PASSWORD et la configuration SMTP
docker compose up -d --build
docker compose exec app php bin/provision.php
```
> Le démarrage en production avec `ADMIN_PASSWORD=changeme123` est bloqué intentionnellement.
@@ -126,6 +128,8 @@ process principal et n'apparaissent pas dans les logs Docker.
Nginx écoute sur `127.0.0.1:8888` (câblé dans `docker-compose.yml`).
Configurer aussi `TRUSTED_PROXIES` si vous déployez l'application derrière un autre proxy que le Nginx Docker fourni. En stack Docker par défaut, `docker-compose.yml` force `TRUSTED_PROXIES=*` côté conteneur PHP-FPM pour faire confiance au Nginx interne.
Exemple de configuration Caddy :
```caddy
@@ -143,6 +147,7 @@ https://blog.exemple.com {
| `APP_URL` | URL de base (liens emails, flux RSS) — inclure le port en développement | `http://localhost:8080` |
| `APP_NAME` | Nom du blog (flux RSS, emails) | `Slim Blog` |
| `TIMEZONE` | Fuseau horaire PHP | `Europe/Paris` |
| `TRUSTED_PROXIES` | Proxies autorisés à fournir `X-Forwarded-For` / `X-Forwarded-Proto` | `127.0.0.1,::1` ou `*` |
| `ADMIN_USERNAME` | Nom d'utilisateur du compte admin | `admin` |
| `ADMIN_EMAIL` | Email du compte admin | `admin@example.com` |
| `ADMIN_PASSWORD` | Mot de passe admin (obligatoire en production) | *(à changer)* |
@@ -172,6 +177,9 @@ Le contenu du blog (articles publiés) est soumis à [CC BY-SA 4.0](https://crea
## Provisioning
Le provisionnement (migrations + seed admin) peut etre execute explicitement via `php bin/provision.php`.
En developpement, il reste activable automatiquement via `APP_AUTO_PROVISION=true`.
En production, il est recommande de le lancer separement du runtime HTTP.
Le provisionnement (migrations + seed admin) s'execute explicitement via `php bin/provision.php`.
- Developpement local : executer `php bin/provision.php` apres `cp .env.example .env`
- Docker / production : executer `docker compose exec app php bin/provision.php` apres le demarrage du conteneur
Le runtime HTTP ne provisionne plus automatiquement la base. Si le schema n'est pas present, l'application echoue avec un message explicite demandant d'executer la commande de provisionnement.