Skip to main content

Invidious

version: "3.3"
services:
  postgres:
    image: postgres:10
    restart: unless-stopped
    networks:
      - invidious
    volumes:
      - /srv/path/Files/Invidious/postgresdata:/var/lib/postgresql/data
      - /srv/path/Files/Invidious/config/sql:/config/sql
      - /srv/path/Files/Invidious/docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
    environment:
      POSTGRES_DB: invidious
      POSTGRES_USER: kemal
      POSTGRES_PASSWORD: kemal
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
  invidious:
    image: quay.io/invidious/invidious:latest
    restart: unless-stopped
    networks:
      - invidious
    mem_limit: 1024M
    cpus: 0.5
    ports:
      - "3000:3000"
    environment:
      INVIDIOUS_CONFIG: |
        channel_threads: 1
        check_tables: true
        feed_threads: 1
        admins: [""]
        db:
          dbname: invidious
          user: kemal
          password: kemal
          host: postgres
          port: 5432
        full_refresh: false
        https_only: false
      # domain:
      # external_port:
    healthcheck:
      test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1
      interval: 30s
      timeout: 5s
      retries: 2
    depends_on:
      - postgres
  autoheal:
    restart: unless-stopped
    image: willfarrell/autoheal
    environment:
      - AUTOHEAL_CONTAINER_LABEL=all
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
  postgresdata:

networks:
  invidious:

The environment variable POSTGRES_USER cannot be changed. The SQL config files that run the initial database migrations are hard-coded with the username kemal.

Same goes with environment variable port . Stick to 3000:3000 and change other service port if needed.

Detailed post-install configuration available in the configuration guide.

Because of various issues Invidious must be restarted often, at least once a day, ideally every hours.

If you use a reverse proxy, you must configure invidious to properly serve request through it:

https_only: true : if your are serving your instance via https, set it to true


domain: domain.ext: if you are serving your instance via a domain name, set it here


external_port: 443: if your are serving your instance via https, set it to 443

Env variables must be put after INVIDIOUS_CONFIG: | in the compose file