Files
Homelab/invidious/compose.yml
MSWS cfa3460605 feat: Refactor services: add Companion, disable personal watchtower
instance

```
- Add new track "5 Seconds of Summer - Social Casualty" to Daily playlist.
- Disable personal watchtower service by commenting out its configuration in `watchtower/compose.yml`.
- Replace `inv_sig_helper` service with `companion` service in `invidious/compose.yml`, introducing new configurations, networks, and volumes to support the change.
- Update `invidious` service configuration for integration with the `companion` service, including adding new environment variables and modifying network and volume references.
- Enhance security settings in `invidious/compose.yml` by updating `security_opt`, `cap_drop`, and maintaining `read_only` configuration for the `companion` service.
```
2025-10-02 22:05:38 -07:00

94 lines
2.5 KiB
YAML

services:
invidious:
image: quay.io/invidious/invidious:latest
container_name: invidious
restart: always
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: ${DB_PASSWORD}
host: invidious-db
port: 5432
check_tables: true
external_port: 443
domain: yt.msws.xyz
https_only: true
po_token: ${PO_TOKEN}
hmac_key: ${HMAC_KEY}
invidious_companion:
- private_url: "http://invidious-companion-1:8282/companion"
invidious_companion_key: ${COMPANION_KEY}
healthcheck:
test: wget -nv --tries=1 --spider http://invidious:3000/api/v1/trending || exit 1
interval: 30s
timeout: 5s
retries: 2
logging:
options:
max-size: "1G"
max-file: "4"
depends_on:
- invidious-db
networks:
- companion
- invidious-db
- cloudflared
companion:
image: quay.io/invidious/invidious-companion:latest
environment:
# Use the key generated in the 2nd step
- SERVER_SECRET_KEY=${COMPANION_KEY}
restart: unless-stopped
# Uncomment only if you have configured "public_url" for Invidious companion
# Or if you want to use Invidious companion as an API in your program.
# Remove "127.0.0.1:" if used from an external IP
#ports:
# - "127.0.0.1:8282:8282"
logging:
options:
max-size: "1G"
max-file: "4"
cap_drop:
- ALL
read_only: true
# cache for youtube library
volumes:
- companioncache:/var/tmp/youtubei.js:rw
security_opt:
- no-new-privileges:true
networks:
- companion
invidious-db:
image: docker.io/library/postgres:14
restart: always
container_name: invidious-db
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: $DB_PASSWORD
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
networks:
- invidious-db
volumes:
postgresdata:
companioncache:
networks:
invidious-db:
companion:
cloudflared:
external: true