LogIt
← Home

Self-hosting LogIt

Run your own sync server and web dashboard. Free, no account with us required, and your data stays on infrastructure you control.

Requirements

  • Docker and Docker Compose (bundled with modern Docker installs)
  • Somewhere to run it — your own machine for local use, or any server/VPS to make it reachable from your phone

1. Get the files

git clone https://github.com/Martin-Melody/LogIt.git
cd LogIt

2. Configure secrets

cp .env.example .env

Edit .env and fill in:

  • JWT_SECRET — generate with openssl rand -base64 48
  • ADMIN_KEY — any value you choose, used to access the admin endpoints

.env is gitignored and never committed — keep these values private, they're what protects everyone's accounts on your server.

3. Start it

docker compose up -d

This starts two services: the sync API (port 8080) and the web analytics dashboard (port 3000). Workout data is stored in SQLite, persisted in a Docker volume so it survives restarts.

4. Connect the mobile app

In the LogIt mobile app, go to Settings → Connect account and enter your server's address (e.g. http://192.168.1.10:8080 on your local network, or your server's public URL/domain if it's reachable from the internet). Create an account there — it lives only on your server, nothing is sent anywhere else.

5. Use the web dashboard

Open http://<your-server>:3000, log in with the same account, and you'll see the same richer analytics view described on the home page — activity heatmap, personal records, and a per-exercise deep dive.

Updating

git pull
docker compose up -d --build

If a release changes the database schema, migrations run automatically on startup — no manual step needed. Back up your Docker volume before major version jumps regardless, the same way you'd back up any database you care about.

Need more control?

The docker-compose.yml at the repo root is the whole self-host story — read it directly if you want to run the two services differently (behind your own reverse proxy, on separate machines, with a different database, etc.). Each service also has its own Dockerfile if you'd rather build and run them without Compose at all.