Invidious is a free and open source project made to view YouTube videos without ads and without YouTube/Google track your video watch. It's more like a proxy for YouTube (but better).
git clone https://github.com/iv-org/invidious.git
version: "3" services: invidious: image: quay.io/invidious/invidious:latest # image: quay.io/invidious/invidious:latest-arm64 # ARM64/AArch64 devices restart: unless-stopped ports: - "127.0.0.1:3000:3000" environment: # Please read the following file for a comprehensive list of all available # configuration options and their associated syntax: # https://github.com/iv-org/invidious/blob/master/config/config.example.yml INVIDIOUS_CONFIG: | db: dbname: invidious user: kemal password: kemal host: invidious-db port: 5432 check_tables: true # external_port: # domain: # https_only: false # statistics_enabled: false 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: - invidious-db invidious-db: image: docker.io/library/postgres:14 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_USER: kemal POSTGRES_PASSWORD: kemal healthcheck: test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] volumes: postgresdata:
Note that: remove 127.0.0.1 from ports if you are not going to use reverse proxy. And note that settgins are within INVIDIOUS_CONFIG environment variable.
docker-compose up -d
Now it's running
After running the instance for some time, you will have to update it for security reasons or even to get new features and bug fixes, so to update simply run:
git pull docker-compose down docker-compose pull docker-compose up -d
These commands will pull latest updates from git repo, stop invidious and pull latest image from docker and re-run docker again but with the new image.
Now you can clear old image by running:
docker system prune -a docker volume prune docker network prune docker image prune
But be aware any docker images that are not running will get deleted too alongside it's database.