diff --git a/playbooks/all.yml b/playbooks/all.yml index 1d920e3..b924296 100644 --- a/playbooks/all.yml +++ b/playbooks/all.yml @@ -12,6 +12,7 @@ - {role: 'mastodon', tags: 'mastodon'} - {role: 'seafile', tags: 'seafile'} - {role: 'jitsi', tags: 'jitsi'} + - {role: 'miniflux', tags: 'miniflux'} - name: Setup dataserver hosts: dataserver roles: diff --git a/roles/forgejo/templates/docker-compose.yml.j2 b/roles/forgejo/templates/docker-compose.yml.j2 index a72e115..6e40051 100644 --- a/roles/forgejo/templates/docker-compose.yml.j2 +++ b/roles/forgejo/templates/docker-compose.yml.j2 @@ -24,7 +24,7 @@ services: - traefik.http.routers.forgejo.rule=Host(`git.pizzapim.nl`) - traefik.http.routers.forgejo.tls=true - traefik.http.routers.forgejo.tls.certresolver=pizzapim - - traefik.tcp.routers.forgejo-ssh.service=forgejo + - traefik.tcp.routers.forgejo.service=forgejo - traefik.http.services.forgejo.loadbalancer.server.port=3000 - traefik.tcp.routers.forgejo-ssh.rule=HostSNI(`*`) diff --git a/roles/miniflux/meta/main.yml b/roles/miniflux/meta/main.yml new file mode 100644 index 0000000..6b03734 --- /dev/null +++ b/roles/miniflux/meta/main.yml @@ -0,0 +1,4 @@ +dependencies: + - role: common + - role: docker + - role: traefik diff --git a/roles/miniflux/tasks/main.yml b/roles/miniflux/tasks/main.yml new file mode 100644 index 0000000..1930c55 --- /dev/null +++ b/roles/miniflux/tasks/main.yml @@ -0,0 +1,17 @@ +- name: Create app directory + file: + path: "{{ service_dir }}" + state: directory +- name: Copy Docker Compose script + template: + src: "{{ role_path }}/templates/docker-compose.yml.j2" + dest: "{{ service_dir }}/docker-compose.yml" +- name: Create data directory + file: + path: "{{ data_dir }}" + state: directory +- name: Start the Docker Compose + docker_compose: + project_src: "{{ service_dir }}" + pull: true + remove_orphans: true diff --git a/roles/miniflux/templates/docker-compose.yml.j2 b/roles/miniflux/templates/docker-compose.yml.j2 new file mode 100644 index 0000000..dfed923 --- /dev/null +++ b/roles/miniflux/templates/docker-compose.yml.j2 @@ -0,0 +1,39 @@ +version: '3.4' + +services: + miniflux: + image: miniflux/miniflux:latest + container_name: miniflux-web + depends_on: + - db + environment: + - DATABASE_URL=postgres://{{ database_user }}:{{ database_password }}@db/miniflux?sslmode=disable + networks: + - default + - traefik + labels: + - traefik.http.routers.miniflux.entrypoints=websecure + - traefik.http.routers.miniflux.rule=Host(`rss.pizzapim.nl`) + - traefik.http.routers.miniflux.tls=true + - traefik.http.routers.miniflux.tls.certresolver=pizzapim + - traefik.tcp.routers.miniflux.service=miniflux + - traefik.http.services.miniflux.loadbalancer.server.port=8080 + + db: + image: postgres:15 + container_name: miniflux_db + environment: + - POSTGRES_USER={{ database_user }} + - POSTGRES_PASSWORD={{ database_password }} + volumes: + - {{ data_dir }}:/var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready", "-U", "miniflux"] + interval: 10s + start_period: 30s + networks: + - default + +networks: + traefik: + external: true diff --git a/roles/miniflux/vars/main.yml b/roles/miniflux/vars/main.yml new file mode 100644 index 0000000..d763742 --- /dev/null +++ b/roles/miniflux/vars/main.yml @@ -0,0 +1,13 @@ +service_name: miniflux +service_dir: "{{ base_service_dir }}/{{ service_name }}" +data_dir: "{{ base_data_dir }}/{{ service_name }}" + +database_user: miniflux +database_password: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 61306531373964613837363565376137363538626632613564313266396231346233356130383531 + 3030336565333663643233303034336366326632386666650a303232373838353065333930643633 + 34326663363833303666666538386165613734303939343062376230366666346134626533396165 + 3837383263353264640a633865653865383866303431383762653363656133656135626238366539 + 64633732333230303339626234623534656463353232373234366161356364313566336637316339 + 6634373066326536393064643162663139323835303233333131 diff --git a/roles/nsd/files/zones/pizzapim.nl b/roles/nsd/files/zones/pizzapim.nl index 52493ab..82f9885 100644 --- a/roles/nsd/files/zones/pizzapim.nl +++ b/roles/nsd/files/zones/pizzapim.nl @@ -1,7 +1,7 @@ $ORIGIN pizzapim.nl. $TTL 60 -pizzapim.nl. IN SOA ns.pizzapim.nl. pim.kunis.nl. 2023011400 1800 3600 1209600 3600 +pizzapim.nl. IN SOA ns.pizzapim.nl. pim.kunis.nl. 2023011700 1800 3600 1209600 3600 NS ns.pizzapim.nl. NS ns0.transip.net. @@ -23,3 +23,4 @@ social IN CNAME www.pizzapim.nl. dav IN CNAME www.pizzapim.nl. git IN CNAME www.pizzapim.nl. meet IN CNAME www.pizzapim.nl. +rss IN CNAME www.pizzapim.nl.