Repository navigation
Installation
hdtracker runs as a single Docker container. All data lives in one volume.
The quick way – create a folder and download the two files into it:
mkdir hdtracker && cd hdtracker
curl -fsSLO https://raw.githubusercontent.com/dvnkln/hdtracker/main/docker-compose.yml
curl -fsSL -o .env https://raw.githubusercontent.com/dvnkln/hdtracker/main/.env.exampleNo curl on your system? wget does the same:
wget https://raw.githubusercontent.com/dvnkln/hdtracker/main/docker-compose.yml
wget -O .env https://raw.githubusercontent.com/dvnkln/hdtracker/main/.env.exampleOr create the folder by hand with this docker-compose.yml:
services:
hdtracker:
image: ghcr.io/dvnkln/hdtracker:latest
container_name: hdtracker
restart: unless-stopped
ports:
- '3000:3000'
env_file: .env
volumes:
- hdtracker-data:/data
volumes:
hdtracker-data:Another port? Change the left side of 3000:3000 (e.g. 8080:3000) and adjust ORIGIN accordingly.
Fill in the .env file you downloaded – or create it next to the docker-compose.yml (template: .env.example):
SECRET=
TMDB_API_TOKEN=
IGDB_CLIENT_ID=
IGDB_CLIENT_SECRET=
TZ=Europe/Berlin
ORIGIN=http://192.168.1.50:3000| Variable | What to put in |
|---|---|
SECRET |
Random string, at least 32 characters: openssl rand -hex 32
|
TMDB_API_TOKEN |
themoviedb.org → Settings → API → API Read Access Token (the long one, not the short API key) |
IGDB_CLIENT_ID / IGDB_CLIENT_SECRET
|
dev.twitch.tv/console/apps → Register Your Application (Redirect URL http://localhost, Category Application Integration, Client Type Confidential) → copy the Client ID, create a secret with New Secret
|
TZ |
Your time zone, e.g. Europe/Berlin
|
ORIGIN |
Exactly the address you open the app with (protocol + host + port, no trailing slash) – otherwise login fails. E.g. http://192.168.1.50:3000, or https://tracker.example.com behind a reverse proxy. Several addresses: comma-separated |
Anime (AniList) needs no key; only the episode titles of anime come from TMDB. Without TMDB or IGDB keys only those areas are unavailable – you can also hide areas you don't use under Settings → General.
Prefer passing the values with environment: instead of env_file? That works too; the variable names are the same.
docker compose up -dOpen the ORIGIN address. On the first start you create your account. It is the admin of the installation and can add accounts for others later – see Users.
Everything else (interface language, content language, region, …) is set inside the app under Settings.
If you reach hdtracker through a reverse proxy (Nginx Proxy Manager, Caddy, Traefik, …), confirm the proxy once:
- Open Settings → Server → Connection through the proxy.
- Follow what it shows – one click, or a key with one line for your proxy.
Without it everything works, but after several wrong passwords all visitors are blocked together instead of only the one who typed them.
Settings → Server also has an overview that tells you whether anything else needs attention. Details: HTTPS and installing as an app.
-
Login or any form fails with “Cross-site POST form submissions are forbidden” (403):
ORIGINdoes not match the address in your browser exactly. See HTTPS and installing as an app. -
“… is missing in .env”: the variable name is misspelled or the value did not reach the container. Check with
docker exec hdtracker env. - Forgot your password? See Reset your password.
Setup
Your data
Help
Contributing