homeserver
homeserver copied to clipboard
Backend and frontend for my home server
Home server
Home server backend and frontend. It's a sort of personal Netflix. For more info, read the full introduction.
The backend is built with Django and the frontend with Vue.js. It runs inside Docker.
Setup
- Set the required environment variables, as described below.
- Run
docker-compose up --build -d
to start all the components. - If necessary, run
scripts/create-user.sh
to create your first admin user.
Environment variables
Put these environment variables in a .env
file at the root of the project (next to this README file). These environment variables are used by the project.
You can use the .env.example
file as a template.
-
BACKEND_SECRET_KEY
: A unique, random, secret string used by Django. Explanation. -
DEFAULT_VIDEO_HEIGHT
: The default height for converted videos, in pixels. Defaults to 720. -
DIGITALOCEAN_TOKEN
(optional): DigitalOcean API token. Used for dynamic DNS. Here's how you get that token. If you leave it empty, dynamic DNS will stay disabled. -
MAX_VIDEO_BITRATE
: The maximum video bitrate allowed, in bits per second. Defaults to 2000000. -
TRANSMISSION_DATA_PATH
: Path to Transmission's data folder on your filesystem. Incomplete torrents and Transmission settings are stored there. -
MOVIE_LIBRARY_PATH
: Path to the movie library on your filesystem. Movies, subtitles and covers are stored there. -
AUTH_COOKIE_DOMAIN
(optional): The domain used for authentication cookies. Defaults to the current hostname. -
BACKEND_DEBUG
(optional): Set to1
to enable Django backend debugging. Error pages will have meaningful error messages. Not safe for production. -
COMPOSE_PROJECT_NAME
(optional): The prefix for this project's docker networks, images, volumes etc. Explanation. -
SSL_DOMAIN
: Domain for which to generate an SSL certificate. If set tolocalhost
, a self-signed certificate will be generated. -
SSL_EMAIL
: Email used for SSL certificate notifications - OpenVPN configuration for the Transmission/OpenVPN image:
-
OPENVPN_PROVIDER
: See documentation forhaugene/transmission-openvpn
. Use 'PIA' for Private Internet Access. -
OPENVPN_USERNAME
-
OPENVPN_PASSWORD
-