--- title: Clean Slate created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, tracking, calorie-tracker, food, health, nutrition] confidence: medium contested: false sources: [https://selfh.st/apps/, https://cleanslate.sh/, https://github.com/successible/cleanslate] --- # Clean Slate 🧘 > Tracker de calories libre et bienveillant, conçu pour les personnes en lutte avec les rĂ©gimes et la relation Ă  la nourriture. | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | https://cleanslate.sh/ | | **GitHub** | https://github.com/successible/cleanslate | | **License** | Apache-2.0 | | **Langage principal** | TypeScript (Next.js) | | **Étoiles GitHub** | ~234 (dĂ©pĂŽt mirror trĂšs actif) | | **DerniĂšre MAJ** | 2026-05 (v4.22.0) | | **CatĂ©gorie** | [[cat-tracking]] | ## Description Clean Slate est une application web de **suivi alimentaire et calorique** qui se distingue volontairement des trackers classiques par son approche non-jugeante. Le projet, dĂ©veloppĂ© originellement pour aider ses crĂ©ateurs Ă  rompre avec les cycles de restriction et de frĂ©nĂ©sie, abandonne la rhĂ©torique punitive habituelle (« tu as Ă©chouĂ© », calories restantes, etc.) au profit d'une interface neutre. L'objectif est de faciliter un journal alimentaire rĂ©gulier sans gĂ©nĂ©rer de culpabilitĂ©. L'application permet de chercher et journaliser des aliments (base Open Food Facts pour les codes-barres), crĂ©er des recettes personnalisĂ©es, suivre les protĂ©ines et l'exercice, et fonctionne sur tout appareil disposant d'un navigateur. Une instance publique gratuite est maintenue par l'auteur sur cleanslate.sh avec authentification Apple, GitHub et Google ; l'auto-hĂ©bergement reste nĂ©anmoins pleinement supportĂ© via Docker Compose. Techniquement, Clean Slate s'appuie sur une stack moderne : **Next.js + TypeScript** cĂŽtĂ© front, **Hasura (GraphQL)** comme couche API, **PostgreSQL** pour la persistance, et **Caddy** comme reverse-proxy HTTPS automatique. Le projet est en production depuis plusieurs annĂ©es avec un rythme de releases soutenu (≈150 releases). ## Installation ### Via Docker (recommandĂ©) ```yaml services: cleanslate: image: ghcr.io/successible/cleanslate:latest container_name: cleanslate restart: unless-stopped ports: - "3000:3000" environment: - HASURA_GRAPHQL_ADMIN_SECRET=change-me-strong-secret - NEXT_PUBLIC_HASURA_URL=http://cleanslate:8080/v1/graphql - DOMAIN_NAME=https://cleanslate.example.com volumes: - ./data:/app/.user depends_on: - postgres postgres: image: postgres:16-alpine container_name: cleanslate-db restart: unless-stopped environment: POSTGRES_PASSWORD: change-me POSTGRES_DB: cleanslate volumes: - ./postgres:/var/lib/postgresql/data ``` > Note : la procĂ©dure officielle clone le dĂ©pĂŽt et exĂ©cute `bash configuration.sh` + `bash deploy.sh`, qui gĂ©nĂšre Caddyfile + .env automatiquement. L'image GHCR est un placeholder honnĂȘte : rĂ©fĂ©rez-vous au README pour le docker-compose de production exact. ### Installation manuelle 1. Cloner le dĂ©pĂŽt : `git clone https://github.com/successible/cleanslate && cd cleanslate` 2. Installer `uuid-runtime` (Debian/Ubuntu : `apt install uuid-runtime`) 3. Lancer `bash configuration.sh` pour gĂ©nĂ©rer `.env` et `Caddyfile` 4. Builder et dĂ©marrer : `bash deploy.sh` 5. CrĂ©er un utilisateur depuis la console Hasura `https://cleanslate.example.com/console` ## Configuration - **HASURA_GRAPHQL_ADMIN_SECRET** : secret administrateur de l'API GraphQL (obligatoire, choisir une valeur forte). - **DOMAIN_NAME** : FQDN public utilisĂ© pour le reverse-proxy Caddy et les origines CSRF. - **Authentification** : deux modes — locale (par dĂ©faut, simple) ou Firebase (plus complexe, nĂ©cessaire pour Login with Apple/Google). - **CrĂ©ation du premier utilisateur** : se connecter Ă  la console Hasura, insĂ©rer une ligne dans la table `public.profiles`, puis utiliser la valeur `apiToken` comme mot de passe sur l'interface web. - **Mises Ă  jour** : `git pull && bash deploy.sh` (les images Docker sont reconstruites avec un dĂ©lai d'environ 20 minutes aprĂšs chaque release GitHub). ## Alternatives ### Open source - [[app-beaverhabits]] — Tracker d'habitudes (pas de nutrition) - Tandoor Recipes — Gestion de recettes avec planification de repas - Open Food Facts — Base de donnĂ©es alimentaire utilisĂ©e par Clean Slate (projet parent, Ă  auto-hĂ©berger en option) ### PropriĂ©taires - MyFitnessPal — Tracker dominant, freemium agressif et base d'aliments私有 - Lose It! — Approche similaire mais avec objectifs stricts et paywall lourd - Yazio — Interface moderne, fonctionnalitĂ©s limitĂ©es en gratuit ## SĂ©curitĂ© - **Reverse-proxy HTTPS** : Caddy gĂšre automatiquement Let's Encrypt ; port 443 Ă  ouvrir en permanence. - **Secret Hasura** : le `HASURA_GRAPHQL_ADMIN_SECRET` donne accĂšs Ă  toute la base — choisir une valeur alĂ©atoire longue (32+ caractĂšres) et la traiter comme un mot de passe root. - **Authentification** : par dĂ©faut, authentification locale avec `apiToken` (long, opaque). Pour une utilisation multi-utilisateur, prĂ©fĂ©rer Firebase Auth ou OIDC. - **Caddyfile** : gĂ©nĂ©rĂ© par `configuration.sh`, expose correctement les en-tĂȘtes HSTS et le CSP. - **Mises Ă  jour** : suivre les releases GitHub, releases rĂ©guliĂšres incluant patches de sĂ©curitĂ©. ## Ressources - Site officiel : https://cleanslate.sh/ - Code source : https://github.com/successible/cleanslate - DĂ©mo hĂ©bergĂ©e : https://cleanslate.sh/ (gratuite) - Reddit r/selfhosted : https://www.reddit.com/r/selfhosted/comments/88pxhd/self_hosted_calorie_counter/ - selfh.st apps : https://selfh.st/apps/ ## Pages LiĂ©es - [[cat-tracking]] - [[recettes-docker-compose]]