mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 11:09:18 +02:00
feat: extract MediaController, wire into Dispatcher, delete media.php
This commit is contained in:
58
README.md
58
README.md
@@ -1,4 +1,6 @@
|
||||
# posterg
|
||||
# XAMXAM
|
||||
|
||||
(Anciennement *Posterg*)
|
||||
|
||||
Répertoire des travaux de fin d'études de l'[ERG](https://erg.be) (École de Recherche Graphique).
|
||||
|
||||
@@ -8,39 +10,6 @@ Répertoire des travaux de fin d'études de l'[ERG](https://erg.be) (École de R
|
||||
- SQLite3 (`php8.4-sqlite3`)
|
||||
- nginx (production)
|
||||
|
||||
## Project structure
|
||||
|
||||
```
|
||||
posterg/
|
||||
├── public/ # DocumentRoot — web-accessible only
|
||||
│ ├── admin/ # Admin panel (session-authenticated)
|
||||
│ ├── assets/ # CSS, fonts, icons
|
||||
│ ├── media.php # Controlled file serving (covers, PDFs)
|
||||
│ └── *.php # Public pages (index, search, tfe, apropos)
|
||||
├── src/ # PHP classes (not web-accessible)
|
||||
│ ├── AdminAuth.php
|
||||
│ ├── Database.php
|
||||
│ ├── RateLimit.php
|
||||
│ └── config.php
|
||||
├── templates/ # Shared PHP template partials
|
||||
├── config/ # Bootstrap and credentials (not web-accessible)
|
||||
├── storage/ # Database and uploaded files (not web-accessible)
|
||||
│ ├── schema.sql
|
||||
│ ├── test.db
|
||||
│ └── fixtures/
|
||||
├── tests/
|
||||
├── scripts/ # Dev and server management scripts
|
||||
│ ├── setup-dev.sh
|
||||
│ ├── deploy-server.sh # Run on server with sudo to apply nginx config
|
||||
│ └── manage-admin-users.sh # Run on server with sudo to manage htpasswd
|
||||
└── nginx/ # nginx config and reference files
|
||||
├── posterg.conf
|
||||
└── docs/ # Documentation
|
||||
```
|
||||
|
||||
Uploaded files (PDFs, covers) live in `storage/` — outside the webroot — and are
|
||||
served exclusively through `public/media.php`, which validates paths and MIME types.
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
@@ -95,3 +64,24 @@ ssh posterg "sudo bash /tmp/manage-admin-users.sh"
|
||||
- Uploads stored outside webroot, served via controlled `media.php`
|
||||
- Rate limiting on public search (`src/RateLimit.php`)
|
||||
- See `nginx/docs/SECURITY_HEADERS.md` for security headers reference
|
||||
|
||||
## Mise en place Dev
|
||||
|
||||
|
||||
### MacOS
|
||||
|
||||
Logiciels:
|
||||
|
||||
- un IDE pour éditer → VSCode
|
||||
- git (ou une interface graphique) pour partager les modifications → git-gui (officiel) ou Github Desktop
|
||||
- un server web avec PHP pour visualiser le project dans le navigateur → MAMP
|
||||
|
||||
|
||||
### Workflow
|
||||
|
||||
0. Faire un changement dans ton IDE
|
||||
1. Démarrer le site via MAMP, en sélectionnant le dossier `public`
|
||||
2. Vérifier que ça marche sur le site en local, depuis ton navigateur
|
||||
3. Une fois qu'un changement spécifique est fait, `commit` les changements sur les fichiers qui sont relatif à ce changement
|
||||
4. Vérifier que vous avez syncroniser avec le `remote` → `pull` + `rebase` ! pas merge
|
||||
5. `push` les changements vers le remote
|
||||
|
||||
Reference in New Issue
Block a user