Home

Awesome

Yamtrack

App Tests Docker Image Image Size CodeFactor Codecov GitHub

Yamtrack is a self hosted media tracker for movies, tv shows, anime and manga.

You can try the app at yamtrack.fuzzygrim.com using the username demo and password demo.

Features

Installing with Docker

Copy the default docker-compose.yml file from the repository and set the environment variables. This would use a SQlite database, which is enough for most use cases.

To start the containers run:

docker-compose up -d

Alternatively, if you need a PostgreSQL database, you can use the docker-compose.postgres.yml file.

Environment variables

NameTypeNotes
TMDB_APIStringThe Movie Database API key for movies and tv shows, a default key is provided
TMDB_NSFWBoolDefault to false, set to true to include adult content in tv and movie searches
TMDB_LANGStringTMDB metadata language, uses a Language code in ISO 639-1 e.g "en", for more specific results a country code in ISO 3166-1 can be added e.g "en-US"
MAL_APIStringMyAnimeList API key, for anime and manga, a default key is provided
MAL_NSFWBoolDefault to false, set to true to include adult content in anime and manga searches from MyAnimeList
MU_NSFWBoolDefault to false, set to true to include adult content in manga searches from MangaUpdates
IGDB_IDStringIGDB API key for games, a default key is provided but it's recommended to get your own as it has a low rate limit
IGDB_SECRETStringIGDB API secret for games, a default value is provided but it's recommended to get your own as it has a low rate limit
IGDB_NSFWBoolDefault to false, set to true to include adult content in game searches
SIMKL_IDStringSimkl API key for importing media, a default key is provided but you can get one at Simkl Developer
SIMKL_SECRETStringSimkl API secret for importing media, a default secret is provided but you can get one at Simkl Developer
REDIS_URLStringDefault to redis://localhost:6379, Redis is needed for processing background tasks, set this to your redis server url
SECRETStringSecret key used for cryptographic signing, should be a random string
ALLOWED_HOSTSListHost/domain names that this Django site can serve, e.g. app.example.com. See Django documentation for more details.
CSRFListA list of trusted origins for unsafe requests, e.g. https://app.example.com. See Django documentation for more
URLSListThis setting can be used to set the URLs of the app for the CSRF and ALLOWED_HOSTS settings, e.g. https://app.example.com
REGISTRATIONBoolDefault to true, set to false to disable user registration
DEBUGBoolDefault to false, set to true for debugging
PUIDIntUser ID for the app, default to 1000
PGIDIntGroup ID for the app, default to 1000
TZStringTimezone, default to UTC
WEB_CONCURRENCYIntNumber of webserver processes, default to 1 but it's recommended to have a value of (2 x num cores) + 1

Environment variables for PostgreSQL

NameTypeNotes
DB_HOSTStringWhen not set, sqlite is used
DB_PORTInt
DB_NAMEString
DB_USERString
DB_PASSWORDString

Local development

Clone the repository and change directory to it.

git clone https://github.com/FuzzyGrim/Yamtrack.git
cd Yamtrack

Install Redis or spin up a bare redis container:

docker run -d --name redis -p 6379:6379 --restart unless-stopped redis:7-alpine

Create a .env file in the root directory and add the following variables.

TMDB_API=API_KEY
MAL_API=API_KEY
IGDB_ID=IGDB_ID
IGDB_SECRET=IGDB_SECRET
SECRET=SECRET
DEBUG=True

Then run the following commands.

python -m pip install -U -r requirements-dev.txt
cd src
python manage.py migrate
python manage.py runserver & celery --app config worker --beat -S django --loglevel DEBUG

Go to: http://localhost:8000