Compare commits

...
Author SHA1 Message Date
forust 41e4a72836 feat(streaming): public routes jelly/seerr via forust.xyz
renovate-ci / validate-renovate (push) Skipped
ci / lint-shellcheck (push) Successful in 9s
ci / lint-prettier (push) Successful in 14s
ci / lint-ruff (push) Successful in 5s
ci / lint-dockerfiles (push) Successful in 4s
ci / validate (push) Successful in 7s
ci / lint-compose (push) Successful in 9s
ci / lint-actionlint (push) Successful in 5s
ci / lint-yaml (push) Successful in 8s
ci / build (push) Skipped
2026-10-05 00:23:40 +02:00
forust 5f483e7090 merge: fold abandoned feat/streaming experiments into streaming stack
renovate-ci / validate-renovate (push) Skipped
ci / lint-compose (push) Successful in 9s
ci / lint-actionlint (push) Successful in 4s
ci / lint-shellcheck (push) Successful in 6s
ci / lint-prettier (push) Successful in 14s
ci / lint-ruff (push) Successful in 7s
ci / lint-yaml (push) Successful in 10s
ci / lint-dockerfiles (push) Successful in 6s
ci / validate (push) Successful in 7s
ci / build (push) Skipped
2026-10-04 20:43:48 +02:00
forust aad73bf9e8 feat(streaming): persist lampac passwd/init.conf via seed volume
ci / lint-actionlint (push) Successful in 5s
ci / lint-shellcheck (push) Successful in 7s
ci / lint-prettier (push) Successful in 15s
ci / lint-ruff (push) Successful in 7s
ci / lint-yaml (push) Successful in 11s
renovate-ci / validate-renovate (push) Skipped
ci / lint-compose (push) Successful in 10s
ci / lint-dockerfiles (push) Successful in 6s
ci / validate (push) Successful in 7s
ci / build (push) Skipped
2026-10-04 19:18:40 +02:00
forust 4093888749 feat(streaming): add lampac online-viewing backend
ci / lint-shellcheck (push) Successful in 7s
ci / lint-prettier (push) Successful in 16s
ci / lint-ruff (push) Successful in 8s
ci / lint-dockerfiles (push) Successful in 8s
ci / validate (push) Successful in 8s
ci / build (push) Skipped
renovate-ci / validate-renovate (push) Skipped
ci / lint-compose (push) Successful in 9s
ci / lint-actionlint (push) Successful in 4s
ci / lint-yaml (push) Successful in 9s
2026-10-04 19:13:20 +02:00
forust 50a27873c1 feat(streaming): replace dead jellyseerr with seerr-team/seerr (jellyfin 12 auth fix)
renovate-ci / validate-renovate (push) Skipped
ci / lint-compose (push) Successful in 10s
ci / lint-actionlint (push) Successful in 5s
ci / lint-shellcheck (push) Successful in 7s
ci / lint-prettier (push) Successful in 15s
ci / lint-ruff (push) Successful in 7s
ci / lint-yaml (push) Successful in 11s
ci / lint-dockerfiles (push) Successful in 6s
ci / validate (push) Successful in 6s
ci / build (push) Skipped
2026-10-04 18:52:57 +02:00
forust 8799962b1c Revert "feat(adguard): add netbird sidecar"
ci / lint-dockerfiles (push) Successful in 5s
renovate-ci / validate-renovate (push) Successful in 9s
ci / lint-compose (push) Successful in 10s
ci / lint-actionlint (push) Successful in 5s
ci / lint-shellcheck (push) Successful in 8s
ci / lint-prettier (push) Successful in 15s
ci / lint-ruff (push) Successful in 7s
ci / lint-yaml (push) Successful in 10s
ci / validate (push) Successful in 6s
ci / build (push) Successful in 20s
This reverts commit 7a81b4ea8b.
2026-10-04 17:40:19 +02:00
forust fb80024fa2 feat(streaming): add bazarr for subtitles
renovate-ci / validate-renovate (push) Skipped
ci / lint-compose (push) Successful in 9s
ci / lint-actionlint (push) Successful in 5s
ci / lint-shellcheck (push) Successful in 7s
ci / lint-prettier (push) Successful in 15s
ci / lint-ruff (push) Successful in 7s
ci / validate (push) Successful in 6s
ci / build (push) Skipped
ci / lint-yaml (push) Successful in 11s
ci / lint-dockerfiles (push) Successful in 6s
2026-10-04 17:25:00 +02:00
forust 0f1a788874 Merge pull request 'feat(streaming): compose *arr streaming stack (k8s routing)' (#78) from feat/streaming-compose-test into main
ci / lint-compose (push) Successful in 8s
ci / lint-prettier (push) Successful in 14s
ci / lint-ruff (push) Successful in 6s
ci / lint-actionlint (push) Successful in 4s
ci / lint-shellcheck (push) Successful in 8s
ci / lint-yaml (push) Successful in 9s
ci / lint-dockerfiles (push) Successful in 6s
ci / validate (push) Successful in 6s
renovate-ci / validate-renovate (push) Successful in 10s
ci / build (push) Successful in 54s
Reviewed-on: #78
2026-10-04 14:04:28 +00:00
forust 3be9556eb4 feat: add radarr 2026-01-19 20:50:08 +01:00
forust e952c8161a feat: add qbittorrent 2026-01-19 20:39:29 +01:00
forust 8d665a7f34 feat: jellyfin (starting from scratch) 2026-01-19 20:19:12 +01:00
forust 6e4f8c06b4 Merge branch 'main' into feat/streaming 2026-01-19 18:47:22 +01:00
forust 8cd122d50d feat: prowlarr service 2025-11-27 22:50:21 +01:00
forust f531393481 feat: qbittorrent 2025-11-27 22:21:51 +01:00
forust ce43b34ce0 chore: better readability 2025-11-27 20:17:52 +01:00
forust ddb755e7e5 feat: sonarr service 2025-11-27 20:14:11 +01:00
forust 682a5b949f chore: ignore sonarr, radarr, data files 2025-11-27 20:12:41 +01:00
forust 6c72acc59e refactor: change directory mappings, readability 2025-11-27 20:12:17 +01:00
forust b381c7b012 feat: jellyseerr service 2025-11-27 11:57:08 +01:00
forust a3c12855fe chore: volumes best-practices for jellyfin, ports for pre-traefik debugging 2025-11-27 01:56:38 +01:00
forust bbd374590e chore: gitingore jellyfin's config files 2025-11-27 01:51:20 +01:00
forust fd72b415c5 fix: add traefik-proxy network for jellyfin 2025-11-27 01:47:56 +01:00
forust 97f6aeb538 feat: basic jellyfin service 2025-11-27 01:46:25 +01:00
7 changed files with 196 additions and 80 deletions

No files matched your search

-35
View File
@@ -68,35 +68,6 @@ spec:
reloader.stakater.com/auto: "true" reloader.stakater.com/auto: "true"
spec: spec:
containers: containers:
- name: netbird
image: netbirdio/netbird:0.80.0
envFrom:
- configMapRef:
name: adguard-config
env:
- name: NB_SETUP_KEY
valueFrom:
secretKeyRef:
name: adguard-netbird-secrets
key: NB_SETUP_KEY
securityContext:
capabilities:
add:
- NET_ADMIN
- SYS_ADMIN
- SYS_RESOURCE
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "256Mi"
cpu: "200m"
volumeMounts:
- name: netbird-state
mountPath: /var/lib/netbird
- name: dev-tun
mountPath: /dev/net/tun
- name: adguard - name: adguard
image: adguard/adguardhome:v0.107.79 image: adguard/adguardhome:v0.107.79
resources: resources:
@@ -131,12 +102,6 @@ spec:
mountPath: /certs mountPath: /certs
readOnly: true readOnly: true
volumes: volumes:
- name: netbird-state
emptyDir: {}
- name: dev-tun
hostPath:
path: /dev/net/tun
type: CharDevice
- name: adguard-data - name: adguard-data
persistentVolumeClaim: persistentVolumeClaim:
claimName: adguard-pvc claimName: adguard-pvc
-10
View File
@@ -1,10 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: adguard-config
namespace: adguard
data:
NB_MANAGEMENT_URL: "https://nb.forust.xyz"
NB_HOSTNAME: "adguard"
NB_LOG_LEVEL: "info"
NB_DISABLE_DNS: "true"
@@ -1,8 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: adguard-netbird-secrets
namespace: adguard
type: Opaque
stringData:
NB_SETUP_KEY: "REPLACE_ME"
+48 -1
View File
@@ -87,8 +87,9 @@ services:
- streaming - streaming
jellyseerr: jellyseerr:
image: fallenbagel/jellyseerr:latest image: ghcr.io/seerr-team/seerr:latest
container_name: jellyseerr container_name: jellyseerr
init: true
restart: unless-stopped restart: unless-stopped
environment: environment:
- TZ=${TZ:-Europe/Berlin} - TZ=${TZ:-Europe/Berlin}
@@ -99,6 +100,48 @@ services:
networks: networks:
- streaming - streaming
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
restart: unless-stopped
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- TZ=${TZ:-Europe/Berlin}
volumes:
- bazarr-cfg:/config
- movies:/movies
- tv:/tv
ports:
- "16767:6767"
networks:
- streaming
lampac:
image: ghcr.io/lampac-nextgen/lampac:latest
container_name: lampac
restart: unless-stopped
shm_size: 1024mb
# Restore persisted passwd/init.conf from seed volume before start,
# so config survives container recreation (upstream entrypoint is
# ENTRYPOINT ["dotnet", "Core.dll"], WORKDIR /lampac, USER lampac).
entrypoint:
[
"/bin/sh",
"-c",
"if [ -f /seed/passwd ] && [ ! -f /lampac/passwd ]; then cp /seed/passwd /lampac/passwd; fi; if [ -f /seed/init.conf ] && [ ! -f /lampac/init.conf ]; then cp /seed/init.conf /lampac/init.conf; fi; exec /usr/share/dotnet/dotnet Core.dll",
]
environment:
- TZ=${TZ:-Europe/Berlin}
volumes:
- lampac-seed:/seed
- lampac-cache:/lampac/cache
- lampac-db:/lampac/database
ports:
- "19118:9118"
networks:
- streaming
volumes: volumes:
jellyfin-cfg: jellyfin-cfg:
qbittorrent-cfg: qbittorrent-cfg:
@@ -106,6 +149,10 @@ volumes:
radarr-cfg: radarr-cfg:
prowlarr-cfg: prowlarr-cfg:
jellyseerr-cfg: jellyseerr-cfg:
bazarr-cfg:
lampac-seed:
lampac-cache:
lampac-db:
downloads: downloads:
movies: movies:
tv: tv:
+26 -26
View File
@@ -13,19 +13,32 @@ spec:
issuerRef: issuerRef:
name: internal-ca name: internal-ca
kind: ClusterIssuer kind: ClusterIssuer
# --- ---
# apiVersion: cert-manager.io/v1 apiVersion: cert-manager.io/v1
# kind: Certificate kind: Certificate
# metadata: metadata:
# name: jellyfin-prod-tls name: jelly-prod-tls
# namespace: streaming namespace: streaming
# spec: spec:
# secretName: jellyfin-prod-tls secretName: jelly-prod-tls
# dnsNames: dnsNames:
# - jellyfin.forust.xyz - jelly.forust.xyz
# issuerRef: issuerRef:
# name: letsencrypt-prod name: letsencrypt-prod
# kind: ClusterIssuer kind: ClusterIssuer
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: seerr-prod-tls
namespace: streaming
spec:
secretName: seerr-prod-tls
dnsNames:
- seerr.forust.xyz
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
# --- # ---
# apiVersion: cert-manager.io/v1 # apiVersion: cert-manager.io/v1
# kind: Certificate # kind: Certificate
@@ -78,16 +91,3 @@ spec:
# issuerRef: # issuerRef:
# name: letsencrypt-prod # name: letsencrypt-prod
# kind: ClusterIssuer # kind: ClusterIssuer
# ---
# apiVersion: cert-manager.io/v1
# kind: Certificate
# metadata:
# name: jellyseerr-prod-tls
# namespace: streaming
# spec:
# secretName: jellyseerr-prod-tls
# dnsNames:
# - jellyseerr.forust.xyz
# issuerRef:
# name: letsencrypt-prod
# kind: ClusterIssuer
@@ -159,3 +159,57 @@ endpoints:
- "192.168.88.100" - "192.168.88.100"
conditions: conditions:
ready: true ready: true
---
apiVersion: v1
kind: Service
metadata:
name: bazarr
namespace: streaming
spec:
ports:
- port: 16767
targetPort: 16767
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: bazarr
namespace: streaming
labels:
kubernetes.io/service-name: bazarr
addressType: IPv4
ports:
- port: 16767
protocol: TCP
endpoints:
- addresses:
- "192.168.88.100"
conditions:
ready: true
---
apiVersion: v1
kind: Service
metadata:
name: lampac
namespace: streaming
spec:
ports:
- port: 19118
targetPort: 19118
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: lampac
namespace: streaming
labels:
kubernetes.io/service-name: lampac
addressType: IPv4
ports:
- port: 19118
protocol: TCP
endpoints:
- addresses:
- "192.168.88.100"
conditions:
ready: true
+68
View File
@@ -99,3 +99,71 @@ spec:
port: 15055 port: 15055
tls: tls:
secretName: internal-wildcard-tls secretName: internal-wildcard-tls
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: bazarr-local
namespace: streaming
spec:
entryPoints:
- websecure
routes:
- match: Host(`bazarr.workstation.internal`)
kind: Rule
services:
- name: bazarr
port: 16767
tls:
secretName: internal-wildcard-tls
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: lampac-local
namespace: streaming
spec:
entryPoints:
- websecure
routes:
- match: Host(`lampac.workstation.internal`)
kind: Rule
services:
- name: lampac
port: 19118
tls:
secretName: internal-wildcard-tls
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: jellyfin-prod
namespace: streaming
spec:
entryPoints:
- websecure
routes:
- match: Host(`jelly.forust.xyz`)
kind: Rule
services:
- name: jellyfin
port: 18096
tls:
secretName: jelly-prod-tls
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: seerr-prod
namespace: streaming
spec:
entryPoints:
- websecure
routes:
- match: Host(`seerr.forust.xyz`)
kind: Rule
services:
- name: jellyseerr
port: 15055
tls:
secretName: seerr-prod-tls