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.