deployment/stacks/miniflux.yml

94 lines
2.0 KiB
YAML

version: '3.4'
services:
app:
image: 'miniflux/miniflux:2.0.42'
command: '/usr/bin/miniflux -c /etc/miniflux.conf'
deploy:
mode: 'replicated'
replicas: 1
placement:
constraints:
- 'node.labels.class.miniflux==true'
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.miniflux.rule=Host(`nws.rustybever.be`)'
- 'traefik.http.routers.miniflux.tls=true'
- 'traefik.http.routers.miniflux.tls.certresolver=letsEncrypt'
- 'traefik.http.services.miniflux.loadbalancer.server.port=8080'
configs:
- source: miniflux_v2
target: /etc/miniflux.conf
environment:
- 'ADMIN_USERNAME_FILE=/run/secrets/miniflux_admin_username'
- 'ADMIN_PASSWORD_FILE=/run/secrets/miniflux_admin_password_v2'
networks:
- default
- public
secrets:
- miniflux_admin_username
- miniflux_admin_password_v2
db:
image: 'postgres:14.7-alpine'
deploy:
mode: 'replicated'
replicas: 1
placement:
constraints:
- 'node.labels.class.miniflux==true'
environment:
- 'POSTGRES_DB=miniflux'
- 'POSTGRES_USER=miniflux'
- 'POSTGRES_PASSWORD=miniflux'
volumes:
- 'db-data:/var/lib/postgresql/data'
reddit:
image: 'johnny5w/reddit-top-rss:latest'
deploy:
mode: 'replicated'
replicas: 1
placement:
constraints:
- 'node.labels.class.miniflux==true'
hub:
image: 'diygod/rsshub:latest'
deploy:
mode: 'replicated'
replicas: 1
placement:
constraints:
- 'node.labels.class.miniflux==true'
environment:
# For shorter URLs inside miniflux
- 'PORT=80'
- 'IG_USERNAME'
- 'IG_PASSWORD'
configs:
miniflux_v2:
external: true
networks:
public:
external: true
secrets:
miniflux_admin_username:
external: true
miniflux_admin_password_v2:
external: true
volumes:
db-data: