Rebuild du site sur Astro : i18n multilingue, faits verifies, Docker, CI, tests

- Astro statique, EN par defaut + /fr/ + /nl/, detection langue navigateur
- i18n par fichiers JSON, ajouter une langue = ajouter des traductions
- Contenu original porte a l'identique (diff d'inventaire par langue)
- Chronologie legislative corrigee sur sources primaires (PE, Conseil, votes)
- Timeline 23 precedents + observatoire 35 items + annuaire 66 outils FOSS,
  chaque affirmation verifiee et sourcee
- Zero requete tierce (teste), lisible JS coupe, axe WCAG AA x2 themes
- Version offline monofichier par langue a chaque build
- Docker multi-stage vers nginx + CSP stricte auto-generee
- CI GitHub Actions (SHA-pinnees) + verification hebdo des liens
- CONTRIBUTING : divulgation d'affiliation obligatoire, allowlist de
  domaines testee en CI
This commit is contained in:
Aurealibe
2026-07-10 03:52:49 +01:00
parent 88b2f9bfd4
commit 8ebc1da9e4
181 changed files with 28167 additions and 2042 deletions
+20 -36
View File
@@ -1,52 +1,36 @@
# Exit Chat Control
A free, trilingual (EN / FR / NL) guide to escape **Chat Control** and take back control of your digital privacy: encrypted messaging, email, VPN, DNS, 2FA, Linux, GrapheneOS, self-hosting, and more. Every tool is presented with **what it does**, **who it's for**, and **how to install it**.
A free, multilingual field guide to escape **Chat Control** and take back control of your digital privacy: encrypted messaging, email, VPN, DNS, 2FA, Linux, GrapheneOS, self-hosting, and more. Every tool is presented with **what it does**, **who it's for**, and **how to install it**.
🔗 **Live site: https://exitchatcontrol.org**
## What is this?
On 9 July 2026, the European Parliament let "Chat Control" through, opening the door to the scanning of private messages across the EU. This project is a practical, no-nonsense answer: a single, self-contained web page that references privacy-respecting tools anyone can use to opt out of mass surveillance, from the everyday citizen to the whistleblower.
In July 2026, the European Parliament let the "Chat Control" machinery advance — the amended text now sits with the Council, and the permanent version (CSAR, "Chat Control 2.0") is still being negotiated. This project is a practical, no-nonsense answer: a guide referencing privacy-respecting tools anyone can use to opt out of mass surveillance, from the everyday citizen to the whistleblower.
It is intentionally simple: no tracking, no dependencies, no build step. Just open `index.html`.
Its promises, all enforced by tests:
## Repository
- **Static and self-contained** — no tracker, no cookie, not a single request to a third-party domain.
- **Readable with JavaScript disabled** (Tor Browser "safest" mode included) — scripts only power the theme, filters and checklist.
- **Multilingual by design** — every language is a real prerendered route with correct `hreflang`; adding one means adding translation files, not touching code.
- **Printable and mirrorable** — a single-file offline version ships with every build.
- **`index.html`** — the full guide (a standalone website).
- **`article-presse.md`** — a ready-to-publish, actionable article (for a blog, a newsletter, or an X Article).
- **`images/`** — screenshots used in the guide.
## Stack
[Astro](https://astro.build) (static output, built-in i18n routing) · Tailwind CSS v4 (design tokens, `light-dark()` theming) · TypeScript strict · Vitest (content integrity, i18n parity, domain allowlist) · Playwright + axe (no-JS readability, zero-third-party-request guarantee, WCAG AA) · Docker (multi-stage build → nginx). Package manager: pnpm.
```sh
pnpm install
pnpm dev # develop on http://localhost:4321
pnpm build # static site + offline artifact in dist/
docker compose up preview # prod-like: nginx + security headers on :8080
```
## Contributing
Contributions are very welcome. If you know a useful app that helps circumvent Chat Control or protect privacy, please **open a Pull Request** (or an Issue) to add it. **I review every submission personally.**
Contributions are very welcome — a tool to add, a translation, a correction. **Read [`CONTRIBUTING.md`](./CONTRIBUTING.md) first**: it contains three simple rules for tools (traction, open source, privacy-respecting), a mandatory affiliation-disclosure policy, and a CI-enforced external-link policy. Large changes start with an issue, not a PR.
To be accepted, an app must meet **three simple rules**:
1. **It has traction** — an established, actively maintained project with a real user base, not an obscure or abandoned tool.
2. **It is open source.**
3. **It is privacy-respecting.**
That's it. If it ticks those three boxes and genuinely helps people escape surveillance, it belongs here.
**How to contribute:**
- Fork the repo, add a tool card in `index.html` following the existing format (logo, "what it does", "why", "who it's for", install steps), then open a PR.
- Not comfortable with code? Just open an Issue with the app's name, its link, and why it qualifies (traction + open source + privacy), and I'll add it.
## Roadmap
Right now, the goal is deliberately narrow: **reference useful apps to circumvent Chat Control**, on one clean, fast page.
Later, the site will be refactored to support more:
- Full written guides
- Dedicated pages for each application
- Step-by-step tutorials
This single-page version is the foundation the rest will be built on.
## Running it yourself
It's a static site (one `index.html`, plus an `images/` folder). Host it on any static host (Netlify, Vercel, Cloudflare Pages) or serve it behind a reverse proxy. No build, no dependencies.
Not comfortable with code? Open an issue with the app's name, its link, and why it qualifies, and it will be added for you.
## License
@@ -54,4 +38,4 @@ See [`LICENSE`](./LICENSE).
---
*Privacy is a right, not a confession. To encrypt is to vote. To self-host is to disobey. To reclaim your tools is to become ungovernable.*
_Privacy is a right, not a confession. To encrypt is to vote. To self-host is to disobey. To reclaim your tools is to become ungovernable._