Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ It includes the following applications:
* [Radarr](https://radarr.video/) for movies
* [Bazarr](https://github.com/morpheus65535/bazarr) for subtitles
* Transmission for torrents
* [Jackett](https://github.com/Jackett/Jackett) for torrent tracker searching
* ~~[Jackett](https://github.com/Jackett/Jackett) for torrent tracker searching~~
* [Prowlarr](https://prowlarr.com/) for index management
* [Readarr](https://readarr.com/) for ebooks
* [Emby](https://emby.media/)

Applications state (settings / db) and media files are stored in a shared volume of type `hostPath`. It does not use PVC and currently only works if the whole `htpc` namespace is deployed in the same node.
Expand Down Expand Up @@ -94,6 +96,8 @@ You should also be able to reach each component's UI using the links below. Don'
|sonarr|http://localhost/sonarr
|bazarr|http://localhost/bazarr
|jacket|http://localhost/jackett
|prowlarr|http://localhost/prowlarr
|readarr|http://localhost/readarr
|transmission|http://localhost/transmission
|emby|http://localhost/

Expand All @@ -112,9 +116,11 @@ It uses a `hostPath` volume to store configuration and media files. It defaults
├── bazarr
├── downloads
├── emby
├── jackett
├── prowlarr
├── readarr
├── media
│   ├── movies
│   ├── books
│   └── tv
├── radarr
├── sonarr
Expand Down
9 changes: 9 additions & 0 deletions base/ingress-route.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,12 @@ spec:
name: prowlarr
namespace: "htpc"
port: 9696
- kind: Rule
match: PathPrefix(`/readarr`)
middlewares: []
priority: 0
services:
- kind: Service
name: readarr
namespace: "htpc"
port: 8787
6 changes: 6 additions & 0 deletions base/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ resources:
- transmission
- emby
- ingress-route.yaml
- readarr

patchesStrategicMerge:
- volumes_patch.yaml
Expand All @@ -37,3 +38,8 @@ vars:
kind: Service
name: prowlarr
apiVersion: v1
- name: READARR
objref:
kind: Service
name: readarr
apiVersion: v1
6 changes: 3 additions & 3 deletions base/radarr/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ spec:
image: busybox
command: ["sh", "-c", "chown -R 1000:1000 /config && chown -R 1000:1000 /movies"]
volumeMounts:
- mountPath: /config
- mountPath: /config
name: htpc-home
subPath: radarr
- mountPath: /movies
subPath: radarr
- mountPath: /movies
name: htpc-home
subPath: media/movies
- name: config
Expand Down
84 changes: 84 additions & 0 deletions base/readarr/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
run: readarr
name: readarr
spec:
replicas: 1
selector:
matchLabels:
run: readarr
template:
metadata:
labels:
run: readarr
spec:
securityContext:
fsGroup: 1000
initContainers:
- name: chown
image: busybox
command: ["sh", "-c", "chown -R 1000:1000 /config && chown -R 1000:1000 /books"]
volumeMounts:
- mountPath: /config
name: htpc-home
subPath: readarr
- mountPath: /books
name: htpc-home
subPath: media/books
- name: config
image: busybox
command: ["sh", "-c"]
securityContext:
runAsUser: 1000
runAsGroup: 1000
args:
- |
echo 'Customizing config...'
if [[ ! -f /config/config.xml ]]; then
echo '<Config><UrlBase>/$(READARR)</UrlBase></Config>'> /config/config.xml
fi
echo 'Done customizing.'
volumeMounts:
- mountPath: /config
name: htpc-home
subPath: readarr
containers:
- name: readarr
image: lscr.io/linuxserver/readarr
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: Pacific/Auckland
ports:
- containerPort: 8787
livenessProbe:
exec:
command:
- /bin/sh
- -c
- curl "http://localhost:8787/readarr/api/v1/health?ApiKey=$(sed -ne '/ApiKey/{s/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/p;q;}' </config/config.xml)"
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
exec:
command:
- /bin/sh
- -c
- curl "http://localhost:8787/readarr/api/v1/system/status?ApiKey=$(sed -ne '/ApiKey/{s/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/p;q;}' </config/config.xml)"
initialDelaySeconds: 30
periodSeconds: 10
volumeMounts:
- mountPath: /config
name: htpc-home
subPath: readarr
- mountPath: /books
name: htpc-home
subPath: media/books
- mountPath: /downloads
name: htpc-home
subPath: downloads
5 changes: 5 additions & 0 deletions base/readarr/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
12 changes: 12 additions & 0 deletions base/readarr/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: readarr
spec:
ports:
- port: 8787
protocol: TCP
targetPort: 8787
name: webui
selector:
run: readarr
15 changes: 13 additions & 2 deletions base/volumes_patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,6 @@ spec:
path: /opt/htpc
type: DirectoryOrCreate
name: htpc-home
# persistentVolumeClaim:
# claimName: local-path-pvc
---
apiVersion: apps/v1
kind: Deployment
Expand All @@ -90,3 +88,16 @@ spec:
path: /opt/htpc
type: DirectoryOrCreate
name: htpc-home
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: readarr
spec:
template:
spec:
volumes:
- hostPath:
path: /opt/htpc
type: DirectoryOrCreate
name: htpc-home
127 changes: 127 additions & 0 deletions install_armhf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,23 @@ spec:
---
apiVersion: v1
kind: Service
metadata:
labels:
app: htpc
name: readarr
namespace: htpc
spec:
ports:
- name: webui
port: 8787
protocol: TCP
targetPort: 8787
selector:
app: htpc
run: readarr
---
apiVersion: v1
kind: Service
metadata:
labels:
app: htpc
Expand Down Expand Up @@ -519,6 +536,107 @@ spec:
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: htpc
run: readarr
name: readarr
namespace: htpc
spec:
replicas: 1
selector:
matchLabels:
app: htpc
run: readarr
template:
metadata:
labels:
app: htpc
run: readarr
spec:
containers:
- env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: Pacific/Auckland
image: lscr.io/linuxserver/readarr
livenessProbe:
exec:
command:
- /bin/sh
- -c
- curl "http://localhost:8787/readarr/api/v1/health?ApiKey=$(sed -ne '/ApiKey/{s/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/p;q;}'
</config/config.xml)"
initialDelaySeconds: 30
periodSeconds: 10
name: readarr
ports:
- containerPort: 8787
readinessProbe:
exec:
command:
- /bin/sh
- -c
- curl "http://localhost:8787/readarr/api/v1/system/status?ApiKey=$(sed
-ne '/ApiKey/{s/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/p;q;}' </config/config.xml)"
initialDelaySeconds: 30
periodSeconds: 10
volumeMounts:
- mountPath: /config
name: htpc-home
subPath: readarr
- mountPath: /books
name: htpc-home
subPath: media/books
- mountPath: /downloads
name: htpc-home
subPath: downloads
initContainers:
- command:
- sh
- -c
- chown -R 1000:1000 /config && chown -R 1000:1000 /books
image: busybox
name: chown
volumeMounts:
- mountPath: /config
name: htpc-home
subPath: readarr
- mountPath: /books
name: htpc-home
subPath: media/books
- args:
- |
echo 'Customizing config...'
if [[ ! -f /config/config.xml ]]; then
echo '<Config><UrlBase>/readarr</UrlBase></Config>'> /config/config.xml
fi
echo 'Done customizing.'
command:
- sh
- -c
image: busybox
name: config
securityContext:
runAsGroup: 1000
runAsUser: 1000
volumeMounts:
- mountPath: /config
name: htpc-home
subPath: readarr
securityContext:
fsGroup: 1000
volumes:
- hostPath:
path: /opt/htpc
type: DirectoryOrCreate
name: htpc-home
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: htpc
Expand Down Expand Up @@ -768,3 +886,12 @@ spec:
name: prowlarr
namespace: htpc
port: 9696
- kind: Rule
match: PathPrefix(`/readarr`)
middlewares: []
priority: 0
services:
- kind: Service
name: readarr
namespace: htpc
port: 8787
Loading