Bläddra i källkod

Merging recent changes; added wiki and fixed some DNS issues

Breandan Dezendorf 3 månader sedan
förälder
incheckning
cd7cb15e0b

+ 1 - 1
dezendorf/homelab/k3s/gogs/gogs.yaml

@@ -132,7 +132,7 @@ spec:
   storageClassName: longhorn
   resources:
     requests:
-      storage: 500M
+      storage: 1500M
 ---
 apiVersion: v1
 kind: ConfigMap

+ 2 - 1
dezendorf/homelab/k3s/gopy/gopy.yaml

@@ -6,7 +6,7 @@ metadata:
   labels:
     app: gopy
 spec:
-  replicas: 3
+  replicas: 1
   selector:
     matchLabels:
       app: gopy
@@ -15,6 +15,7 @@ spec:
       labels:
         app: gopy
     spec:
+      dnsPolicy: ClusterFirstWithHostNet
       containers:
       - name: gopy
         image: docker.dezendorf.net/gopy:bb7d1a0

+ 1 - 0
dezendorf/homelab/k3s/matrix/.gitignore

@@ -0,0 +1 @@
+backup*

+ 130 - 0
dezendorf/homelab/k3s/matrix/cinny.yaml

@@ -0,0 +1,130 @@
+---
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+  name: cinny
+  labels:
+    app: cinny
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: cinny
+  template:
+    metadata:
+      labels:
+        app: cinny
+    spec:
+      dnsPolicy: ClusterFirst
+      dnsConfig:
+        nameservers:
+          - 8.8.8.8
+      containers:
+      - name: cinny
+        image: ghcr.io/cinnyapp/cinny:v4.6.0
+          #command: ["/bin/bash", "-c", "--"]
+          #args: ["while true; do sleep 3; done;"] 
+        ports:
+        - name: web
+          containerPort: 80
+        volumeMounts:
+          - name: "cinny-config"
+            mountPath: "/app/config.json"
+            subPath: "config-json"
+            readOnly: no
+
+      volumes:
+        - name: "cinny-config"
+          configMap:
+            defaultMode: 0777
+            name: "cinny-config"
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: cinny
+spec:
+  type: ClusterIP
+  ports:
+    - name: web
+      port: 80
+  selector:
+    app: cinny
+
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: cinny-ingress-route
+  namespace: default
+spec:
+  entryPoints:
+    - web
+  routes:
+  - match: ((Host(`cinny`)||Host(`cinny.dezendorf.net`)))
+    kind: Rule
+    priority: 1
+    services:
+    - name: cinny
+      port: 80
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: cinny-websecure-route
+  namespace: default
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: Host(`cinny.dezendorf.net`)
+    kind: Rule
+    services:
+    - name: cinny
+      port: 80
+  tls:
+    certResolver: myresolver
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cinny-config
+  namespace: default
+data:
+
+  config-json: |
+
+    {
+      "defaultHomeserver": 1,
+      "homeserverList": [
+        "matrix.dezendorf.net"
+      ],
+      "allowCustomHomeservers": true,
+
+      "featuredCommunities": {
+        "openAsDefault": false,
+        "spaces": [
+          "#cinny-space:matrix.org",
+          "#community:matrix.org",
+          "#space:envs.net",
+          "#science-space:matrix.org",
+          "#libregaming-games:tchncs.de",
+          "#mathematics-on:matrix.org"
+        ],
+        "rooms": [
+          "#cinny:matrix.org",
+          "#freesoftware:matrix.org",
+          "#pcapdroid:matrix.org",
+          "#gentoo:matrix.org",
+          "#PrivSec.dev:arcticfoxes.net",
+          "#disroot:aria-net.org"
+        ],
+        "servers": ["matrix.dezendorf.net"]
+      },
+    
+      "hashRouter": {
+        "enabled": false,
+        "basename": "/"
+      }
+    }
+

+ 5 - 0
dezendorf/homelab/k3s/matrix/get_current_pod

@@ -0,0 +1,5 @@
+#!/bin/bash
+
+CURRENT=$(kubectl get pods | grep matrix | awk '{print $1}')
+
+echo -n ${CURRENT}

+ 1 - 0
dezendorf/homelab/k3s/matrix/logs

@@ -0,0 +1 @@
+kubectl logs -l app=matrix --all-containers

+ 2 - 1
dezendorf/homelab/k3s/matrix/matrix.yaml

@@ -15,9 +15,10 @@ spec:
       labels:
         app: matrix
     spec:
-      dnsPolicy: ClusterFirst
+      dnsPolicy: ClusterFirstWithHostNet
       dnsConfig:
         nameservers:
+          - 192.168.1.9
           - 8.8.8.8
       containers:
       - name: matrix

+ 6 - 0
dezendorf/homelab/k3s/matrix/restore

@@ -0,0 +1,6 @@
+FILES="matrix.dezendorf.net.signing.key homeserver.db homeserver.db-wal homeserver.db-shm media_store"
+
+for i in ${FILES}; do
+  kubectl cp $1/${i} $(./get_current_pod):/data/${i}
+done
+

+ 6 - 0
dezendorf/homelab/k3s/matrix/restore_pg

@@ -0,0 +1,6 @@
+
+BACKUP=$1
+
+kubectl cp ${BACKUP} $(kubectl get pods | grep -e ^postgres | awk '{print $1}'):/tmp/$(basename ${BACKUP})
+
+kubectl exec -it $(kubectl get pods | grep -e ^postgres | awk '{print $1}') -- /bin/bash -c "pg_restore --clean -U ps_user -f /tmp/$(basename ${BACKUP})"

+ 6 - 0
dezendorf/homelab/k3s/matrix/wipe

@@ -0,0 +1,6 @@
+FILES="matrix.dezendorf.net.signing.key homeserver.db homeserver.db-wal homeserver.db-shm media_store"
+
+for i in ${FILES}; do
+  kubectl exec -it $(./get_current_pod) -- /bin/bash -c "rm -rf ${i}"
+done
+

+ 1 - 1
dezendorf/homelab/k3s/media/radarr.yaml

@@ -40,7 +40,7 @@ spec:
         #- name: media-volume
         #  mountPath: "/movies"
         #  subPath: "library/movies"
-      dnsPolicy: "ClusterFirst"
+      dnsPolicy: "ClusterFirstWithHostNet"
       volumes:
       - name: radarr-data-volume
         persistentVolumeClaim:

+ 107 - 0
dezendorf/homelab/k3s/wiki/htrae.yaml

@@ -0,0 +1,107 @@
+---
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+  name: htrae
+  labels:
+    app: htrae
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: htrae
+  template:
+    metadata:
+      labels:
+        app: htrae
+    spec:
+      dnsPolicy: ClusterFirstWithHostNet
+      containers:
+      - name: htrae
+        image: lscr.io/linuxserver/dokuwiki:latest
+        env:
+          - name: PUID
+            value: "1001"
+          - name: PGID
+            value: "1001"
+          - name: TZ
+            value: "America/New_York"
+        ports:
+        - name: web
+          containerPort: 80
+        volumeMounts:
+        - name: htrae-config
+          mountPath: "/config"
+        - name: tesseract-nfs
+          mountPath: "/htrae"
+      volumes:
+        - name: "htrae-config"
+          persistentVolumeClaim:
+            claimName: htrae-config-pvc
+        - name: tesseract-nfs
+          nfs:
+            server: 192.168.1.87
+            path: /tank/wiki/htrae
+
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: htrae
+spec:
+  type: ClusterIP
+  ports:
+    - name: web
+      port: 80
+  selector:
+    app: htrae
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: htrae-ingress-route
+  namespace: default
+spec:
+  entryPoints:
+    - web
+  routes:
+  - match: ((Host(`htrae`)||Host(`htrae.dezendorf.net`)))
+    kind: Rule
+    priority: 1
+    middlewares:
+    - name: redirecthttps
+    services:
+    - name: htrae
+      port: 80
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: htrae-websecure-route
+  namespace: default
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: Host(`htrae.dezendorf.net`)
+    kind: Rule
+    middlewares:
+    - name: authelia
+    services:
+    - name: htrae
+      port: 80
+  tls:
+    certResolver: myresolver
+
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: htrae-config-pvc
+spec:
+  accessModes:
+    - ReadWriteOnce
+  storageClassName: nfs
+  resources:
+    requests:
+      storage: 1G