mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
59bbcf4642fd81d987a98bafffbb53e72b894f26
- Add baseline input[type="checkbox"] and input[type="radio"] styling in common.css (accent-color, size, cursor, flex-shrink) - Give select a solid background (var(--bg-primary)) and its own focus rule - Remove now-redundant checkbox accent-color/size from .admin-checkbox-label (form.css) and .param-checkbox (admin.css) - Simplify .search-filter-select (repertoire.css) to inherit common select defaults (border, background, arrow icon) - Keep all layout-specific classes in form.css and admin.css intact - Add baseline input[type="checkbox"] and input[type="radio"] styling in common.css (accent-color, size, cursor, flex-shrink) - Give select its own rule block with same shape as text inputs (transparent background, same padding/border/radius/focus) - Remove now-redundant checkbox accent-color/size from .admin-checkbox-label (form.css) and .param-checkbox (admin.css) - Simplify .search-filter-select (repertoire.css) to inherit common select defaults - Keep all layout-specific classes in form.css and admin.css intact - Remove bottom-border/border-radius:0 overrides from .admin-form, .admin-inline-form, .param-form, and .param-grid inputs/selects - Change required-field indicator from border-bottom-style to border-style: dashed to work with full-border approach - Update param-grid aria-invalid from border-bottom-color to border-color - All text inputs, selects, and textareas now inherit the full-border style from common.css (border, border-radius, padding, focus ring) - .password-gate input[password]: remove redundant padding override - .retry-email-form input[email]: remove redundant border/border-radius/ padding/box-sizing, keep only font-size (larger) and width - .tfe-access-request-form input/textarea: remove broken references to undefined vars (--border, --background, --accent), now inherit from common.css. Remove redundant focus rule. - .fhb-name-input: strip redundant padding/border/radius/font-size/font - .admin-inline-form input/select: strip redundant font-size - .param-checkbox: remove font-size (inherits from body) - .param-checkbox small: remove redundant color + font-size (common.css small already sets both) - .param-note: remove font-size - .param-account-status: remove font-size - .param-smtp-test-row label: remove display:block + font-size (common.css label) - .param-smtp-status: remove font-size - .param-grid label: remove font-size - Remove .param-form legend padding override (now inherits common.css legend) - Remove .param-danger-zone legend padding override - Remove .param-export-zone legend padding override - Remove .param-fieldset-inline legend entirely (only rule was padding) - Remove .licence-explanation legend entirely (all properties identical to common.css legend) - All fieldsets now consistently use common.css fieldset padding (0 var(--space-m) var(--space-m) var(--space-m)) - The common.css fieldset has padding-top: 0, which leaves checkboxes and other content tight against the legend. Add var(--space-s) top padding so the first content row has proper spacing from the legend.
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
- Faire un changement dans ton IDE
- Démarrer le site via MAMP, en sélectionnant le dossier
public - Vérifier que ça marche sur le site en local, depuis ton navigateur
- Une fois qu'un changement spécifique est fait,
commitles changements sur les fichiers qui sont relatif à ce changement - Vérifier que vous avez syncroniser avec le
remote→pull+rebase! pas merge pushles 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
Admin users (htpasswd)
just manage-admin-users
# Then on server:
ssh xamxam "sudo bash /tmp/manage-admin-users.sh"
Security notes
- Admin panel protected by nginx
auth_basic+ PHP session (AdminAuth) - Uploads stored outside webroot, served via controlled
media.php - Rate limiting on public search (
src/RateLimit.php) - See
nginx/docs/SECURITY_HEADERS.mdfor security headers reference
Description
Languages
PHP
78.2%
CSS
11.4%
JavaScript
6.9%
Shell
1.5%
Just
1.3%
Other
0.7%