feat: add manga-watch

This commit is contained in:
SeanOMik 2025-03-31 20:18:32 -04:00
parent a0cdbc12f6
commit f149e8f674
Signed by: SeanOMik
GPG key ID: FEC9E2FC15235964
6 changed files with 185 additions and 0 deletions

View file

@ -17,3 +17,4 @@ resources:
- ./sabnzbd - ./sabnzbd
- ./lazy-librarian/ks.yaml - ./lazy-librarian/ks.yaml
- ./autobrr/ks.yaml - ./autobrr/ks.yaml
- ./manga-watch/ks.yaml

View file

@ -0,0 +1,30 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: manga-watch-config
data:
watch.yaml: |
# scan_on_start: true
watch_dirs:
- /storage/Torrents/MangaWeekly
- /storage/Torrents/manga
default_library: Manga
libraries:
- name: Manga
naming: "/{{ title }}/{{ title }} {{ chapter }}\
{% if release_year %} ({{ release_year }}){% endif %}\
{% if release_group %} ({{ release_group }}){% endif %}\
.{{ file_ext }}"
path: /storage/Media/Manga
webhooks:
- name: Komga Manga Library
url: https://comics.seanomik.net/api/v1/libraries/0F1CMFTETE8ER/scan
headers:
X-API-Key: ENV_VAR_MANGA_WATCHER_KOMGA_KEY
mangas:
- title: WITCH WATCH
- title: Tower Dungeon
- title: RuriDragon
- title: Dandadan

View file

@ -0,0 +1,53 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: manga-watch
spec:
interval: 5m
chart:
spec:
chart: app-template
version: 3.7.3
sourceRef:
kind: HelmRepository
name: bjws-charts
namespace: flux-system
values:
controllers:
kapowarr:
pod:
securityContext:
runAsNonRoot: true
runAsUser: 10000
runAsGroup: 10000
fsGroup: 10000
fsGroupChangePolicy: OnRootMismatch
containers:
app:
image:
repository: git.seanomik.net/seanomik/manga-watch
tag: v0.4.0
pullPolicy: Always
envFrom:
- secretRef:
name: manga-watch-webhooks
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
resources:
limits:
memory: 75Mi
persistence:
storage:
type: hostPath
hostPath: /mnt/MainPool/Media
globalMounts:
- path: /storage
config:
type: configMap
name: manga-watch-config
globalMounts:
- path: /config/watch.yaml
subPath: watch.yaml

View file

@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./config.yaml
- ./webhook-secrets.sops.yaml
- ./helm-release.yaml

View file

@ -0,0 +1,70 @@
apiVersion: v1
kind: Secret
metadata:
name: manga-watch-webhooks
stringData:
MANGA_WATCHER_KOMGA_KEY: ENC[AES256_GCM,data:qh/QzBUQfpcLeySrXh1H6BQEoz3EqjepDgjpdf3L/30=,iv:/PhmI2px74HTYlnC/+zq7Eot+eU377mZ0W2JKATq5Gw=,tag:DAneMF3JC2fD9lv6Fggegg==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2025-04-01T00:17:55Z"
mac: ENC[AES256_GCM,data:9FPBGpqx9MJGsY0XcvPOR192SG72vGPmQTQ5efLRk7f/xI2oF0GsrE4BofTw+wEHl1YQeo1VP31S8KjGAse+zk6Mzfi5GobDa31gC8NDDBYx2uQHC5PAvyTfPnhihFisP4R1FCST5dMGz3joiyUo53kVoXCpvcu09HljkQBTF+I=,iv:PcVZuEFd5FjKVkEx5a7poY+3zB4SeylBWbRaldWtxAY=,tag:YJgaksXxGZWjLOYyXKgCYg==,type:str]
pgp:
- created_at: "2025-04-01T00:17:55Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMAyqlIeyoxYovAQ//diTVs8dwsAnSt5g3qPLNrBTdhy9QQbrc6keYX2gIWLrN
QgnvTt9lXJiujzPXw5ix/IXbUqPraes7zzaeEBL8pOMYhwyLuaGu7jBNuDuBregK
zKD07fCpKgyf4sUkQcmtAPoQdxQEPcett0HK0xG9DpUWAw2dmeWUNHyYWzGJfr7q
BShrUtFG6leqEe5h8tGOFuurfPkXZyGtvMsHOEEQn/Z5aK96wbJkPV1j+Wi95GKY
OxjLwq0ttE9S16Gx1UJsGabQnZdhS3irr8ySGF9/3z3sjhZhbc+H8GUfu/i38vUe
rraJqUdI6W2aUyyYTMQRYzqA9h6BMBZfedPPsHb5UuvT9+zbh1ufkIxOS/zYZz5u
wN6xPE1wYKdzwL2iQdvbXSTduDc1SRfkiT172ASkiI2tx6ALn8FJoYXLpblfbJcF
r9yWtnqMRxUibCioxKVWboLDj63QGK6tpJs105qOzO4TV0xQ+D/iH3ipPdCbqeQo
cGpl6EZPuSVdL0Ux3m0/ocP97PAjSbh4xK5YIhXI8YBIF5FOwiFWSw6IMPHrPNu2
XWgH6ysIiAtfvO9KmVvrQlfJRgWdD/3H/KohQ3xzKpFMhxPrsVayjqZroc3R0Y46
AnpeWrsPGO7gmNvf5qSGAtZPP2FJPa7MuRBjSmmERfH9G9o6eNowg6vlF7zpUnGF
AgwDXjg0p2IN1X8BD/0b7hKXHqk3FztP2UbIucQbyZ8WpLyYYQId9Hn6ZSkwNLDb
n0RZwcG7wqT8A654miz0zVBXzB3XE8LIK6ziW/1M88sxiw5R64N/nP8ICNEArUiV
SKGUh7DkVRO6OII1guAOqaxRn17hXSh0aEjFrWTdasqx8EihBTVkmAx6290yvHvl
QhcrRfVG6WHHViwnFj+ddRAKyTcbprRx8UbSJqpfLCEEGlFhhu7CkRqCJc795qdL
5YT8u5sRx66KTo8qy13Kfk4lYZtQdxv4EeF6nNU9OdgeRIS6pBZEJwheDYyLcyMV
QZwkLu3ZsPIv5l91gO04k3mXQi21mJdMAMpy6Wci80wYdkJPhqLumzsgXhlxtWQ2
ayyCBF0v2LDzTwm4YYmmJFom/+3ZMOKYp3VsXhvKPJr07gUN26UtmHL6fcjII/zs
DHVn67m96v+xLYhOdfvy8S8JC0FyEsRQF1XH9T1iOzGkMZAaUztI6Vkeu0lqJO0a
sEllrwdO5ipxEcUwJ36XsiuqtitE5952gRjonXUwKeBrk3P+6ZrGYE/ORpdriwGJ
xvxSXaaonLofOWiVkGNeL1yegC++KXkqmrXaZNN455BUNYX6V6nGXPagw3Pbr90i
7/oKs40MdM9ptOa5nZXFWzCuIk3jvSpDVpKdxWmXGJp5oqXichnFtbEtG3K1AdRo
AQkCEMz3XrOR6OycfiokFZBbPYg+4m9tqI3XpOl1Gm5p/73xrIhVJivH6oqKrgHC
Q0ridYzEsC6yziLV7GpLv2I6j7DHSbxwNSIGM24STndqSrepRrUAP9locvAR03v3
43NMnX4bMz4=
=ojrR
-----END PGP MESSAGE-----
fp: BD1AAF9D8170F4BEE437365FF6F0933799CFEBCD
- created_at: "2025-04-01T00:17:55Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMAy5t8IMoPu4VARAAhLpMx5PiD/MXS29s0e6y/jw7za7XlM/0ys8lXx2CFWwV
v3ZRZvVYgZyR0K0NZJ43WSU/SC1Ma18jbrh2MLbCktil3Gab5FM1WD1x+pQm2TOH
V5TjSJbx+6vWJY8cuzAaLFQGNHGvL6THxbs70nBW9StoLAcT1wY03gPWcrp/zcup
pHIHUoiL7/zRhAtoLai+t4kcvQNzt1v+5Nj7tsVZ+nB+JZkKXVxV0UT0PIVt+5i2
bzzq0a9RdsnnD4HrYhhCmUk/toPMHY9TRF5PVhqCoykP0oZ17JszU07yKgonyOZT
qAFKqPdN72kk9GgASe+kpzCRwuQjCsmhzsoZAjzleSeUEDNLwNUNEF7XRLJ00ZyW
46V9AQsVfaBXR8rvFEXBf3McDBIAh3M3CtGe9a8TSZatsWNHjfUsWBD5PgNoYBFb
ilqL0TSZZCqU8oMHlE/oXjC2PPTGbKFDeqMTwnirA7nh2S2MI1Ky/a+3m865dNBf
NDNMICczkwA9e4/9VphgYOUSb367o9dMx5Fn3MEFuuelMVEZxlaTaxXmUslSFVJw
9mR6hg/ndi9CkhxcS3TWKn/LUYSXF+T7FankpNzgiq7FsBcPEfhUW5hFco03AFni
71oP+MVGq7tN/P/j3g7JFZuCoLH9ISiGxwCkxAn7SYdPtWKC0OenKU7+6BdV+8nU
aAEJAhCR9rod9+niLrqlg1QUgzhE9rvw3A8YJudnBQXB3ylc6D2FWqLmKEJMHj7p
A81SlbcvqX1oyg73WeoOK139bF465egwaqkJPkVy1jpGesyR9bqVc+AAaex+LGNe
ALTM9W1yFCJy
=GkmJ
-----END PGP MESSAGE-----
fp: 687802D4DFD8AA82EA55666CF7DADAC782D7663D
encrypted_regex: ^(data|stringData)$
version: 3.9.4

View file

@ -0,0 +1,25 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: manga-watch
namespace: flux-system
spec:
timeout: 5m
interval: 10m
targetNamespace: download
path: ./kubernetes/main/apps/download/manga-watch/app
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
postBuild:
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets