Modern alt UI for IMT Atlantique PASS https://pass.lucienherve.xyz
  • Rust 75.7%
  • HTML 17.6%
  • CSS 4.3%
  • JavaScript 1.9%
  • Python 0.3%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
az4aaz 6f28d0aac1
All checks were successful
Image / build + push (push) Successful in 6s
Image / deploy (push) Successful in 19s
Checks / fmt + clippy + tests (push) Successful in 26m31s
docs: la documentation passe dans le wiki
2026-09-21 19:04:33 +02:00
.forgejo/workflows ci: déployer après la publication de l'image 2026-09-14 17:15:24 +02:00
assets feat: remettre le logo et le bandeau des campus sur la feuille convertie 2026-09-14 11:34:49 +02:00
crates/paff-core fix: la feuille portait des codes que rien n'expliquait au-dessus 2026-09-21 12:57:14 +02:00
scripts fix: décoder les entités des titres du catalogue 2026-09-09 16:44:07 +02:00
src feat: la session tient tant qu'on s'en sert, dans un plafond 2026-09-21 18:50:49 +02:00
static feat: la session tient tant qu'on s'en sert, dans un plafond 2026-09-21 18:50:49 +02:00
templates feat: la session tient tant qu'on s'en sert, dans un plafond 2026-09-21 18:50:49 +02:00
tests feat: la session tient tant qu'on s'en sert, dans un plafond 2026-09-21 18:50:49 +02:00
.dockerignore feat: auto-hébergement, CI d'image et déploiement paramétrable 2026-09-09 00:43:53 +02:00
.env.example feat: la session tient tant qu'on s'en sert, dans un plafond 2026-09-21 18:50:49 +02:00
.gitignore feat: auto-hébergement, CI d'image et déploiement paramétrable 2026-09-09 00:43:53 +02:00
Cargo.lock feat: notifications natives par Web Push (VAPID) 2026-09-15 00:00:20 +02:00
Cargo.toml feat: notifications natives par Web Push (VAPID) 2026-09-15 00:00:20 +02:00
deploy.env.example feat: auto-hébergement, CI d'image et déploiement paramétrable 2026-09-09 00:43:53 +02:00
deploy.sh docs: README et script de déploiement 2026-09-14 16:34:23 +02:00
docker-compose.yml build: déployer en tirant l'image publiée, sans rien cross-compiler 2026-09-14 16:29:53 +02:00
Dockerfile docs: un seul Dockerfile à mentionner 2026-09-14 16:31:30 +02:00
LICENSE feat: auto-hébergement, CI d'image et déploiement paramétrable 2026-09-09 00:43:53 +02:00
README.md docs: la documentation passe dans le wiki 2026-09-21 19:04:33 +02:00

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).