selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

cleanslate logo

Self-host cleanslate

v4.32.0

Free calorie tracker for binge eating recovery

ReleaseOpen SourceApache-2.0
Updated12 hours ago
LanguageTypescript
Setup difficultyAdvanced
MobileResponsive
Stars
237
RAM
8 GB (for Podman)
Ports
3000 (Next.js frontend (container internal)), 3001 (Authentication server (container internal)), 8080 (Hasura GraphQL API (container internal)), 5432 (PostgreSQL database (container internal))
Requires
PostgreSQL
Docker
ghcr.io/successible/cleanslate/client

What is cleanslate?

Clean Slate is a free, open-source calorie tracking web app designed for those dealing with binge eating and the perfectionism that makes standard diet apps fail. It resets logs each day, tracks only calories and protein, and provides a free evidence-based curriculum covering hunger management, exercise, sleep, and healthy eating. Features include food search and logging, barcode scanning via Open Food Facts, quick-add for calories and protein, custom foods and recipes, and exercise and meal tracking. Deployment uses Docker Compose on Linux with PostgreSQL and Hasura GraphQL, fronted by Caddy for automatic HTTPS. The default auth uses simple API tokens; Firebase is optional for Apple, GitHub, and Google sign-in. Licensed Apache 2.0 with a hosted option at cleanslate.sh.

Should you self-host cleanslate?

cleanslate scores 47/100 on selfhost.directory (how scoring works) and ranks #16 of 31 in Health & Fitness. It has 237 GitHub stars.

It shipped 19 stable releases in the past year. The latest, v4.32.0, came out on 27 October 2026. New versions land roughly every 9 days.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Apache-2.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is wger (73/100, 7 201 stars). It scores higher overall, so compare the two before you pick. See cleanslate vs wger side by side.

Features

  • API token authentication
  • Automatic HTTPS via Caddy
  • Barcode Scanning
  • Calorie and protein tracking
  • Custom foods and recipes
  • Daily log reset
  • Docker Compose Deployment
  • Exercise tracking
  • Free evidence-based curriculum
  • GraphQL API
  • Meal tracking
  • Quick add calories/protein

cleanslate README

How to configure cleanslate

  • AUTHENTICATION_SERVER_PORT3001Port for authentication server

    Port for authentication server

  • CLIENT_PORT3000Port for Next.js client

    Port for Next.js client

  • DOCKER_HOST_IP127.0.0.1Docker host IP binding

    Docker host IP binding

  • DOMAINFQDN for the instance (required)

    FQDN for the instance (required)

  • HASURA_GRAPHQL_ADMIN_SECRETAdmin secret for Hasura console

    Admin secret for Hasura console

  • HASURA_GRAPHQL_JWT_SECRETJWT secret for Hasura authentication

    JWT secret for Hasura authentication

  • HASURA_PORT8080Port for Hasura GraphQL API

    Port for Hasura GraphQL API

  • JWT_SIGNING_SECRETSecret for signing JWT tokens

    Secret for signing JWT tokens

  • NEXT_PUBLIC_LEGAL_LINKnoLegal page link

    Legal page link

  • NEXT_PUBLIC_LOGIN_WITH_APPLEnoEnable Apple login via Firebase

    Enable Apple login via Firebase

    values: true, false

  • NEXT_PUBLIC_LOGIN_WITH_FACEBOOKnoEnable Facebook login via Firebase

    Enable Facebook login via Firebase

    values: true, false

  • NEXT_PUBLIC_LOGIN_WITH_GITHUBnoEnable GitHub login via Firebase

    Enable GitHub login via Firebase

    values: true, false

  • NEXT_PUBLIC_LOGIN_WITH_GOOGLEnoEnable Google login via Firebase

    Enable Google login via Firebase

    values: true, false

  • NEXT_PUBLIC_REACT_SENTRY_DSNnoSentry DSN for error tracking

    Sentry DSN for error tracking

  • NEXT_PUBLIC_USE_FIREBASEfalseEnable Firebase authentication

    Enable Firebase authentication

    values: true, false

  • NEXT_PUBLIC_VERSIONApplication version (git short hash)

    Application version (git short hash)

  • POSTGRES_PASSWORDPostgreSQL password

    PostgreSQL password

  • POSTGRES_PORT5432Port for PostgreSQL

    Port for PostgreSQL

  • PULL_POLICYalwaysDocker image pull policy

    Docker image pull policy

    values: always, build

cleanslate releases & version history

More in Health & Fitness

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…