# 2023-07-25
# Invidious configuration.
# This is a revised version of the original work here:
#   https://hub.docker.com/_/nextcloud

version: "3"

services:
  app:
    container_name: invidious-app
    image: quay.io/invidious/invidious:latest
    restart: always
    ports:
      - "8300:3000"
    env_file:
      - ./inv.env
    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: ${INV_DB_USER}
          password: ${INV_DB_PASS}
          host: invidious-db
          port: 5432
        check_tables: true
        # external_port:
        domain:
        # https_only: false
        # statistics_enabled: false
        hmac_key: "${INV_HMAC_KEY}"
    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
    logging:
      options:
        max-size: "1G"
        max-file: "4"
    depends_on:
      - invidious-db

  db:
    container_name: invidious-db
    image: docker.io/library/postgres:14
    restart: always
    volumes:
      - ../../Volumes/Invidious/postgres/data:/var/lib/postgresql/data
      - ../../Volumes/Invidious/postgres/config/sql:/config/sql
      - ../../Volumes/Invidious/postgres/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
    env_file:
      - ./inv.env
    environment:
      POSTGRES_DB: invidious
      POSTGRES_USER: "${INV_DB_USER}"
      POSTGRES_PASSWORD: "${INV_DB_PASS}"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]