feat: replace fresh rss for miniflux

This commit is contained in:
Alexander Navarro 2024-12-11 16:46:20 -03:00
parent 02d6ef1411
commit 0b5392d812
3 changed files with 110 additions and 83 deletions

View file

@ -1,40 +1,63 @@
networks:
reverse-proxy:
external: true
miniflux:
volumes:
fresh_rss_data:
fresh_rss_extensions:
linkding_data:
miniflux_db:
services:
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
hostname: freshrss
restart: unless-stopped
miniflux:
image: miniflux/miniflux:latest
networks:
- reverse-proxy
logging:
options:
max-size: 10m
volumes:
- fresh_rss_data:/var/www/FreshRSS/data
- fresh_rss_extensions:/var/www/FreshRSS/extensions
- miniflux
- reverse-proxy
environment:
TZ: America/Santiago
CRON_MIN: '3,33'
TRUSTED_PROXY: 10.0.10.0/24
DATABASE_URL: user='${MF_DB_USER}' password='${MF_DB_PASS}' host='rss_miniflux_db.1.etoiq98u19mrfhu83pj9p6wfy' dbname=miniflux sslmode=disable
RUN_MIGRATIONS: 1
BASE_URL: https://rss.alecodes.page
OIDC_ENABLED: 1
OIDC_PROVIDER_METADATA_URL: https://auth.alecodes.page/.well-known/openid-configuration
OIDC_CLIENT_ID: ${FR_OIDC_CLIENT_ID}
OIDC_CLIENT_SECRET: ${FR_OIDC_CLIENT_SECRET}
OIDC_CLIENT_CRYPTO_KEY: ${FR_OIDC_CLIENT_CRYPTO_KEY}
OIDC_REMOTE_USER_CLAIM: preferred_username
OIDC_SCOPES: openid groups email profile
OIDC_X_FORWARDED_HEADERS: X-Forwarded-Host X-Forwarded-Port X-Forwarded-Proto
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}
LOG_LEVEl: debug
LOG_FILE: stdout
deploy:
rollback_config:
failure_action: continue
update_config:
delay: 2s
failure_action: continue
order: start-first
placement:
constraints:
- node.labels.services_kind==${SERVICE_KIND:-common}
labels:
- traefik.enable=true
- traefik.http.routers.freshrss.rule=Host(`rss.alecodes.page`)
- traefik.http.services.freshrss.loadbalancer.server.port=8080
miniflux_db:
image: postgres:15
networks:
- miniflux
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
@ -45,10 +68,7 @@ services:
placement:
constraints:
- node.labels.services_kind==${SERVICE_KIND:-common}
labels:
- traefik.enable=true
- traefik.http.routers.freshrss.rule=Host(`rss.alecodes.page`)
- traefik.http.services.freshrss.loadbalancer.server.port=80
linkding:
image: sissbruecker/linkding:latest
restart: unless-stopped

55
files/docker/rss/env.yaml Normal file
View file

@ -0,0 +1,55 @@
SERVICE_KIND: common
MF_OIDC_CLIENT_ID: !vault |
$ANSIBLE_VAULT;1.1;AES256
64373465396361306338353037613339383136643235633433396436313265343565343335386439
6364653962636630393031326266626631353163656364620a366663306633623163306631323836
31666165343039613838656236333232336631373139626230633266306134613665366135363763
6239303930306435390a326263653938343931323962343935323136386633376437666231333163
62623366393664643136393638323665313263383934646565366331663163653862386635333562
63396636646663326637333563303734313336653038323334646164306336393562313030353063
61643537393062336438623762633331666562303335393434666437336636613935626435363631
33386337336365353733
MF_OIDC_CLIENT_SECRET: !vault |
$ANSIBLE_VAULT;1.1;AES256
31666165626661336330303635343437313563343234383966383862653735643734633130626631
3335656237326535333132666432646563386131303636350a626534653338343236313636623234
34323364333834376334383431323434643634363336363333306634383232393132316662333134
6266653032646635380a313633363439613637303636316436383030636132356233306661323734
35663535373663373364616130333334613366616432616162323961666136383236353466373831
61386464313533643464323762333639316631393364393062666566666233623364376334376139
31366363376564353135646134396666373166386461376162656231323335396539323533643734
39306533333436363361
MF_DB_USER: miniflux
MF_DB_PASS: !vault |
$ANSIBLE_VAULT;1.1;AES256
34646261613038636238336165356531383461326435376662613865613030396364326438396531
3833303736653266653134326132386433303131356136630a623732303863646337326563383939
34653961306431626565393933323863346262386666333432373135623130376530663930646561
6166316462336162660a366562316333383264336133353434326165363165353138336162316461
31643962306561396632396663363565386666393531313064353633633138333838616666333438
62396465636436353136393939633638326435646161313561373038636364626562373561616663
36613061663764636466386637356533623131303762303436393532633035323162623063643231
38356364613530393766363636663637373735306664376166613934633561653466393065653535
30646634333863353332376166663836653331393462336337306566346565626133343065376534
30356633323139653332366234643034613465323139663764613938333165626137663138626661
323164373034316262646265326565303638
LD_OIDC_CLIENT_ID: !vault |
$ANSIBLE_VAULT;1.1;AES256
32386332636132656536326132666138336230393965333637336234656663393531366266653037
6365386466343938303532353361626335346335353965660a313132623532343063393565393136
62363735373661333539396531663338343637363836666635626562363761613738303231636637
3431356534326662320a663130363739643538643031643534613835363737666662303138313737
32366361313137306334323965333066656164393830656334303038356461363530303731653161
33633832626335376263616430306565633664626163396430376239353838313364386364353037
64323765653835343263353739353938373133363464326566346162343536353437623261643139
36383363636464613138
LD_OIDC_CLIENT_SECRET: !vault |
$ANSIBLE_VAULT;1.1;AES256
33343032383063343035316333613033646538643564386337396336623134656333393962386262
3936383566346433623766306666363165323562353561330a613333656264626337396666666136
35343638326334343539616462646338643066303138616162623964383363393361366563653737
6539333565313438300a653733613535643264386532333830343264626665363234653834343036
66393935653363633837363534383365303166313061306532613366656132663264306530666133
37306462336534393436373836656137663566623031646165376262633535383462373663363166
31366234373764373031373161653736383336613336646631333562333864663639653263333762
61343031656664636431

View file

@ -21,64 +21,16 @@
# name: "{{ project_name + '_db_password'}}"
# secret: "{{ random_hash.stdout }}"
- name: Load environment variables
include_vars:
file: ../../files/docker/rss/env.yaml
name: env_vars
- name: Deploy RSS Feed
environment:
SERVICE_KIND: common
FR_OIDC_CLIENT_ID: !vault |
$ANSIBLE_VAULT;1.1;AES256
64373465396361306338353037613339383136643235633433396436313265343565343335386439
6364653962636630393031326266626631353163656364620a366663306633623163306631323836
31666165343039613838656236333232336631373139626230633266306134613665366135363763
6239303930306435390a326263653938343931323962343935323136386633376437666231333163
62623366393664643136393638323665313263383934646565366331663163653862386635333562
63396636646663326637333563303734313336653038323334646164306336393562313030353063
61643537393062336438623762633331666562303335393434666437336636613935626435363631
33386337336365353733
FR_OIDC_CLIENT_SECRET: !vault |
$ANSIBLE_VAULT;1.1;AES256
31666165626661336330303635343437313563343234383966383862653735643734633130626631
3335656237326535333132666432646563386131303636350a626534653338343236313636623234
34323364333834376334383431323434643634363336363333306634383232393132316662333134
6266653032646635380a313633363439613637303636316436383030636132356233306661323734
35663535373663373364616130333334613366616432616162323961666136383236353466373831
61386464313533643464323762333639316631393364393062666566666233623364376334376139
31366363376564353135646134396666373166386461376162656231323335396539323533643734
39306533333436363361
FR_OIDC_CLIENT_CRYPTO_KEY: !vault |
$ANSIBLE_VAULT;1.1;AES256
65353837666236363262613131653664633166646236363133356335636263363361373934626166
3935346135393061346566326130643134383363323433370a316131376666626139373430393135
65653464646336316135323965363734306131313430646164363533343465633231363865333062
3061383330383435650a363338666164336663383462333130623963376332333964306565326262
30616562333734363938373739636262363461313636386634373565373236383835383336376435
31633938643738303464633133363365316365376237313237376436393835623366346665303964
38323132643665613361643565636130303166386339363264306234616366313462616461316632
34633339613264353632303232633962303361343630653633383234663536323361646639383933
37333837383538613866663564616334636330636431663936373238613862316239663566333737
65333264666234643765623636393832363763343339386266316365623331333132303361336566
613766343761383861323138623536366431
LD_OIDC_CLIENT_ID: !vault |
$ANSIBLE_VAULT;1.1;AES256
32386332636132656536326132666138336230393965333637336234656663393531366266653037
6365386466343938303532353361626335346335353965660a313132623532343063393565393136
62363735373661333539396531663338343637363836666635626562363761613738303231636637
3431356534326662320a663130363739643538643031643534613835363737666662303138313737
32366361313137306334323965333066656164393830656334303038356461363530303731653161
33633832626335376263616430306565633664626163396430376239353838313364386364353037
64323765653835343263353739353938373133363464326566346162343536353437623261643139
36383363636464613138
LD_OIDC_CLIENT_SECRET: !vault |
$ANSIBLE_VAULT;1.1;AES256
33343032383063343035316333613033646538643564386337396336623134656333393962386262
3936383566346433623766306666363165323562353561330a613333656264626337396666666136
35343638326334343539616462646338643066303138616162623964383363393361366563653737
6539333565313438300a653733613535643264386532333830343264626665363234653834343036
66393935653363633837363534383365303166313061306532613366656132663264306530666133
37306462336534393436373836656137663566623031646165376262633535383462373663363166
31366234373764373031373161653736383336613336646631333562333864663639653263333762
61343031656664636431
environment: "{{ env_vars }}"
community.docker.docker_stack:
state: present
prune: true
name: "{{ project_name }}"
compose:
- "{{ lookup('file', '../../files/docker/rss/docker-stack.yaml') | from_yaml }}"