- Rust 75.7%
- HTML 17.6%
- CSS 4.3%
- JavaScript 1.9%
- Python 0.3%
- Other 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| assets | ||
| crates/paff-core | ||
| scripts | ||
| src | ||
| static | ||
| templates | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| deploy.env.example | ||
| deploy.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
PAFF
Interface alternative à PASS (Alcuin OpenPortal) pour IMT Atlantique : planning, notes et GPA, annuaire, salles libres, catalogue des UE, feuilles d'émargement, liens Moodle. En prod sur https://pass.lucienherve.xyz.
Rust/axum, front Askama + JS vanilla installable en PWA. Aucun mot de passe
stocké : le SSO CAS/SAML est rejoué à la connexion, les cookies PASS vivent dans
une session Redis. Parsers sans I/O dans crates/paff-core, testés sur fixtures.
Essayer
docker network create paff; docker run -d --name paff-redis --network paff redis:7-alpine redis-server --appendonly yes && docker run -d --name paff --network paff -p 127.0.0.1:3000:3000 -e REDIS_URL=redis://paff-redis:6379 git.az4aaz.xyz/az4aaz/paff:latest
http://localhost:3000, identifiants CAS IMT.
Héberger
cp .env.example .env
docker compose up -d
Reverse proxy HTTPS obligatoire devant : les cookies de session sont Secure.
Variables et sauvegardes : Auto-hébergement, dans le wiki.
Développer
redis-server --daemonize yes
cp .env.example .env
cargo run
Avant de pousser, ce que refait la CI :
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --no-deps -- -D warnings
cargo test --workspace
Chaîne SSO, sources de données et pièges connus : Architecture, dans le wiki.
Prod : ./deploy.sh tire l'image publiée par la CI et relance le conteneur
(cible dans deploy.env, voir deploy.env.example).
Licence
AGPL-3.0 (LICENSE).