diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..d6cca6c --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,68 @@ +--- +invidious_repository: https://github.com/iv-org/invidious.git +invidious_folder: /srv/invidious +docker_compose_options: + version: "3" + services: + invidious: + image: quay.io/invidious/invidious:latest + # image: quay.io/invidious/invidious:latest-arm64 # ARM64/AArch64 devices + restart: unless-stopped + ports: + - "127.0.0.1:3300:3300" + 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: 443 + domain: invi.susurrando.com + https_only: true + statistics_enabled: true + use_quic: true + admins: ["admin"] + banner: "Invidious" + default_user_preferences: + dark_mode: "dark" + local: true + quality_dash: auto + extend_desc: true + registration_enabled: true + login_enabled: true + captcha_enabled: true + port: 3300 + hsts: true + log_level: All + channel_threads: 3 + use_pubsub_feeds: true + healthcheck: + test: wget -nv --tries=1 --spider http://127.0.0.1:3300/api/v1/comments/jNQXAC9IVRw || exit 1 + interval: 30s + timeout: 5s + retries: 2 + depends_on: + - invidious-db + + invidious-db: + image: docker.io/library/postgres:14 + restart: unless-stopped + 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"] + + volumes: + postgresdata: diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..ebd48d8 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,3 @@ +--- +# - name: Refresh aliases +# shell: newaliases diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..8d728a2 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,22 @@ +--- +galaxy_info: + author: Antonio J. Delgado (ajdelgado) + description: TODO - Description + +# issue_tracker_url: https://github.com/uoi-io/ansible-galera/issues + + license: GPLv3 + + min_ansible_version: "2.0" + + github_branch: master + + platforms: + - name: Ubuntu + versions: + - focal + - jammy + + galaxy_tags: []# TODO + +dependencies: [] \ No newline at end of file diff --git a/tasks/configure.yml b/tasks/configure.yml new file mode 100644 index 0000000..94e2a90 --- /dev/null +++ b/tasks/configure.yml @@ -0,0 +1,8 @@ +--- +- name: Ensure Apache virtual host is configured + +- name: Ensure Invicious composition is created + template: + src: templates/docker-compose.yml.j2 + dest: "{{ invidious_folder }}/docker-compose.yml" + backup: yes diff --git a/tasks/install.yml b/tasks/install.yml new file mode 100644 index 0000000..2bb6d02 --- /dev/null +++ b/tasks/install.yml @@ -0,0 +1,10 @@ +--- +- name: Ensure required software is installed + package: + name: + - docker-compose + +- name: Ensure invicous repository is cloned + ansible.builtin.git: + repository: "{{ invidious_repository }}" + dest: "{{ invidious_folder }}" diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..cbe813e --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,5 @@ +--- +- name: Ensure installation + include_tasks: install.yml +- name: Ensure configuration + include_tasks: configure.yml \ No newline at end of file diff --git a/templates/docker-compose.yml.j2 b/templates/docker-compose.yml.j2 new file mode 100644 index 0000000..51b5289 --- /dev/null +++ b/templates/docker-compose.yml.j2 @@ -0,0 +1,5 @@ +# +# Warning! Do not modify manually +# File managed by Ansible role invidious +# +{{ docker_compose_options | to_yaml }}