mirror of
https://github.com/michaelthomson0797/fleet-infra.git
synced 2026-09-19 14:28:29 +00:00
Compare commits
26
Commits
2c117171de
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
337fa870e4 | ||
|
|
fc0d928e01 | ||
|
|
751d97f7a4 | ||
|
|
c2cfe65f29 | ||
|
|
79dbe3dceb | ||
|
|
df0543b0df | ||
|
|
a61c839c43 | ||
|
|
1629ec7c14 | ||
|
|
6252891ad9 | ||
|
|
19d67fad53 | ||
|
|
4ff07aff93 | ||
|
|
4c32318be6 | ||
|
|
d40abfd742 | ||
|
|
ce574c8853 | ||
|
|
0dd6b29292 | ||
|
|
c29ffef0a8 | ||
|
|
98bf251f41 | ||
|
|
23ceadfd7b | ||
|
|
2d66be8ab9 | ||
|
|
145974c666 | ||
|
|
9f6ecc3e86 | ||
|
|
657aae6ef1 | ||
|
|
79d057569c | ||
|
|
6c7c4895db | ||
|
|
504a03450e | ||
|
|
4f64c5ec23 |
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: actual
|
||||||
|
namespace: actual
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: actual
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: emqx
|
||||||
|
namespace: emqx
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: emqx
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: emqx
|
||||||
|
namespace: emqx
|
||||||
|
spec:
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
chart: emqx
|
||||||
|
version: 5.x
|
||||||
|
sourceRef:
|
||||||
|
kind: HelmRepository
|
||||||
|
name: emqx
|
||||||
|
interval: 15m
|
||||||
|
releaseName: emqx
|
||||||
|
values:
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
size: 20Mi
|
||||||
|
storageClassName: longhorn
|
||||||
|
accessMode: ReadWriteOnce
|
||||||
|
|
||||||
|
## EMQX configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
|
||||||
|
emqxConfig:
|
||||||
|
EMQX_CLUSTER__DISCOVERY_STRATEGY: "dns"
|
||||||
|
EMQX_DASHBOARD__DEFAULT_USERNAME: "admin"
|
||||||
|
EMQX_DASHBOARD__DEFAULT_PASSWORD: "public"
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
## ingress for EMQX Dashboard
|
||||||
|
dashboard:
|
||||||
|
enabled: true
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
|
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||||
|
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||||
|
path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
hosts:
|
||||||
|
- emqx.michaelthomson.dev
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- emqx.michaelthomson.dev
|
||||||
|
secretName: emqx-tls
|
||||||
|
mqtt:
|
||||||
|
enabled: false
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
|
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||||
|
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||||
|
path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
hosts:
|
||||||
|
- mqtt.emqx.michaelthomson.dev
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- mqtt.emqx.michaelthomson.dev
|
||||||
|
secretName: emqx-tls
|
||||||
|
ws:
|
||||||
|
enabled: false
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
|
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||||
|
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||||
|
path: /mqtt
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
hosts:
|
||||||
|
- mqtt.emqx.michaelthomson.dev
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- mqtt.emqx.michaelthomson.dev
|
||||||
|
secretName: emqx-tls
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
metadata:
|
metadata:
|
||||||
name: ollama
|
name: emqx
|
||||||
namespace: ollama
|
namespace: emqx
|
||||||
spec:
|
spec:
|
||||||
interval: 15m
|
interval: 15m
|
||||||
url: https://helm.otwld.com/
|
url: https://repos.emqx.io/charts
|
||||||
@@ -0,0 +1,153 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
|
namespace: frigate
|
||||||
|
data:
|
||||||
|
config.yml: |
|
||||||
|
tls:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
mqtt:
|
||||||
|
enabled: true
|
||||||
|
host: emqx.emqx.svc.cluster.local
|
||||||
|
user: frigate
|
||||||
|
password: '{FRIGATE_MQTT_PASSWORD}'
|
||||||
|
|
||||||
|
ffmpeg:
|
||||||
|
hwaccel_args: preset-nvidia
|
||||||
|
|
||||||
|
detectors:
|
||||||
|
onnx:
|
||||||
|
type: onnx
|
||||||
|
|
||||||
|
detect:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
audio:
|
||||||
|
enabled: true
|
||||||
|
min_volume: 200
|
||||||
|
listen:
|
||||||
|
- cat
|
||||||
|
- meow
|
||||||
|
- hiss
|
||||||
|
- fart
|
||||||
|
- speech
|
||||||
|
|
||||||
|
objects:
|
||||||
|
track:
|
||||||
|
- person
|
||||||
|
- cat
|
||||||
|
|
||||||
|
record:
|
||||||
|
enabled: true
|
||||||
|
motion:
|
||||||
|
days: 1
|
||||||
|
alerts:
|
||||||
|
retain:
|
||||||
|
days: 1
|
||||||
|
mode: motion
|
||||||
|
detections:
|
||||||
|
retain:
|
||||||
|
days: 1
|
||||||
|
mode: motion
|
||||||
|
|
||||||
|
model:
|
||||||
|
model_type: yolo-generic
|
||||||
|
width: 640 # <--- should match the imgsize set during model export
|
||||||
|
height: 640 # <--- should match the imgsize set during model export
|
||||||
|
input_tensor: nchw
|
||||||
|
input_dtype: float
|
||||||
|
path: /config/model_cache/yolov9-c-640.onnx
|
||||||
|
labelmap_path: /labelmap/coco-80.txt
|
||||||
|
|
||||||
|
go2rtc:
|
||||||
|
streams:
|
||||||
|
c200_1:
|
||||||
|
- rtsp://{FRIGATE_RTSP_USERNAME}:{FRIGATE_RTSP_PASSWORD}@192.168.18.20:554/stream1
|
||||||
|
c200_1_sub:
|
||||||
|
- rtsp://{FRIGATE_RTSP_USERNAME}:{FRIGATE_RTSP_PASSWORD}@192.168.18.20:554/stream2
|
||||||
|
c200_2:
|
||||||
|
- rtsp://{FRIGATE_RTSP_USERNAME}:{FRIGATE_RTSP_PASSWORD}@192.168.18.21:554/stream1
|
||||||
|
c200_2_sub:
|
||||||
|
- rtsp://{FRIGATE_RTSP_USERNAME}:{FRIGATE_RTSP_PASSWORD}@192.168.18.21:554/stream2
|
||||||
|
c200_3:
|
||||||
|
- rtsp://{FRIGATE_RTSP_USERNAME}:{FRIGATE_RTSP_PASSWORD}@192.168.18.22:554/stream1
|
||||||
|
c200_3_sub:
|
||||||
|
- rtsp://{FRIGATE_RTSP_USERNAME}:{FRIGATE_RTSP_PASSWORD}@192.168.18.22:554/stream2
|
||||||
|
|
||||||
|
cameras:
|
||||||
|
tapoC200_1:
|
||||||
|
enabled: true
|
||||||
|
live:
|
||||||
|
streams:
|
||||||
|
Main: c200_1
|
||||||
|
Sub: c200_1_sub
|
||||||
|
onvif:
|
||||||
|
host: 192.168.18.20
|
||||||
|
port: 2020
|
||||||
|
user: '{FRIGATE_RTSP_USERNAME}'
|
||||||
|
password: '{FRIGATE_RTSP_PASSWORD}'
|
||||||
|
ffmpeg:
|
||||||
|
output_args:
|
||||||
|
record: preset-record-generic-audio-aac
|
||||||
|
inputs:
|
||||||
|
- path: rtsp://127.0.0.1:8554/c200_1
|
||||||
|
input_args: preset-rtsp-restream
|
||||||
|
roles:
|
||||||
|
- record
|
||||||
|
- path: rtsp://127.0.0.1:8554/c200_1_sub
|
||||||
|
input_args: preset-rtsp-restream
|
||||||
|
roles:
|
||||||
|
- detect
|
||||||
|
- audio
|
||||||
|
|
||||||
|
tapoC200_2:
|
||||||
|
enabled: true
|
||||||
|
live:
|
||||||
|
streams:
|
||||||
|
Main: c200_2
|
||||||
|
Sub: c200_2_sub
|
||||||
|
onvif:
|
||||||
|
host: 192.168.18.21
|
||||||
|
port: 2020
|
||||||
|
user: '{FRIGATE_RTSP_USERNAME}'
|
||||||
|
password: '{FRIGATE_RTSP_PASSWORD}'
|
||||||
|
ffmpeg:
|
||||||
|
output_args:
|
||||||
|
record: preset-record-generic-audio-aac
|
||||||
|
inputs:
|
||||||
|
- path: rtsp://127.0.0.1:8554/c200_2
|
||||||
|
input_args: preset-rtsp-restream
|
||||||
|
roles:
|
||||||
|
- record
|
||||||
|
- path: rtsp://127.0.0.1:8554/c200_2_sub
|
||||||
|
input_args: preset-rtsp-restream
|
||||||
|
roles:
|
||||||
|
- detect
|
||||||
|
- audio
|
||||||
|
|
||||||
|
tapoC200_3:
|
||||||
|
enabled: true
|
||||||
|
live:
|
||||||
|
streams:
|
||||||
|
Main: c200_3
|
||||||
|
Sub: c200_3_sub
|
||||||
|
onvif:
|
||||||
|
host: 192.168.18.22
|
||||||
|
port: 2020
|
||||||
|
user: '{FRIGATE_RTSP_USERNAME}'
|
||||||
|
password: '{FRIGATE_RTSP_PASSWORD}'
|
||||||
|
ffmpeg:
|
||||||
|
output_args:
|
||||||
|
record: preset-record-generic-audio-aac
|
||||||
|
inputs:
|
||||||
|
- path: rtsp://127.0.0.1:8554/c200_3
|
||||||
|
input_args: preset-rtsp-restream
|
||||||
|
roles:
|
||||||
|
- record
|
||||||
|
- path: rtsp://127.0.0.1:8554/c200_3_sub
|
||||||
|
input_args: preset-rtsp-restream
|
||||||
|
roles:
|
||||||
|
- detect
|
||||||
|
- audio
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: frigate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: frigate
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: frigate
|
||||||
|
image: ghcr.io/blakeblackshear/frigate:stable-tensorrt
|
||||||
|
imagePullPolicy: Always
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
nvidia.com/gpu: 1
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: frigate
|
||||||
|
ports:
|
||||||
|
- containerPort: 8971
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
- containerPort: 8554
|
||||||
|
protocol: TCP
|
||||||
|
name: rtsp
|
||||||
|
- containerPort: 8555
|
||||||
|
protocol: TCP
|
||||||
|
name: webrtc-tcp
|
||||||
|
- containerPort: 8555
|
||||||
|
protocol: UDP
|
||||||
|
name: webrtc-udp
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: frigate-config
|
||||||
|
- mountPath: /config/config.yml
|
||||||
|
subPath: config.yml
|
||||||
|
name: frigate-configmap
|
||||||
|
- mountPath: /media/frigate
|
||||||
|
name: frigate-media
|
||||||
|
- mountPath: /tmp/cache
|
||||||
|
name: frigate-cache
|
||||||
|
- mountPath: /dev/shm
|
||||||
|
name: frigate-dshm
|
||||||
|
volumes:
|
||||||
|
- name: frigate-config
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: frigate-config
|
||||||
|
- name: frigate-configmap
|
||||||
|
configMap:
|
||||||
|
name: frigate
|
||||||
|
items:
|
||||||
|
- key: config.yml
|
||||||
|
path: config.yml
|
||||||
|
- name: frigate-media
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: frigate-media
|
||||||
|
- name: frigate-cache
|
||||||
|
emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
|
- name: frigate-dshm
|
||||||
|
emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Gi
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
|
namespace: frigate
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||||||
|
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||||
|
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: frigate.michaelthomson.dev
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- pathType: ImplementationSpecific
|
||||||
|
path: /
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: frigate
|
||||||
|
port:
|
||||||
|
name: http
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- frigate.michaelthomson.dev
|
||||||
|
secretName: frigate-tls
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: frigate
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: frigate-config
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: frigate-media
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: nfs-client
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
stringData:
|
||||||
|
FRIGATE_MQTT_PASSWORD: ENC[AES256_GCM,data:2Q78LPHG682UgvVmZCg=,iv:QjhxxfgYKhA5/Btmu48E8QsIYUbdE0SSRmhkuJtmEJA=,tag:PUwGu6Vz/q3xkLWakIebqw==,type:str]
|
||||||
|
FRIGATE_RTSP_USERNAME: ENC[AES256_GCM,data:6AlV8zxMxkpHLXlMEQ==,iv:4P7cYe7pLsI74CMQz/YhZ0/TG4lwjsNIRL/NuMmi4/E=,tag:M3jRqHkeHLZY2DS+nJZasA==,type:str]
|
||||||
|
FRIGATE_RTSP_PASSWORD: ENC[AES256_GCM,data:PNI3OU9QCiOEABQu6Tg=,iv:npbl8YE1iTeEA5mJOlEb6EUKhTjd7s7lRfPVCfu+OTE=,tag:PPu1JGT8PSsSfVgOk4sVgw==,type:str]
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
|
namespace: frigate
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3ZWVxNElZM1pFNEx6eE9q
|
||||||
|
U3ZHTzdhcXMzWmRBWGM0eDFTVCtFOGhGYzN3ClZ2U2NaSFVuaUN6RDhaYkVnb1du
|
||||||
|
M2JFMzBkeWZUaFBKeEZYb2FiMytIeWcKLS0tIEFQelhqQUhDODlTL2J4M0kzK05m
|
||||||
|
YjFheFgwRGVEVWJ3TW94UWlTREV6K2cKpnqUg4qLeOtIfecGjV2nUAYZGTkHCrT6
|
||||||
|
OHfL5W55BqcQJYovv37JJHkNV+IHuVNo7aqO/gx5AE0HfMWPfy6QGg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
recipient: age1s0206tnfaaw849x5xmt95axgu8qhxzlu5ywrwz09tpt8lwpx858q089nq9
|
||||||
|
encrypted_regex: ^(data|stringData)$
|
||||||
|
lastmodified: "2026-09-09T12:12:10Z"
|
||||||
|
mac: ENC[AES256_GCM,data:mmgt9brUUt7OIbVrNDws3itVRihhpPceDSCJH/OXbgZhCChTk2i5nx7DAhzGnFik9n6jHi9+E13a7XO9wh0rUb/EMcBZhUHDwsYmPpbAUuWAzFYUXJ1MVNj0IbmGK2qoaZHKPh7WD8/5ITB0Ldv+CgAdmQ5N+QtvtfV+0IcI3XU=,iv:ZRTBFPG3Wi0Bx7yzSjAgzsxUvHe+yK4lVmesUbHMQmg=,tag:T8tT0KkMNBWdqDpGZ5m6Og==,type:str]
|
||||||
|
version: 3.13.3
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
|
namespace: frigate
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: frigate
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 8971
|
||||||
|
targetPort: http
|
||||||
|
- name: rtsp
|
||||||
|
port: 8554
|
||||||
|
targetPort: rtsp
|
||||||
|
- name: webrtc-tcp
|
||||||
|
port: 8555
|
||||||
|
targetPort: webrtc-tcp
|
||||||
|
- name: webrtc-udp
|
||||||
|
port: 8555
|
||||||
|
protocol: UDP
|
||||||
|
targetPort: webrtc-udp
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: gitea
|
||||||
|
namespace: gitea
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: gitea-http
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: grimmory
|
||||||
|
namespace: grimmory
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: grimmory
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -10,4 +10,4 @@ spec:
|
|||||||
serviceRef:
|
serviceRef:
|
||||||
name: homeassistant
|
name: homeassistant
|
||||||
groups:
|
groups:
|
||||||
- name: All
|
- name: homelab-services
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ spec:
|
|||||||
source: immich-postgres
|
source: immich-postgres
|
||||||
|
|
||||||
storage:
|
storage:
|
||||||
size: 8Gi
|
size: 10Gi
|
||||||
storageClass: longhorn-pg
|
storageClass: longhorn-pg
|
||||||
|
|
||||||
externalClusters:
|
externalClusters:
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: immich
|
||||||
|
namespace: immich
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: immich-server
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: karakeep
|
||||||
|
namespace: karakeep
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: web
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: web
|
name: karakeep
|
||||||
namespace: karakeep
|
namespace: karakeep
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: grafana
|
||||||
|
namespace: kube-prometheus-stack
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: kube-prometheus-stack-grafana
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: bazarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: bazarr
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -10,4 +10,4 @@ spec:
|
|||||||
serviceRef:
|
serviceRef:
|
||||||
name: jellyfin
|
name: jellyfin
|
||||||
groups:
|
groups:
|
||||||
- name: All
|
- name: homelab-services
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: jellyseerr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: seerr-seerr-chart
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: prowlarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: prowlarr
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: radarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: radarr
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: sabnzbd
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: sabnzbd
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: sonarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: sonarr
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: michaelthomson
|
||||||
|
namespace: michaelthomson
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: michaelthomson
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: nextcloud
|
||||||
|
namespace: nextcloud
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: nextcloud
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: ollama
|
|
||||||
namespace: ollama
|
|
||||||
spec:
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: ollama
|
|
||||||
version: 1.x
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: ollama
|
|
||||||
interval: 15m
|
|
||||||
releaseName: ollama
|
|
||||||
values:
|
|
||||||
runtimeClassName: nvidia
|
|
||||||
ollama:
|
|
||||||
gpu:
|
|
||||||
enabled: true
|
|
||||||
type: nvidia
|
|
||||||
number: 1
|
|
||||||
models:
|
|
||||||
pull:
|
|
||||||
- gemma4:12b
|
|
||||||
# create:
|
|
||||||
# - name: qwen3.5:9b-custom
|
|
||||||
# template: |
|
|
||||||
# FROM qwen3.5:9b
|
|
||||||
# PARAMETER num_ctx 8192
|
|
||||||
# PARAMETER temperature 1.0
|
|
||||||
# PARAMETER top_p 0.95
|
|
||||||
# PARAMETER top_k 20
|
|
||||||
# PARAMETER min_p 0.0
|
|
||||||
# PARAMETER presence_penalty 1.5
|
|
||||||
# PARAMETER repetition_penalty 1.0
|
|
||||||
# run:
|
|
||||||
# - qwen3.5:9b-custom
|
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
|
||||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
|
||||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
|
||||||
hosts:
|
|
||||||
- host: ollama.michaelthomson.dev
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- ollama.michaelthomson.dev
|
|
||||||
secretName: ollama-tls
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: pihole
|
||||||
|
namespace: pihole
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: pihole
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: syncthing
|
||||||
|
namespace: syncthing
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: syncthing
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: uptime-kuma
|
||||||
|
namespace: uptime-kuma
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: uptime-kuma
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: netbird.io/v1alpha1
|
||||||
|
kind: NetworkResource
|
||||||
|
metadata:
|
||||||
|
name: vaultwarden
|
||||||
|
namespace: vaultwarden
|
||||||
|
spec:
|
||||||
|
networkRouterRef:
|
||||||
|
name: homelab
|
||||||
|
namespace: netbird
|
||||||
|
serviceRef:
|
||||||
|
name: vaultwarden
|
||||||
|
groups:
|
||||||
|
- name: homelab-services
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
metadata:
|
||||||
name: ollama
|
name: emqx
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
spec:
|
spec:
|
||||||
interval: 15m
|
interval: 15m
|
||||||
path: ./apps/ollama
|
path: ./apps/emqx
|
||||||
prune: true
|
prune: true # remove any elements later removed from the above path
|
||||||
wait: true
|
wait: true
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: GitRepository
|
kind: GitRepository
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: frigate
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
interval: 15m
|
||||||
|
path: ./apps/frigate
|
||||||
|
prune: true # remove any elements later removed from the above path
|
||||||
|
wait: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: flux-system
|
||||||
|
decryption:
|
||||||
|
provider: sops
|
||||||
|
secretRef:
|
||||||
|
name: sops-age
|
||||||
|
dependsOn:
|
||||||
|
- name: infra-configs
|
||||||
@@ -8,5 +8,5 @@ spec:
|
|||||||
task: "backup"
|
task: "backup"
|
||||||
groups:
|
groups:
|
||||||
- backup
|
- backup
|
||||||
retain: 10
|
retain: 2
|
||||||
concurrency: 1
|
concurrency: 1
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ metadata:
|
|||||||
name: snapshot
|
name: snapshot
|
||||||
namespace: longhorn-system
|
namespace: longhorn-system
|
||||||
spec:
|
spec:
|
||||||
cron: "0 * * * *"
|
cron: "30 * * * *"
|
||||||
task: "snapshot"
|
task: "snapshot"
|
||||||
groups:
|
groups:
|
||||||
- snapshot
|
- snapshot
|
||||||
retain: 24
|
retain: 1
|
||||||
concurrency: 2
|
concurrency: 1
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: emqx
|
||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: ollama
|
name: frigate
|
||||||
labels:
|
labels:
|
||||||
pod-security.kubernetes.io/enforce: privileged
|
pod-security.kubernetes.io/enforce: privileged
|
||||||
pod-security.kubernetes.io/audit: privileged
|
pod-security.kubernetes.io/audit: privileged
|
||||||
Reference in New Issue
Block a user