Skip to content

Self-hosting LogIt

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

Requirements

  • Docker with Docker Compose (included in current Docker installs)
  • Somewhere to run it: your own computer for use at home, or any server or VPS to reach it from anywhere

1. Get the files

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

2. Set two secrets

cp .env.example .env

Edit .env and fill in:

  • JWT_SECRET: generate one with openssl rand -base64 48
  • ADMIN_KEY: unlocks the admin page; generate one with openssl rand -base64 32

.env is ignored by git and never committed. Keep these values private: they protect every account on your server.

3. Start it

docker compose up -d

This starts two services: the sync API on port 8080 and the web dashboard on port 3000. Data is stored in SQLite inside a Docker volume, so it survives restarts.

4. Make yourself an invite

Sign-ups are invite-only unless you set REGISTRATION_MODE=open in .env, so strangers can’t make accounts on your server. Open http://<your-server>:8080/admin, enter your ADMIN_KEY, click Invites and create one. Copy message gives you text to send to anyone else you invite.

5. Connect the app

In the LogIt app, open the sign-in screen (Settings › Account), tap Connect to a different server and enter your server’s address: for example http://192.168.1.10:8080 on your home network, or your server’s public address. Then tap Sign up and enter the invite code. Your account exists only on your server.

6. Open the dashboard

Go to http://<your-server>:3000 and sign in with the same account for the bigger charts: activity, personal records and a deep dive into each exercise.

The admin page

Open http://<your-server>:8080/admin and enter your ADMIN_KEY to make invites, see your server’s users, reset a password (handy if you haven’t set up email), sign someone out everywhere, delete an account or deal with reported posts. Ten wrong keys from one address lock it out for 15 minutes.

Updating

git pull
docker compose up -d --build

Database changes run automatically when the server starts. Back up the Docker volume before big version jumps anyway, like any database you care about.

Need more control?

The docker-compose.yml at the root of the repo is the whole setup. Read it if you want to run the services differently: behind your own reverse proxy, on separate machines or with another database. Each service also has its own Dockerfile if you’d rather not use Compose.

Questions or problems? Open an issue on GitHub.