Merge branch 'main' of github.com:alexmickelson/infrastructure

This commit is contained in:
2025-03-06 15:50:16 -07:00
8 changed files with 229 additions and 1 deletions

View File

@@ -0,0 +1,55 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: jellyfin
namespace: projects
spec:
replicas: 1
selector:
matchLabels:
app: jellyfin
template:
metadata:
labels:
app: jellyfin
spec:
containers:
- name: jellyfin
image: jellyfin/jellyfin
securityContext:
runAsUser: 1000
runAsGroup: 1000
volumeMounts:
- name: config-volume
mountPath: /config
- name: cache-volume
mountPath: /cache
- name: music-volume
mountPath: /music
- name: movies-volume
mountPath: /movies
- name: tvshows-volume
mountPath: /tvshows
ports:
- containerPort: 8096
name: jellyfin
env:
- name: JELLYFIN_PublishedServerUrl
value: "https://jellyfin.alexmickelson.guru"
volumes:
- name: config-volume
hostPath:
path: /data/jellyfin/config
- name: cache-volume
hostPath:
path: /data/jellyfin/cache
- name: music-volume
hostPath:
path: /data/jellyfin/music
- name: movies-volume
hostPath:
path: /data/jellyfin/movies
- name: tvshows-volume
hostPath:
path: /data/jellyfin/tvshows
restartPolicy: Always

View File

@@ -0,0 +1,14 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jellyfin-ingress
namespace: projects
spec:
rules:
- host: jellyfin.alexmickelson.guru
http:
paths:
- path: /
backend:
service: jellyfin
port: 8096

View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: jellyfin
namespace: projects
spec:
selector:
app: jellyfin
ports:
- protocol: TCP
port: 8096
targetPort: 8096
type: ClusterIP

View File

@@ -0,0 +1,55 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nextcloud-cron
labels:
app: nextcloud-cron
spec:
replicas: 1
selector:
matchLabels:
app: nextcloud-cron
template:
metadata:
labels:
app: nextcloud-cron
spec:
containers:
- name: nextcloud
image: nextcloud:latest
command: [ "/cron.sh" ]
environment:
- TZ=America/Denver
- OVERWRITEPROTOCOL=https
- MYSQL_PASSWORD=slkdnflksnelkfnsdweoinv
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
volumes:
- name: nextcloud-www
hostPath:
path: /data/nextcloud/html
type: DirectoryOrCreate
- name: music
hostPath:
path: /data/media/music
type: DirectoryOrCreate
- name: movies
hostPath:
path: /data/media/movies
type: DirectoryOrCreate
- name: tvshows
hostPath:
path: /data/media/tvshows
type: DirectoryOrCreate
- name: shared
hostPath:
path: /data/media/shared
type: DirectoryOrCreate
- name: audiobooks
hostPath:
path: /data/media/audiobooks
type: DirectoryOrCreate
ports:
- containerPort: 80
name: http

View File

@@ -0,0 +1,37 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nextcloud-db
labels:
app: nextcloud-db
spec:
replicas: 1
selector:
matchLabels:
app: nextcloud-db
template:
metadata:
labels:
app: nextcloud-db
spec:
containers:
- name: mariadb
image: mariadb:latest
args:
[
"--transaction-isolation=READ-COMMITTED",
"--log-bin=binlog",
"--binlog-format=ROW",
]
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: slkdnflksnelkfnsdweoinv
volumes:
- name: nextcloud-db-data
hostPath:
path: /data/nextcloud-db
type: DirectoryOrCreate
ports:
- containerPort: 3306

View File

@@ -0,0 +1,54 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nextcloud
labels:
app: nextcloud
spec:
replicas: 1
selector:
matchLabels:
app: nextcloud
template:
metadata:
labels:
app: nextcloud
spec:
containers:
- name: nextcloud
image: nextcloud:latest
environment:
- TZ=America/Denver
- OVERWRITEPROTOCOL=https
- MYSQL_PASSWORD=slkdnflksnelkfnsdweoinv
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
volumes:
- name: nextcloud-www
hostPath:
path: /data/nextcloud/html
type: DirectoryOrCreate
- name: music
hostPath:
path: /data/media/music
type: DirectoryOrCreate
- name: movies
hostPath:
path: /data/media/movies
type: DirectoryOrCreate
- name: tvshows
hostPath:
path: /data/media/tvshows
type: DirectoryOrCreate
- name: shared
hostPath:
path: /data/media/shared
type: DirectoryOrCreate
- name: audiobooks
hostPath:
path: /data/media/audiobooks
type: DirectoryOrCreate
ports:
- containerPort: 80
name: http

View File

@@ -56,6 +56,7 @@ set -x LIBVIRT_DEFAULT_URI qemu:///system
".config/lazydocker/config.yml".text = '' ".config/lazydocker/config.yml".text = ''
gui: gui:
returnImmediately: true returnImmediately: true
screenMode: "half"
''; '';
".config/k9s/config.yaml".text = '' ".config/k9s/config.yaml".text = ''
k9s: k9s:

1
result
View File

@@ -1 +0,0 @@
/nix/store/d0wakryiqx0khcq87kclnrr1c96n8bvh-nixos-system-alex-desktop-24.11.711815.1807c2b91223