128 lines
3.6 KiB
YAML
128 lines
3.6 KiB
YAML
networks:
|
|
reverse_proxy:
|
|
external: true
|
|
|
|
volumes:
|
|
linkding_data:
|
|
miniflux_db:
|
|
|
|
services:
|
|
miniflux:
|
|
image: miniflux/miniflux:latest
|
|
restart: unless-stopped
|
|
networks:
|
|
- default
|
|
- reverse_proxy
|
|
environment:
|
|
DATABASE_URL: "user=${MF_DB_USER} password=${MF_DB_PASS} dbname=miniflux host=tasks.miniflux_db sslmode=disable"
|
|
RUN_MIGRATIONS: 1
|
|
BASE_URL: https://rss.alecodes.page
|
|
|
|
LOG_LEVEL: debug
|
|
|
|
OIDC_ENABLED: 1
|
|
DISABLE_LOCAL_AUTH: 1
|
|
OAUTH2_USER_CREATION: 1
|
|
OAUTH2_PROVIDER: oidc
|
|
OAUTH2_OIDC_DISCOVERY_ENDPOINT: https://auth.alecodes.page
|
|
OAUTH2_REDIRECT_URL: https://rss.alecodes.page/oauth2/oidc/callback
|
|
OAUTH2_CLIENT_ID: ${MF_OIDC_CLIENT_ID}
|
|
OAUTH2_CLIENT_SECRET: ${MF_OIDC_CLIENT_SECRET}
|
|
|
|
deploy:
|
|
rollback_config:
|
|
failure_action: continue
|
|
update_config:
|
|
delay: 2s
|
|
failure_action: rollback
|
|
order: start-first
|
|
placement:
|
|
constraints:
|
|
- node.labels.services_kind==${SERVICE_KIND:-common}
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.miniflux.rule=Host(`rss.alecodes.page`)
|
|
- traefik.http.services.miniflux.loadbalancer.server.port=8080
|
|
|
|
miniflux_db:
|
|
image: postgres:latest
|
|
environment:
|
|
POSTGRES_USER: ${MF_DB_USER}
|
|
POSTGRES_PASSWORD: ${MF_DB_PASS}
|
|
POSTGRES_DB: miniflux
|
|
volumes:
|
|
- miniflux_db:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD", "pg_isready", "-U", "miniflux"]
|
|
interval: 10s
|
|
start_period: 30s
|
|
deploy:
|
|
rollback_config:
|
|
failure_action: continue
|
|
update_config:
|
|
delay: 2s
|
|
failure_action: rollback
|
|
order: start-first
|
|
placement:
|
|
constraints:
|
|
- node.labels.services_kind==${SERVICE_KIND:-common}
|
|
|
|
miniflux-archiver:
|
|
image: git.alecodes.page/alecodes/miniflux-archive:latest
|
|
restart: unless-stopped
|
|
command: ["archive", "linkding", "--archive-starred"]
|
|
|
|
environment:
|
|
MFA_MINIFLUX_HOST: http://tasks.miniflux:8080
|
|
MFA_MINIFLUX_TOKEN: ${MFA_MINIFLUX_TOKEN}
|
|
MFA_MINIFLUX_FEED_ID: 16
|
|
|
|
MFA_SERVICE_HOST: http://tasks.linkding:9090
|
|
MFA_SERVICE_TOKEN: ${MFA_SERVICE_TOKEN}
|
|
|
|
# MFA_CRON: "0 */6 * * *"
|
|
deploy:
|
|
rollback_config:
|
|
failure_action: continue
|
|
update_config:
|
|
delay: 2s
|
|
failure_action: rollback
|
|
order: start-first
|
|
placement:
|
|
constraints:
|
|
- node.labels.services_kind==${SERVICE_KIND:-common}
|
|
|
|
linkding:
|
|
image: sissbruecker/linkding:latest
|
|
restart: unless-stopped
|
|
networks:
|
|
- default
|
|
- reverse_proxy
|
|
volumes:
|
|
- linkding_data:/etc/linkding/data"
|
|
environment:
|
|
LD_ENABLE_OIDC: "True"
|
|
OIDC_OP_AUTHORIZATION_ENDPOINT: https://auth.alecodes.page/api/oidc/authorization
|
|
OIDC_OP_TOKEN_ENDPOINT: https://auth.alecodes.page/api/oidc/token
|
|
OIDC_OP_USER_ENDPOINT: https://auth.alecodes.page/api/oidc/userinfo
|
|
OIDC_OP_JWKS_ENDPOINT: https://auth.alecodes.page/jwks.json
|
|
|
|
OIDC_RP_CLIENT_ID: ${LD_OIDC_CLIENT_ID}
|
|
OIDC_RP_CLIENT_SECRET: ${LD_OIDC_CLIENT_SECRET}
|
|
|
|
LD_CSRF_TRUSTED_ORIGINS: https://bookmarks.alecodes.page
|
|
|
|
deploy:
|
|
rollback_config:
|
|
failure_action: continue
|
|
update_config:
|
|
delay: 2s
|
|
failure_action: rollback
|
|
order: start-first
|
|
placement:
|
|
constraints:
|
|
- node.labels.services_kind==${SERVICE_KIND:-common}
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.linkding.rule=Host(`bookmarks.alecodes.page`)
|
|
- traefik.http.services.linkding.loadbalancer.server.port=9090
|