From ececab44b443f8dbd52304ab7d46af9b8bbdd0e5 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sun, 18 Oct 2020 15:48:50 +0200 Subject: [PATCH] bundles/miniflux: introduce --- PORT_MAP.md | 2 +- bundles/miniflux/files/miniflux.conf | 6 ++++ bundles/miniflux/files/override.conf | 2 ++ bundles/miniflux/items.py | 30 ++++++++++++++++++ bundles/miniflux/metadata.py | 46 ++++++++++++++++++++++++++++ nodes/htz/ex42-1048908.py | 16 +++------- 6 files changed, 89 insertions(+), 13 deletions(-) create mode 100644 bundles/miniflux/files/miniflux.conf create mode 100644 bundles/miniflux/files/override.conf create mode 100644 bundles/miniflux/items.py create mode 100644 bundles/miniflux/metadata.py diff --git a/PORT_MAP.md b/PORT_MAP.md index 9f3d235..39ad7cb 100644 --- a/PORT_MAP.md +++ b/PORT_MAP.md @@ -32,7 +32,6 @@ Rule of thumb: keep ports below 10000 free for stuff that reserves ports. | 6667 | | bitlbee | | 8010 | | matrix-media-repo | | 8020 | | mautrix-whatsapp | -| 8080 | | miniflux | | 8184 | | matrix-dimension | | 11332-11334 | | rspamd | | 20000 | mx-puppet-discord | Bridge | @@ -43,6 +42,7 @@ Rule of thumb: keep ports below 10000 free for stuff that reserves ports. | 22010 | jenkins-ci | Jenkins CI | | 22020 | travelynx | Travelynx Web | | 22030 | octoprint | OctoPrint Web Interface | +| 22040 | miniflux | Miniflux Web Interface | | 45923 | | grafana | ## UDP diff --git a/bundles/miniflux/files/miniflux.conf b/bundles/miniflux/files/miniflux.conf new file mode 100644 index 0000000..4c9be0a --- /dev/null +++ b/bundles/miniflux/files/miniflux.conf @@ -0,0 +1,6 @@ +DATABASE_URL="user=miniflux password=${dbpassword} dbname=miniflux sslmode=disable host=localhost" +LISTEN_ADDR=127.0.0.1:22040 +POLLING_FREQUENCY=15 +BATCH_SIZE=100 +WORKER_POOL_SIZE=5 +BASE_URL=https://${base_url}/ diff --git a/bundles/miniflux/files/override.conf b/bundles/miniflux/files/override.conf new file mode 100644 index 0000000..8b383d4 --- /dev/null +++ b/bundles/miniflux/files/override.conf @@ -0,0 +1,2 @@ +[Service] +ExecStartPre=/usr/bin/miniflux -migrate diff --git a/bundles/miniflux/items.py b/bundles/miniflux/items.py new file mode 100644 index 0000000..c1f1b47 --- /dev/null +++ b/bundles/miniflux/items.py @@ -0,0 +1,30 @@ +files = { + '/etc/miniflux.conf': { + 'content_type': 'mako', + 'context': { + 'dbpassword': node.metadata['postgresql']['users']['miniflux']['password'], + 'base_url': node.metadata['miniflux']['domain'], + }, + 'triggers': { + 'svc_systemd:miniflux:restart', + }, + }, + '/etc/systemd/system/miniflux.service.d/bundlewrap.conf': { + 'source': 'override.conf', + 'triggers': { + 'action:systemd-reload', + 'svc_systemd:miniflux:restart', + }, + }, +} + +svc_systemd = { + 'miniflux': { + 'needs': { + 'file:/etc/miniflux.conf', + 'file:/etc/systemd/system/miniflux.service.d/bundlewrap.conf', + 'pkg_apt:miniflux', + 'postgres_role:miniflux', + }, + }, +} diff --git a/bundles/miniflux/metadata.py b/bundles/miniflux/metadata.py new file mode 100644 index 0000000..1bfddca --- /dev/null +++ b/bundles/miniflux/metadata.py @@ -0,0 +1,46 @@ +defaults = { + 'apt': { + 'packages': { + 'miniflux': {}, + }, + 'repos': { + 'miniflux': { + 'items': { + 'deb https://apt.miniflux.app/ /', + }, + }, + }, + }, + 'postgresql': { + 'users': { + 'miniflux': { + 'password': repo.vault.password_for('{} postgresql miniflux'.format(node.name)), + }, + }, + 'databases': { + 'miniflux': { + 'owner': 'miniflux', + }, + }, + }, +} + + +@metadata_reactor +def nginx(metadata): + if not node.has_bundle('nginx'): + raise DoNotRunAgain + + return { + 'nginx': { + 'vhosts': { + metadata.get('miniflux/domain'): { + 'proxy': { + '/': { + 'target': 'http://127.0.0.1:22040', + }, + }, + }, + }, + }, + } diff --git a/nodes/htz/ex42-1048908.py b/nodes/htz/ex42-1048908.py index 19a0d9d..36adf43 100644 --- a/nodes/htz/ex42-1048908.py +++ b/nodes/htz/ex42-1048908.py @@ -4,6 +4,7 @@ nodes['htz.ex42-1048908'] = { 'jenkins-ci', 'matrix-synapse', 'mautrix-telegram', + 'miniflux', 'mx-puppet-discord', 'nodejs', 'riot-web', @@ -50,11 +51,6 @@ nodes['htz.ex42-1048908'] = { 'deb http://deb.debian.org/debian {os_release}-backports main', ], }, - 'miniflux': { - 'items': { - 'deb https://apt.miniflux.app/ /', - }, - }, 'rspamd': { 'items': { 'deb [arch=amd64] http://rspamd.com/apt-stable/ {os_release} main', @@ -137,6 +133,9 @@ nodes['htz.ex42-1048908'] = { 'bot_token': vault.decrypt('encrypt$gAAAAABfVK51ErJ6gfsOOkbRxSHDnVYmf7EihAQf7Uwj9og3TlAw64WRsA6ZVEgTSvOdLB3SMKZ-cTEhwkCOpbymq-_WLhes-hZALhN-H_oXHaxTQErJ0lARynKmjM-4ZhoGlUWlfh4Q'), }, }, + 'miniflux': { + 'domain': 'rss.kunsmann.eu', + }, 'mx-puppet-discord': { 'homeserver': { 'domain': 'franzi.business', @@ -197,13 +196,6 @@ nodes['htz.ex42-1048908'] = { }, }, }, - 'rss.kunsmann.eu': { - 'proxy': { - '/': { - 'target': 'http://localhost:8080/', - }, - }, - }, 'travelynx.franzi.business': { 'proxy': { '/': {