Skip to content

Commit 1649885

Browse files
committed
miniflux
1 parent 6d188ba commit 1649885

File tree

7 files changed

+195
-13
lines changed

7 files changed

+195
-13
lines changed

ansible/db.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
authentik: "cross/data/apps/authentik:postgres_password"
1515
matrix: "cross/data/apps/matrix:postgres_password"
1616
sonarqube: "cross/data/apps/sonarqube:postgres_password"
17-
kestra: "cross/data/apps/kestra:postgres_password"
1817
immich: "cross/data/apps/immich:postgres_password"
18+
miniflux: "cross/data/apps/miniflux:postgres_password"
1919

2020
tasks:
2121
- name: Include vault secrets loading task

ansible/inventory/host_vars/db.yml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,6 @@ db:
3333
lc_collate: en_US.UTF-8
3434
lc_ctype: en_US.UTF-8
3535

36-
- name: kestra_db
37-
owner: kestra_user
38-
encoding: UTF8
39-
lc_collate: en_US.UTF-8
40-
lc_ctype: en_US.UTF-8
41-
4236
- name: immich_db
4337
owner: immich_user
4438
encoding: UTF8
@@ -49,6 +43,12 @@ db:
4943
- cube
5044
- earthdistance
5145

46+
- name: miniflux_db
47+
owner: miniflux_user
48+
encoding: UTF8
49+
lc_collate: en_US.UTF-8
50+
lc_ctype: en_US.UTF-8
51+
5252
users:
5353
- name: invidious_user
5454
password: "{{ _secrets.postgres_users.invidious }}"
@@ -82,18 +82,18 @@ db:
8282
table_privs: ALL
8383
sequence_privs: ALL
8484

85-
- name: kestra_user
86-
password: "{{ _secrets.postgres_users.kestra }}"
85+
- name: immich_user
86+
password: "{{ _secrets.postgres_users.immich }}"
8787
databases:
88-
- kestra_db
88+
- immich_db
8989
privileges: ALL
9090
table_privs: ALL
9191
sequence_privs: ALL
9292

93-
- name: immich_user
94-
password: "{{ _secrets.postgres_users.immich }}"
93+
- name: miniflux_user
94+
password: "{{ _secrets.postgres_users.miniflux }}"
9595
databases:
96-
- immich_db
96+
- miniflux_db
9797
privileges: ALL
9898
table_privs: ALL
9999
sequence_privs: ALL

ansible/inventory/host_vars/pihole.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ pihole:
4646
- { ip: 192.168.0.81, domain: "tools.local.ildoc.it"}
4747
- { ip: 192.168.0.81, domain: "immich.local.ildoc.it"}
4848
- { ip: 192.168.0.81, domain: "pdf.local.ildoc.it"}
49+
- { ip: 192.168.0.81, domain: "miniflux.local.ildoc.it"}
4950

5051
- { ip: 192.168.0.81, domain: "pocmanager.local.ildoc.it"}
5152
- { ip: 192.168.0.81, domain: "pocsender.local.ildoc.it"}
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: miniflux
6+
namespace: apps
7+
annotations:
8+
argocd.argoproj.io/sync-wave: "4"
9+
spec:
10+
selector:
11+
matchLabels:
12+
app: miniflux
13+
strategy:
14+
type: Recreate
15+
revisionHistoryLimit: 3
16+
template:
17+
metadata:
18+
labels:
19+
app: miniflux
20+
spec:
21+
initContainers:
22+
- name: prepare-env
23+
image: busybox:latest
24+
command:
25+
- /bin/sh
26+
- -c
27+
- |
28+
echo "postgres://miniflux:${POSTGRES_PASSWORD}@192.168.0.30/miniflux?sslmode=disable" > /shared/database_url
29+
echo "✓ DATABASE_URL prepared"
30+
env:
31+
- name: POSTGRES_PASSWORD
32+
valueFrom:
33+
secretKeyRef:
34+
name: miniflux-cross-secrets
35+
key: postgres-password
36+
volumeMounts:
37+
- name: shared-env
38+
mountPath: /shared
39+
40+
containers:
41+
- name: miniflux
42+
image: miniflux/miniflux:latest
43+
command:
44+
- /bin/sh
45+
- -c
46+
- |
47+
# Legge la DATABASE_URL dal file scritto dall'initContainer
48+
export DATABASE_URL=$(cat /shared/database_url)
49+
# Esegue il comando originale di Miniflux (l'immagine ha già un entrypoint)
50+
exec miniflux
51+
env:
52+
- name: RUN_MIGRATIONS
53+
value: "1"
54+
- name: CREATE_ADMIN
55+
value: "1"
56+
- name: ADMIN_USERNAME
57+
value: "miniflux_user"
58+
- name: ADMIN_PASSWORD
59+
valueFrom:
60+
secretKeyRef:
61+
name: miniflux-k8s-secrets
62+
key: admin-password
63+
ports:
64+
- containerPort: 8080
65+
name: http
66+
protocol: TCP
67+
volumeMounts:
68+
- name: shared-env
69+
mountPath: /shared
70+
readOnly: true
71+
resources:
72+
limits:
73+
cpu: 500m
74+
memory: 512Mi
75+
requests:
76+
cpu: 100m
77+
memory: 128Mi
78+
livenessProbe:
79+
httpGet:
80+
path: /healthcheck
81+
port: http
82+
initialDelaySeconds: 30
83+
periodSeconds: 30
84+
timeoutSeconds: 5
85+
failureThreshold: 3
86+
readinessProbe:
87+
httpGet:
88+
path: /healthcheck
89+
port: http
90+
initialDelaySeconds: 10
91+
periodSeconds: 10
92+
timeoutSeconds: 5
93+
failureThreshold: 3
94+
95+
volumes:
96+
- name: shared-env
97+
emptyDir: {}
98+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
apiVersion: gateway.networking.k8s.io/v1
3+
kind: HTTPRoute
4+
metadata:
5+
name: miniflux-route
6+
namespace: apps
7+
spec:
8+
parentRefs:
9+
- name: cilium-gateway
10+
namespace: kube-system
11+
sectionName: https
12+
hostnames:
13+
- "miniflux.local.ildoc.it"
14+
rules:
15+
- matches:
16+
- path:
17+
type: PathPrefix
18+
value: /
19+
backendRefs:
20+
- name: miniflux
21+
port: 8080
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
# Secret condivisi (PostgreSQL) dal path cross/
3+
apiVersion: external-secrets.io/v1
4+
kind: ExternalSecret
5+
metadata:
6+
name: vault-miniflux-cross-secrets
7+
namespace: apps
8+
spec:
9+
refreshInterval: "1h"
10+
secretStoreRef:
11+
name: vault-cross-secret-store
12+
kind: ClusterSecretStore
13+
target:
14+
name: miniflux-cross-secrets
15+
creationPolicy: Owner
16+
data:
17+
- secretKey: postgres-password
18+
remoteRef:
19+
key: cross/data/apps/miniflux
20+
property: postgres_password
21+
22+
---
23+
# Secret specifici Kubernetes (admin password, etc.)
24+
apiVersion: external-secrets.io/v1
25+
kind: ExternalSecret
26+
metadata:
27+
name: vault-miniflux-k8s-secrets
28+
namespace: apps
29+
annotations:
30+
argocd.argoproj.io/sync-wave: "1"
31+
spec:
32+
refreshInterval: "1h"
33+
secretStoreRef:
34+
name: vault-kubernetes-secret-store
35+
kind: ClusterSecretStore
36+
target:
37+
name: miniflux-k8s-secrets
38+
creationPolicy: Owner
39+
data:
40+
- secretKey: admin-password
41+
remoteRef:
42+
key: kubernetes/data/apps/miniflux
43+
property: admin_password
44+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: miniflux
6+
namespace: apps
7+
annotations:
8+
argocd.argoproj.io/sync-wave: "4"
9+
spec:
10+
type: ClusterIP
11+
ports:
12+
- port: 8080
13+
targetPort: 8080
14+
protocol: TCP
15+
name: http
16+
selector:
17+
app: miniflux
18+

0 commit comments

Comments
 (0)