Self-hosted TV show Episode tracker built using django and bootstrap5.
Episodes allows you to keep track of your favourite tv shows either continuing or ending.
Using http://thetvdb.com/ for metadata.
Forked from https://github.com/guptachetan1997/Episodes
Inspired from https://github.com/jamienicol/episodes
You can download the android app from here. It is a simple webview app and you will enter your url when the app opens (make sure to have a '/' at the end of your url like https://example.com/).
- add tv shows to track when new episodes come out
- mark tv show episodes as watched
- mark shows as "Stopped Watching" or "Watch Later" (these shows will not show up in your Watch Next feed)
- Watch Next, Upcoming, History, Watch Later, and Stopped Watching
- Set up a "Watch Delay" for shows that you want to show in your Watch Next feed x days after release (if you watch on streaming and it releases 1 day later, set this to 1)
- Get show and episode overviews
- Download the docker-compose.yml file to your computer
- Edit the docker-compose.yml file to change the SECRET_KEY and CSRF_TRUSTED_ORIGINS variables, and change the port if you want to.
- SECRET_KEY - this can be generated with python like this:
python3 -c 'import secrets; print(secrets.token_hex(100))'
- CSRF_TRUSTED_ORIGINS - this needs to be where you will access the server from, multiple origins can be separated by a space like this:
"http://localhost https://example.com"
- Change the port on the left side only unless you know what you are doing. If you want to access from port 8080, change to
"8080:3000"
- SECRET_KEY - this can be generated with python like this:
- Run:
docker compose pull
- Run:
docker compose up -d
- Access your server from http://localhost:3000
To use clone the production branch, install requirements, run the following terminal commands:
cd /opt
cd Episodes
python -m venv episodes
source episodes/bin/activate
or on windows
./episodes/Scripts/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
you can now access the webpage from http://localhost:8000, you can use nginx, caddy, or other reverse proxy for better access
The following command will add a cron job to update all continuing shows for new data at 3am and 3pm everyday (this only works on linux):
python manage.py crontab add
to show cron jobs created by this server
python manage.py crontab show
to delete cron jobs created by this server
python manage.py crontab remove
You can also manually update the database in the app by pressing the update button, or from commandline by running:
python manage.py update_db