From 2b8aef7f9fb2ff44ed22f7d150a4073fcb3b1026 Mon Sep 17 00:00:00 2001 From: Tobias Reisinger Date: Mon, 11 Dec 2023 01:42:57 +0100 Subject: [PATCH] Add tinytinyrss to ansible --- .gitignore | 2 + .../group_vars/all/compose_defaults.yml | 5 ++ _ansible/local-dev.yml | 1 + _ansible/node002.yml | 1 + .../roles/tinytinyrss/files}/nginx.conf | 2 +- _ansible/roles/tinytinyrss/tasks/main.yml | 16 ++++++ _ansible/roles/tinytinyrss/vars/main.yml | 56 +++++++++++++++++++ _ansible/tasks/deploy-common-service.yml | 9 +-- _ansible/tasks/prepare-common-service.yml | 4 ++ _ansible/tasks/start-common-service.yml | 3 + _ansible/templates/docker-compose.yml.j2 | 4 ++ caddy/config/conf.002.d/rss.serguzim.me.conf | 4 -- tt-rss/.env | 15 ----- tt-rss/docker-compose.yml | 51 ----------------- 14 files changed, 95 insertions(+), 78 deletions(-) rename {tt-rss => _ansible/roles/tinytinyrss/files}/nginx.conf (97%) create mode 100644 _ansible/roles/tinytinyrss/tasks/main.yml create mode 100644 _ansible/roles/tinytinyrss/vars/main.yml create mode 100644 _ansible/tasks/prepare-common-service.yml create mode 100644 _ansible/tasks/start-common-service.yml delete mode 100644 caddy/config/conf.002.d/rss.serguzim.me.conf delete mode 100644 tt-rss/.env delete mode 100644 tt-rss/docker-compose.yml diff --git a/.gitignore b/.gitignore index 818050b..78d3e8d 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ /jellyfin/ /tandoor/ /telegraf/ +/tinytinyrss/ /umami/ /uptime-kuma/ /watchtower/ @@ -29,6 +30,7 @@ /caddy/config/conf.002.d/inventory.serguzim.me.conf /caddy/config/conf.002.d/media.serguzim.me.conf /caddy/config/conf.002.d/recipes.serguzim.me.conf +/caddy/config/conf.002.d/rss.serguzim.me.conf /caddy/config/conf.002.d/status.serguzim.me.conf /caddy/config/conf.002.d/tick.serguzim.me.conf /caddy/config/conf.002.d/webdis.huck.serguzim.me.conf diff --git a/_ansible/inventory/group_vars/all/compose_defaults.yml b/_ansible/inventory/group_vars/all/compose_defaults.yml index 11cc331..9738f93 100644 --- a/_ansible/inventory/group_vars/all/compose_defaults.yml +++ b/_ansible/inventory/group_vars/all/compose_defaults.yml @@ -15,6 +15,11 @@ compose_file_main: apps: external: true +compose_file_depends_on: + services: + app: + depends_on: "{{ compose.depends_on }}" + compose_file_env: services: app: diff --git a/_ansible/local-dev.yml b/_ansible/local-dev.yml index 8d7819f..2562648 100644 --- a/_ansible/local-dev.yml +++ b/_ansible/local-dev.yml @@ -18,6 +18,7 @@ - jellyfin - tandoor - telegraf + - tinytinyrss - umami - uptime-kuma - watchtower diff --git a/_ansible/node002.yml b/_ansible/node002.yml index 7a0eac0..e974fdd 100644 --- a/_ansible/node002.yml +++ b/_ansible/node002.yml @@ -13,6 +13,7 @@ - jellyfin - tandoor - telegraf + - tinytinyrss - umami - uptime-kuma - watchtower diff --git a/tt-rss/nginx.conf b/_ansible/roles/tinytinyrss/files/nginx.conf similarity index 97% rename from tt-rss/nginx.conf rename to _ansible/roles/tinytinyrss/files/nginx.conf index 78518bb..7f65153 100644 --- a/tt-rss/nginx.conf +++ b/_ansible/roles/tinytinyrss/files/nginx.conf @@ -17,7 +17,7 @@ http { index index.php; upstream app { - server tt-rss-app:9000; + server tt-rss:9000; } server { diff --git a/_ansible/roles/tinytinyrss/tasks/main.yml b/_ansible/roles/tinytinyrss/tasks/main.yml new file mode 100644 index 0000000..f81b6cb --- /dev/null +++ b/_ansible/roles/tinytinyrss/tasks/main.yml @@ -0,0 +1,16 @@ +--- +- name: Deploy {{ svc.name }} + tags: + - tinytinyrss + - tt-rss + - news + block: + - import_tasks: prepare-common-service.yml + + - name: Copy the nginx-config + ansible.builtin.copy: + src: nginx.conf + dest: "{{ (service_path, 'nginx.conf') | path_join }}" + mode: '0644' + + - import_tasks: start-common-service.yml diff --git a/_ansible/roles/tinytinyrss/vars/main.yml b/_ansible/roles/tinytinyrss/vars/main.yml new file mode 100644 index 0000000..0cb65aa --- /dev/null +++ b/_ansible/roles/tinytinyrss/vars/main.yml @@ -0,0 +1,56 @@ +svc: + domain: "rss.serguzim.me" + name: tinytinyrss + port: 80 + db: + host: "{{ postgres.host }}" + port: "{{ postgres.port }}" + database: tinytinyrss + user: "{{ vault_tinytinyrss.db.user }}" + pass: "{{ vault_tinytinyrss.db.pass }}" + +svc_env: + TTRSS_DB_TYPE: pgsql + TTRSS_DB_HOST: "{{ svc.db.host }}" + TTRSS_DB_NAME: "{{ svc.db.database }}" + TTRSS_DB_USER: "{{ svc.db.user }}" + TTRSS_DB_PASS: "{{ svc.db.pass }}" + + TTRSS_SELF_URL_PATH: https://{{ svc.domain }}/tt-rss/ + +compose: + watchtower: false + image: cthulhoo/ttrss-web-nginx + depends_on: + - tt-rss + env: true + volumes: + - app:/var/www/html:ro + - ./nginx.conf:/etc/nginx/nginx.conf + file: + services: + tt-rss: + image: cthulhoo/ttrss-fpm-pgsql-static + restart: always + env_file: + - service.env + volumes: + - app:/var/www/html + networks: + local-net: + + updater: + image: cthulhoo/ttrss-fpm-pgsql-static + restart: always + env_file: + - service.env + volumes: + - app:/var/www/html + depends_on: + - tt-rss + command: /opt/tt-rss/updater.sh + networks: + local-net: + volumes: + app: + diff --git a/_ansible/tasks/deploy-common-service.yml b/_ansible/tasks/deploy-common-service.yml index 34f0028..be98c17 100644 --- a/_ansible/tasks/deploy-common-service.yml +++ b/_ansible/tasks/deploy-common-service.yml @@ -1,7 +1,2 @@ -- import_tasks: steps/create-service-directory.yml -- import_tasks: steps/template-docker-compose.yml -- import_tasks: steps/template-service-env.yml - when: compose.env|default(False) == True -- include_tasks: steps/template-site-config.yml - when: svc.domain is defined -- import_tasks: steps/start-service.yml +- import_tasks: prepare-common-service.yml +- import_tasks: start-common-service.yml diff --git a/_ansible/tasks/prepare-common-service.yml b/_ansible/tasks/prepare-common-service.yml new file mode 100644 index 0000000..db763e6 --- /dev/null +++ b/_ansible/tasks/prepare-common-service.yml @@ -0,0 +1,4 @@ +- import_tasks: steps/create-service-directory.yml +- import_tasks: steps/template-docker-compose.yml +- import_tasks: steps/template-service-env.yml + when: compose.env|default(False) == True diff --git a/_ansible/tasks/start-common-service.yml b/_ansible/tasks/start-common-service.yml new file mode 100644 index 0000000..f7ffd25 --- /dev/null +++ b/_ansible/tasks/start-common-service.yml @@ -0,0 +1,3 @@ +- include_tasks: steps/template-site-config.yml + when: svc.domain is defined +- import_tasks: steps/start-service.yml diff --git a/_ansible/templates/docker-compose.yml.j2 b/_ansible/templates/docker-compose.yml.j2 index 708c7ed..b5dbe5b 100644 --- a/_ansible/templates/docker-compose.yml.j2 +++ b/_ansible/templates/docker-compose.yml.j2 @@ -1,6 +1,10 @@ {%- set compose_file = compose.file | default({}) -%} {%- set compose_file = compose_file_main | combine(compose_file, recursive=True) -%} +{%- if compose.depends_on | default(False) -%} + {%- set compose_file = compose_file | combine(compose_file_depends_on, recursive=True) -%} +{%- endif -%} + {%- if compose.env | default(False) -%} {%- set compose_file = compose_file | combine(compose_file_env, recursive=True) -%} {%- endif -%} diff --git a/caddy/config/conf.002.d/rss.serguzim.me.conf b/caddy/config/conf.002.d/rss.serguzim.me.conf deleted file mode 100644 index d3dce1a..0000000 --- a/caddy/config/conf.002.d/rss.serguzim.me.conf +++ /dev/null @@ -1,4 +0,0 @@ -rss.serguzim.me { - import default - reverse_proxy tt-rss:80 -} diff --git a/tt-rss/.env b/tt-rss/.env deleted file mode 100644 index f2a2804..0000000 --- a/tt-rss/.env +++ /dev/null @@ -1,15 +0,0 @@ -TTRSS_DB_USER=tinytinyrss -TTRSS_DB_NAME=tinytinyrss -TTRSS_DB_PASS= -TTRSS_DB_TYPE=pgsql -TTRSS_DB_HOST=db.serguzim.me - -TTRSS_SELF_URL_PATH=https://rss.serguzim.me/tt-rss/ - -# You can customize other config.php defines by setting overrides here. -# See app/Dockerfile for complete list. Examples: -# TTRSS_PLUGINS=auth_remote -# TTRSS_SINGLE_USER_MODE=true -# TTRSS_SESSION_COOKIE_LIFETIME=2592000 -# TTRSS_FORCE_ARTICLE_PURGE=30 -# etc, etc. diff --git a/tt-rss/docker-compose.yml b/tt-rss/docker-compose.yml deleted file mode 100644 index dddbfa2..0000000 --- a/tt-rss/docker-compose.yml +++ /dev/null @@ -1,51 +0,0 @@ -version: '3' - -services: - app: - image: cthulhoo/ttrss-fpm-pgsql-static - restart: always - env_file: - - .env - - .secret.env - volumes: - - app:/var/www/html - networks: - local-net: - aliases: - - tt-rss-app - - updater: - image: cthulhoo/ttrss-fpm-pgsql-static - restart: always - env_file: - - .env - - .secret.env - volumes: - - app:/var/www/html - depends_on: - - app - command: /opt/tt-rss/updater.sh - networks: - local-net: - - web-nginx: - image: cthulhoo/ttrss-web-nginx - restart: always - volumes: - - app:/var/www/html:ro - - ./nginx.conf:/etc/nginx/nginx.conf - depends_on: - - app - networks: - local-net: - apps: - aliases: - - tt-rss - -volumes: - app: - -networks: - local-net: - apps: - external: true