Add ttrss first init

This commit is contained in:
Ruben Hensen
2025-01-19 23:07:36 +01:00
parent 2a2e67ca8b
commit c4535ec150
14 changed files with 535 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: ttrss
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://github.com/rubenhensen/k8scd.git
targetRevision: HEAD
path: ttrss
destination:
server: https://kubernetes.default.svc
namespace: ttrss
syncPolicy:
syncOptions:
- CreateNamespace=true
+47
View File
@@ -0,0 +1,47 @@
# Put any local modifications here.
# Run FPM under this UID/GID.
# OWNER_UID=1000
# OWNER_GID=1000
# FPM settings.
#PHP_WORKER_MAX_CHILDREN=5
#PHP_WORKER_MEMORY_LIMIT=256M
# ADMIN_USER_* settings are applied on every startup.
# Set admin user password to this value. If not set, random password
# will be generated on startup, look for it in the 'app' container logs.
#ADMIN_USER_PASS=
# Sets admin user access level to this value. Valid values:
# -2 - forbidden to login
# -1 - readonly
# 0 - default user
# 10 - admin
#ADMIN_USER_ACCESS_LEVEL=
# Auto create another user (in addition to built-in admin) unless it already exists.
#AUTO_CREATE_USER=
#AUTO_CREATE_USER_PASS=
#AUTO_CREATE_USER_ACCESS_LEVEL=0
# Default database credentials.
TTRSS_DB_USER=postgres
TTRSS_DB_NAME=postgres
TTRSS_DB_PASS=password
# You can customize other config.php defines by setting overrides here.
# See tt-rss/.docker/app/Dockerfile for a complete list.
# You probably shouldn't disable auth_internal unless you know what you're doing.
# TTRSS_PLUGINS=auth_internal,auth_remote
# TTRSS_SINGLE_USER_MODE=true
# TTRSS_SESSION_COOKIE_LIFETIME=2592000
# TTRSS_FORCE_ARTICLE_PURGE=30
# ...
# Bind exposed port to 127.0.0.1 to run behind reverse proxy on the same host.
# If you plan to expose the container, remove "127.0.0.1:".
HTTP_PORT=127.0.0.1:8280
#HTTP_PORT=8280
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: app-claim1
name: app-claim1
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 100Mi
+63
View File
@@ -0,0 +1,63 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: app
name: app
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: app
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: app
spec:
containers:
- env:
- name: HTTP_PORT
valueFrom:
configMapKeyRef:
key: HTTP_PORT
name: env
- name: TTRSS_DB_NAME
valueFrom:
configMapKeyRef:
key: TTRSS_DB_NAME
name: env
- name: TTRSS_DB_PASS
valueFrom:
configMapKeyRef:
key: TTRSS_DB_PASS
name: env
- name: TTRSS_DB_USER
valueFrom:
configMapKeyRef:
key: TTRSS_DB_USER
name: env
image: cthulhoo/ttrss-fpm-pgsql-static:latest
name: app
volumeMounts:
- mountPath: /var/www/html
name: app
- mountPath: /opt/tt-rss/config.d
name: app-claim1
readOnly: true
restartPolicy: Always
volumes:
- name: app
persistentVolumeClaim:
claimName: app
- name: app-claim1
persistentVolumeClaim:
claimName: app-claim1
readOnly: true
+12
View File
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: app
name: app
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+59
View File
@@ -0,0 +1,59 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: db
name: db
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: db
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: db
spec:
containers:
- env:
- name: HTTP_PORT
valueFrom:
configMapKeyRef:
key: HTTP_PORT
name: env
- name: POSTGRES_DB
- name: POSTGRES_PASSWORD
- name: POSTGRES_USER
- name: TTRSS_DB_NAME
valueFrom:
configMapKeyRef:
key: TTRSS_DB_NAME
name: env
- name: TTRSS_DB_PASS
valueFrom:
configMapKeyRef:
key: TTRSS_DB_PASS
name: env
- name: TTRSS_DB_USER
valueFrom:
configMapKeyRef:
key: TTRSS_DB_USER
name: env
image: postgres:15-alpine
name: db
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: db
restartPolicy: Always
volumes:
- name: db
persistentVolumeClaim:
claimName: db
+12
View File
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: db
name: db
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+112
View File
@@ -0,0 +1,112 @@
version: '3'
services:
# see FAQ entry below if upgrading from a different PostgreSQL major version (e.g. 12 to 15):
# https://tt-rss.org/wiki/InstallationNotes/#i-got-the-updated-compose-file-above-and-now-my-database-keeps-restarting
db:
image: postgres:15-alpine
restart: unless-stopped
env_file:
- .env
environment:
- POSTGRES_USER=${TTRSS_DB_USER}
- POSTGRES_PASSWORD=${TTRSS_DB_PASS}
- POSTGRES_DB=${TTRSS_DB_NAME}
volumes:
- db:/var/lib/postgresql/data
app:
image: cthulhoo/ttrss-fpm-pgsql-static:latest
restart: unless-stopped
env_file:
- .env
volumes:
- app:/var/www/html
- ./config.d:/opt/tt-rss/config.d:ro
depends_on:
- db
# optional, makes weekly backups of your install
# backups:
# image: cthulhoo/ttrss-fpm-pgsql-static:latest
# restart: unless-stopped
# env_file:
# - .env
# volumes:
# - backups:/backups
# - app:/var/www/html
# depends_on:
# - db
# command: /opt/tt-rss/dcron.sh -f
updater:
image: cthulhoo/ttrss-fpm-pgsql-static:latest
restart: unless-stopped
env_file:
- .env
volumes:
- app:/var/www/html
- ./config.d:/opt/tt-rss/config.d:ro
depends_on:
- app
command: /opt/tt-rss/updater.sh
web-nginx:
image: cthulhoo/ttrss-web-nginx:latest
restart: unless-stopped
env_file:
- .env
ports:
- ${HTTP_PORT}:80
volumes:
- app:/var/www/html:ro
depends_on:
- app
volumes:
db:
app:
backups:
# apiVersion: apps/v1
# kind: Deployment
# metadata:
# name: sol-auth
# spec:
# replicas: 1
# selector:
# matchLabels:
# app: sol-auth
# template:
# metadata:
# labels:
# app: sol-auth
# spec:
# # securityContext:
# # runAsUser: 1000
# # runAsGroup: 1000
# # fsGroup: 1000
# containers:
# - image: hebury/sol-auth:2.3
# name: sol-auth
# resources:
# requests:
# memory: "50Mi"
# limits:
# memory: "500Mi"
# ports:
# - name: http
# containerPort: 8002
# hostPort: 8002
# protocol: TCP
# volumeMounts:
# - name: config-volume
# mountPath: /config/
# volumes:
# - name: config-volume
# configMap:
# name: httpd-conf
# restartPolicy: Always
# terminationGracePeriodSeconds: 5
+11
View File
@@ -0,0 +1,11 @@
apiVersion: v1
data:
HTTP_PORT: 127.0.0.1:8280
TTRSS_DB_NAME: postgres
TTRSS_DB_PASS: password
TTRSS_DB_USER: postgres
kind: ConfigMap
metadata:
labels:
io.kompose.service: app-env
name: env
+34
View File
@@ -0,0 +1,34 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-ingress
annotations:
# nginx.ingress.kubernetes.io/rewrite-target: /
cert-manager.io/cluster-issuer: prod-cluster-issuer
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
# If you encounter a redirect loop or are getting a 307 response code
# then you need to force the nginx ingress to connect to the backend using HTTPS.
#
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
namespace: ttrss
spec:
ingressClassName: nginx
rules:
- host: argocd.hensen.io
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server
port:
name: "80"
# TLS configuration for HTTPS
tls:
# TLS secretName used on ClusterIssuer
- secretName: letsencrypt-prod
hosts:
- rss.hensen.io
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: updater-claim1
name: updater-claim1
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 100Mi
+65
View File
@@ -0,0 +1,65 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: updater
name: updater
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: updater
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: updater
spec:
containers:
- args:
- /opt/tt-rss/updater.sh
env:
- name: HTTP_PORT
valueFrom:
configMapKeyRef:
key: HTTP_PORT
name: env
- name: TTRSS_DB_NAME
valueFrom:
configMapKeyRef:
key: TTRSS_DB_NAME
name: env
- name: TTRSS_DB_PASS
valueFrom:
configMapKeyRef:
key: TTRSS_DB_PASS
name: env
- name: TTRSS_DB_USER
valueFrom:
configMapKeyRef:
key: TTRSS_DB_USER
name: env
image: cthulhoo/ttrss-fpm-pgsql-static:latest
name: updater
volumeMounts:
- mountPath: /var/www/html
name: app
- mountPath: /opt/tt-rss/config.d
name: updater-claim1
readOnly: true
restartPolicy: Always
volumes:
- name: app
persistentVolumeClaim:
claimName: app
- name: updater-claim1
persistentVolumeClaim:
claimName: updater-claim1
readOnly: true
+61
View File
@@ -0,0 +1,61 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: web-nginx
name: web-nginx
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: web-nginx
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: web-nginx
spec:
containers:
- env:
- name: HTTP_PORT
valueFrom:
configMapKeyRef:
key: HTTP_PORT
name: env
- name: TTRSS_DB_NAME
valueFrom:
configMapKeyRef:
key: TTRSS_DB_NAME
name: env
- name: TTRSS_DB_PASS
valueFrom:
configMapKeyRef:
key: TTRSS_DB_PASS
name: env
- name: TTRSS_DB_USER
valueFrom:
configMapKeyRef:
key: TTRSS_DB_USER
name: env
image: cthulhoo/ttrss-web-nginx:latest
name: web-nginx
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- mountPath: /var/www/html
name: app
readOnly: true
restartPolicy: Always
volumes:
- name: app
persistentVolumeClaim:
claimName: app
readOnly: true
+16
View File
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: web-nginx
name: web-nginx
spec:
ports:
- name: "80"
port: 80
targetPort: 80
selector:
io.kompose.service: web-nginx