iv-org - invidious

The official container and documentation was made by invidious.
This docker-rebuild is made up by a docker-compose.yml file.
There is no official pre-build on docker-hub.

Set-up for building process

First of all create a folder for your rebuild.sh.
After that clone invidious from github into a folder within the just created folder.
Set the variables, volumes and ports according and run the rebuild.sh

Environment-variables

Set the following environment-variables in the environment: section of the
docker-compose file.

Name Usage Default
channel_threads numer of threads to use for refreshing channels 1
check_tables check channel integrity false
db: user user of database to access
db: password password of database to access
db: host ip of database to access
db: port port of database to access
db: dbname name of database to access
domain set domain if using a reverse proxy
feed_threads number of threads to use for refreshing subscription feeds 1
full_refresh refresh all videos of a channel when crawled false
https_only use this flag to configure https reverse proxies false
popular_enabled enable the popular section true
registration_enabled enable registration for new users true

Ports

Set the following ports in the ports: section.

Container Port Recommended outside port Protocol Description
3000 3000 TCP WebUI

rebuild.sh

#!/bin/sh
cd invidious
docker-compose down
docker pull postgres:10
docker-compose up -d
cd ..

docker-compose.yml

version: "3"
services:
  postgres:
    image: postgres:10
    restart: unless-stopped
    volumes:
      - postgresdata:/var/lib/postgresql/data
      - ./config/sql:/config/sql
      - ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
    environment:
      POSTGRES_DB: invidious
      POSTGRES_PASSWORD: kemal
      POSTGRES_USER: kemal
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
  invidious:
    build:
      context: .
      dockerfile: docker/Dockerfile
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      ## Adapted from ./config/config.yml
      INVIDIOUS_CONFIG: |
        channel_threads: 1
        check_tables: true
        feed_threads: 1
        db:
          user: kemal
          password: kemal
          host: postgres
          port: 5432
          dbname: invidious
        full_refresh: false
        https_only: false
        registration_enabled: false
        popular_enabled: false
        domain: yt.home.server
    depends_on:
      - postgres

volumes:
  postgresdata: