- Rust 62.9%
- TypeScript 27.6%
- CSS 8.8%
- Shell 0.4%
- PLpgSQL 0.2%
- migration 0017 : colonne categories.auto_approve (défaut FALSE = deny-by-default étendu à l'ingestion) ; activée uniquement sur linux-iso, foss-software, public-domain-film, open-movie, documentation (contenus réellement libres). - ingest décide approved (whitelist+journal+outbox, chemin inchangé) vs pending (journal honnête ingest_pending, NON whitelisté/annoncé) selon le flag de la catégorie cible. Réponse: result(created|exists) + status(approved|pending). - purge couvre pending + approved. Toggle admin par catégorie (avertissement). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| crates | ||
| deploy | ||
| docs | ||
| frontend | ||
| migrations | ||
| research | ||
| services | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| PROJECT.md | ||
| README.md | ||
| rust-toolchain.toml | ||
torr-ekaii
Tracker BitTorrent privé, compliant, haute performance. Plateforme de contenu libre de droits uniquement (ISO Linux, domaine public, FOSS, documentaires / projets open-source, films d'archive, lost media, musique / films / jeux légaux, contenus dont l'uploader détient les droits).
Principe : innover, pas cloner. Aucun catalogue externe n'est miroité ; le projet part de zéro,
en s'appuyant sur les leçons du corpus étudié (research/).
Conformité, câblée en invariant
- Whitelist d'info-hash deny-by-default : rien ne s'annonce sans approbation admin (aucun flag de contournement). S'applique aussi bien au chemin HTTP qu'UDP (l'info_hash est dans l'annonce BEP15).
- Retrait immédiat : dé-whitelister purge les peers en RAM sur tous les démons (p99 < 1 s).
- Journal de conformité append-only, chaîné par hash et signé.
- DSA/LCEN + DMCA, ToS « contenu libre de droits uniquement » + attestation d'upload.
Détail : docs/compliance.md.
Architecture (résumé)
Deux plans, Rust édition 2024, mono-repo Cargo :
- data plane (
services/tracker-core) — démon d'annonce, hot path RAM, UDP (BEP15) + HTTP(S). - control plane (
services/control-plane) — index/catalogue SSR (SEO), comptes (WebAuthn), API, modération, source de vérité (whitelist, ratios, journal de conformité).
Contrat inter-services typé partagé (crates/proto, gRPC/mTLS + outbox Postgres durable).
Docs : docs/architecture.md, docs/decisions.md, docs/decisions-locked.md, docs/adr/.
Quickstart (cible : une commande)
Le build/compilation se fait dans un environnement avec accès réseau (crates.io). Le shell de dev Mac de Paul n'a pas ce réseau ; la preprod tourne sur lesannes.
cp .env.example .env # secrets hors repo
docker compose -f deploy/docker-compose.yml up --build
Services (ports internes, exposés ensuite derrière Caddy/Cloudflare sur *.ekaii.fr) :
| Service | Rôle |
|---|---|
| postgres | source de vérité (T0) |
| tracker-core | announce/scrape UDP + HTTP(S) |
| control-plane | API + admin + front SSR |
| caddy | reverse proxy + TLS |
| prometheus | métriques |
Statut
Voir PROJECT.md. Actuellement : Phase A validée, fondation Phase C posée, compilation à venir sur
lesannes.