aboutsummaryrefslogtreecommitdiffstats
path: root/roles/invidious/templates/opt
diff options
context:
space:
mode:
authorStonewall Jackson <stonewall@sacredheartsc.com>2023-02-04 01:23:43 -0500
committerStonewall Jackson <stonewall@sacredheartsc.com>2023-02-04 01:52:13 -0500
commit0261e875679f1bf63c8d689da7fc7e014597885d (patch)
tree3f19cd74a0c1070944f75437f30b098d6ef2ffcb /roles/invidious/templates/opt
downloadselfhosted-0261e875679f1bf63c8d689da7fc7e014597885d.tar.gz
selfhosted-0261e875679f1bf63c8d689da7fc7e014597885d.zip
initial commit
Diffstat (limited to 'roles/invidious/templates/opt')
-rw-r--r--roles/invidious/templates/opt/invidious/invidious-db-cleanup.sh.j211
-rw-r--r--roles/invidious/templates/opt/invidious/invidious-update.sh.j242
-rw-r--r--roles/invidious/templates/opt/invidious/invidious/config/config.yml.j234
3 files changed, 87 insertions, 0 deletions
diff --git a/roles/invidious/templates/opt/invidious/invidious-db-cleanup.sh.j2 b/roles/invidious/templates/opt/invidious/invidious-db-cleanup.sh.j2
new file mode 100644
index 0000000..1c9ffe1
--- /dev/null
+++ b/roles/invidious/templates/opt/invidious/invidious-db-cleanup.sh.j2
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+set -eu
+
+PG_HOST={{ invidious_db_host | quote }}
+PG_USER={{ invidious_db_user | quote }}
+PG_NAME={{ invidious_db_name | quote }}
+
+export PGPASSFILE={{ invidious_home | quote }}/.pgpass
+
+psql -qtA -h "$PG_HOST" "$PG_NAME" "$PG_USER" -c {{ invidious_db_cleanup_sql | join('; ') | quote }}
diff --git a/roles/invidious/templates/opt/invidious/invidious-update.sh.j2 b/roles/invidious/templates/opt/invidious/invidious-update.sh.j2
new file mode 100644
index 0000000..561e45e
--- /dev/null
+++ b/roles/invidious/templates/opt/invidious/invidious-update.sh.j2
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+set -eu
+
+SRCDIR={{ invidious_install_dir | quote }}
+INVIDIOUS_USER={{ invidious_user | quote }}
+CRYSTAL_HOME={{ invidious_crystal_install_dir | quote }}
+
+export PATH="${PATH}:${CRYSTAL_HOME}/bin"
+
+as-invidious() {
+ runuser -u "$INVIDIOUS_USER" -- "$@"
+}
+
+if (( $EUID != 0 )); then
+ echo 'must be superuser' 1>&2
+ exit 1
+fi
+
+cd "$SRCDIR"
+
+old_rev=$(git rev-list --max-count=1 --abbrev-commit HEAD)
+
+as-invidious git fetch
+
+local_rev=$(git rev-parse HEAD)
+upstream_rev=$(git rev-parse '@{u}')
+
+echo "local: $local_rev"
+echo "upstream: $upstream_rev"
+
+if [ "$local_rev" != "$upstream_rev" ]; then
+ as-invidious git pull --ff-only
+
+ echo "building invidious..."
+ as-invidious shards install --production
+ as-invidious crystal build src/invidious.cr -Ddisable_quic --release
+
+ systemctl restart invidious
+else
+ echo "invidious is already up to date"
+fi
diff --git a/roles/invidious/templates/opt/invidious/invidious/config/config.yml.j2 b/roles/invidious/templates/opt/invidious/invidious/config/config.yml.j2
new file mode 100644
index 0000000..e74caee
--- /dev/null
+++ b/roles/invidious/templates/opt/invidious/invidious/config/config.yml.j2
@@ -0,0 +1,34 @@
+log_level: warn
+domain: {{ invidious_server_name }}
+external_port: 443
+channel_threads: {{ invidious_channel_threads }}
+feed_threads: {{ invidious_channel_threads }}
+database_url: postgres://{{ invidious_db_user }}:{{ invidious_db_password}}@{{ invidious_db_host }}/{{ invidious_db_name }}?sslmode=verify-full
+use_pubsub_feeds: {{ invidious_use_pubsub_feeds }}
+hmac_key: {{ invidious_hmac_key }}
+https_only: true
+registration_enabled: {{ invidious_registration_enabled }}
+admin_email: {{ invidious_admin_email }}
+port: {{ invidious_port }}
+host_binding: 127.0.0.1
+popular_enabled: {{ invidious_popular_enabled }}
+full_refresh: {{ invidious_full_refresh }}
+captcha_enabled: false
+check_tables: true
+cache_annotations: true
+
+default_user_preferences:
+ dark_mode: {{ invidious_default_dark_mode }}
+ autoplay: {{ invidious_default_autoplay }}
+ continue: {{ invidious_default_continue }}
+ continue_autoplay: {{ invidious_default_continue_autoplay }}
+ local: {{ invidious_default_local }}
+ quality: {{ invidious_default_quality }}
+ quality_dash: {{ invidious_default_quality_dash }}
+ locale: {{ invidious_default_locale }}
+ region: {{ invidious_default_region }}
+ related_videos: {{ invidious_default_related_videos }}
+ video_loop: {{ invidious_default_video_loop }}
+ player_style: {{ invidious_default_player_style }}
+ default_home: {{ invidious_default_home }}
+ feed_menu: {{ invidious_feed_menu | to_yaml }}