diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml new file mode 100644 index 00000000..e08327f7 --- /dev/null +++ b/.forgejo/workflows/ci.yml @@ -0,0 +1,38 @@ +name: 'Invidious CI' + +on: + # workflow_dispatch: + # inputs: {} + schedule: + - cron: '0 7 * * 0' + push: + branches: ["*"] + +jobs: + build: + runs-on: runner + + steps: + - uses: https://code.forgejo.org/actions/checkout@v2 + + - uses: https://code.forgejo.org/docker/setup-buildx-action@v3 + name: Setup Docker BuildX system + + - name: Login to Docker Container Registry + uses: https://code.forgejo.org/docker/login-action@v3.1.0 + with: + registry: git.nadeko.net + username: ${{ secrets.USERNAME }} + password: ${{ secrets.TOKEN }} + + - uses: https://code.forgejo.org/docker/build-push-action@v5 + name: Build images + with: + context: . + file: docker/Dockerfile + tags: git.nadeko.net/fijxu/invidious:latest + platforms: linux/amd64 + push: true + build-args: | + "release=1" + diff --git a/docker-compose.yml b/docker-compose.yml index afda8726..63b2d4f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,49 +7,30 @@ version: "3" services: - invidious: - build: - context: . - dockerfile: docker/Dockerfile + invidious-refresher: + image: git.nadeko.net/invidious/invidious:latest 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 - hmac_key: "CHANGE_ME!!" - healthcheck: - test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1 - interval: 30s - timeout: 5s - retries: 2 - - invidious-db: - image: docker.io/library/postgres:14 - restart: unless-stopped + - "127.0.0.1:5432:5432" 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"] + - ./config/config.conf:/etc/config/invidious-refresher.conf -volumes: - postgresdata: + invidious: + image: git.nadeko.net/invidious/invidious:latest + restart: unless-stopped + ports: + - "127.0.0.1:5432:5432" + deploy: + replicas: 4 + volumes: + - ./config/config.conf:/etc/config/config.conf + + invidious-nginx: + image: nginx:latest + restart: unless-stopped + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + depends_on: + - invidious + ports: + - "127.0.0.1:50011:3000" diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 00000000..58d64b71 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,18 @@ +user www-data; +events { + worker_connections 1000; +} +http { + server { + listen 3000; + listen [::]:3000; + access_log off; + location / { + resolver 127.0.0.11; + set $backend "invidious"; + proxy_pass http://$backend:3000; + proxy_http_version 1.1; # to keep alive + proxy_set_header Connection ""; # to keep alive + } + } +}