Automated invidious docker builds
Invidious CI / build (push) Waiting to run Details

This commit is contained in:
Fijxu 2024-04-27 18:25:22 -04:00
parent de3a444939
commit f9f252c75b
Signed by: Fijxu
GPG Key ID: 32C1DDF333EDA6A4
4 changed files with 80 additions and 43 deletions

38
.forgejo/workflows/ci.yml Normal file
View File

@ -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"

View File

@ -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"

View File

@ -1,4 +1,4 @@
FROM crystallang/crystal:1.8.2-alpine AS builder
FROM crystallang/crystal:1.11.2-alpine AS builder
RUN apk add --no-cache sqlite-static yaml-static

18
nginx.conf Normal file
View File

@ -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
}
}
}