Site permettant de consulter la collection de mémoire de PostERG
  • PHP 53.7%
  • CSS 30.8%
  • Hack 7.8%
  • Python 5.6%
  • Shell 2.1%
Find a file
2026-06-29 17:57:13 +02:00
app Fix admin login heading: prevent 'Administration' from hyphenating or overflowing box 2026-06-24 14:57:28 +02:00
deploy Add periodic cleanup of orphaned drafts: cleanup job, just command, deploy cron 2026-06-11 13:05:34 +02:00
docs Docs: ajouter nombre de commits par groupe fonctionnel dans livraisons mensuelles 2026-06-29 17:57:13 +02:00
nginx #gzip #extract-inline-js enable gzip in nginx + move ~730 lines of inline JS to 15 external files 2026-06-24 12:56:15 +02:00
scripts Fix biome lint errors: remove duplicate CSS properties, apply safe auto-fixes 2026-06-24 13:57:00 +02:00
tests Add autosave draft system for partage form with HTMX-based session persistence 2026-06-11 11:04:49 +02:00
.gitignore Add biome + rolldown + lightningcss build pipeline for JS/CSS bundling & minification 2026-06-24 13:09:50 +02:00
.ignore refactor: unify FilePond edit previews + clean upload UI and shared fragments 2026-05-19 00:08:06 +02:00
.php-cs-fixer.cache Add autosave draft system for partage form with HTMX-based session persistence 2026-06-11 11:04:49 +02:00
.php-cs-fixer.dist.php Add autosave draft system for partage form with HTMX-based session persistence 2026-06-11 11:04:49 +02:00
.phpunit.result.cache Refactor apropos/charte/licence pages: shared layout, TOC anchors, and UI polish 2026-06-19 19:40:05 +02:00
biome.json Fix biome lint errors: remove duplicate CSS properties, apply safe auto-fixes 2026-06-24 13:57:00 +02:00
commits.txt Docs: livraisons par mois extraites de commits.txt 2026-06-29 17:38:57 +02:00
composer.json Integrate Monolog: replace four logging systems with single PSR-3 factory 2026-05-20 12:28:31 +02:00
composer.lock Integrate Monolog: replace four logging systems with single PSR-3 factory 2026-05-20 12:28:31 +02:00
justfile Fix biome lint errors: remove duplicate CSS properties, apply safe auto-fixes 2026-06-24 13:57:00 +02:00
package-lock.json Add dev-watch recipe with chokidar-cli for live rebuild on CSS/JS changes 2026-06-24 13:12:41 +02:00
package.json Add dev-watch recipe with chokidar-cli for live rebuild on CSS/JS changes 2026-06-24 13:12:41 +02:00
phpstan-baseline.neon Remove unused Parsedown.php (replaced by league/commonmark in Phase 1); update phpstan baseline 2026-05-20 01:21:47 +02:00
phpstan.neon Add composer.json with league/commonmark, guzzlehttp/guzzle, phpmailer/phpmailer; wire autoloader into bootstrap; document de-librairisation strategy and PHP extension setup 2026-05-20 00:53:42 +02:00
phpunit.xml Add code coverage configuration (phpunit.xml source filter), baseline coverage report (21.27% lines), gitignore coverage/ and .phpunit.result.cache; remove deprecated setAccessible() calls 2026-05-20 02:08:42 +02:00
README.md Reintroduce TFE duration metadata: DB columns, form fields, controllers, views, and migration 2026-06-15 15:56:52 +02:00
rolldown.config.mjs Add biome + rolldown + lightningcss build pipeline for JS/CSS bundling & minification 2026-06-24 13:09:50 +02:00
TODO.md chore: move #rep-polish to Completed, investigate #tighten-csp blockers 2026-06-24 14:49:11 +02:00

XAMXAM

(Anciennement Posterg)

Répertoire des travaux de fin d'études de l'ERG (École de Recherche Graphique).

Requirements

  • PHP 8.4
  • SQLite3 (php8.4-sqlite3)
  • nginx (production)

Development

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

  1. Faire un changement dans ton IDE
  2. Démarrer le site via MAMP, en sélectionnant le dossier public
  3. Vérifier que ça marche sur le site en local, depuis ton navigateur
  4. Une fois qu'un changement spécifique est fait, commit les changements sur les fichiers qui sont relatif à ce changement
  5. Vérifier que vous avez syncroniser avec le remotepull + rebase ! pas merge
  6. push les changements vers le remote
just serve   # http://localhost:8000  (public) and /admin/

Deployment

Files are pushed to the server with rsync — there is no repo on the remote.

just deploy     # rsync app files → xamxam:/var/www/xamxam/
just deploy-db  # push local xamxam.db → remote (only if remote DB is absent)

deploy-db refuses to run if a database already exists on the server, to avoid accidental overwrites of production data.

First-time server setup

ssh xamxam
sudo mkdir -p /var/www/xamxam
sudo chown www-data:xamxam /var/www/xamxam
sudo chmod 775 /var/www/xamxam
exit

Then deploy once and apply nginx config:

just deploy
just deploy-nginx

Security notes

  • Admin panel protected by PHP session (AdminAuth) — password-only, no username
  • 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