"Updates"

This commit is contained in:
2026-07-06 18:25:26 +02:00
parent 591063b43b
commit 01f6b2bdfc
78 changed files with 2766 additions and 0 deletions
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: bazarr
name: bazarr
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,9 @@
apiVersion: v1
data:
bittorrent-password: c2FuZHN0b3JtLW91dGNhc3QtdHJlYXQK
kind: Secret
metadata:
labels:
io.kompose.service: bittorrent-password
name: bittorrent-password
type: Opaque
+9
View File
@@ -0,0 +1,9 @@
apiVersion: v1
data:
bittorrent-user: YWRtaW4K
kind: Secret
metadata:
labels:
io.kompose.service: bittorrent-user
name: bittorrent-user
type: Opaque
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: cache
name: cache
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+16
View File
@@ -0,0 +1,16 @@
[Interface]
# Key for Gary
# Bouncing = 9
# NetShield = 1
# NAT modéré = off
# NAT-PMP (transfert de port) = on
# VPN Accelerator = on
PrivateKey = 2ARStJOsaO9LzNijZP+/HHd+72eY7uTW7i428Nt63E4=
Address = 10.2.0.2/32
DNS = 10.2.0.1
[Peer]
# FR#94
PublicKey = pSxXjpwlHAXXGJ2s3aRpAFLTNJXz60HKYWqKJqClo3Q=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 146.70.194.2:51820
+145
View File
@@ -0,0 +1,145 @@
[misc]
frontend_url = "https://mmgr.delmar.bzh"
cors_urls = ["http://localhost:8000"]
image_directory = "/data/images"
tv_directory = "/data/tv-shows"
movie_directory = "/data/movies"
torrent_directory = "/data/downloads"
development = false
[[misc.tv_libraries]]
name = "Live Action"
path = "/data/tv-shows/live-action"
[[misc.movie_libraries]]
name = "Documentaires"
path = "/data/documentaries"
[database]
host = "db"
port = 5432
user = "admin"
password = "Y9iSk4iWWgfxACZK"
dbname = "MediaManager"
[auth]
email_password_resets = false
token_secret = "f1bbff315e6e3edabb2bbd2f582bf306f1a1c3c86ae1d07ebcabd2642012181d"
session_lifetime = 86400
admin_emails = ["admin@delmar.bzh"]
[auth.openid_connect]
enabled = false
client_id = ""
client_secret = ""
configuration_endpoint = "https://openid.example.com/.well-known/openid-configuration"
name = "OpenID"
[notifications]
[notifications.smtp_config]
smtp_host = "pro1.mail.ovh.net"
smtp_port = 587
smtp_user = "admin@delmar.bzh"
smtp_password = "sxS4GA8rBfmFkCFL"
from_email = "admin@delmar.bzh"
use_tls = true
[notifications.email_notifications]
enabled = true
emails = ["jme69@delmar.bzh"]
[notifications.gotify]
enabled = true
api_key = "A9JajRQpx9.eDsb"
url = "https://gotify.delmar.bzh"
[notifications.ntfy]
enabled = false
url = "https://ntfy.sh/your-topic"
[notifications.pushover]
enabled = false
api_key = ""
user = ""
[torrents]
[torrents.qbittorrent]
enabled = true
host = "http://gluetun"
port = 9080
username = "admin"
password = "sandstorm-outcast-treat"
[torrents.transmission]
enabled = false
username = "admin"
password = "admin"
https_enabled = true
host = "localhost"
port = 9091
path = "/transmission/rpc"
[torrents.sabnzbd]
enabled = true
host = "http://gluetun"
port = 8080
api_key = "7c5cda4f4a03436eaf32fc08adbf5475"
base_path = "/api"
[indexers]
[indexers.prowlarr]
enabled = true
url = "http://gluetun:9696"
api_key = "df1c727b1d6d4300859a6e725725f6d8"
timeout_seconds = 60
[indexers.jackett]
enabled = false
url = "http://localhost:9117"
api_key = ""
indexers = ["1337x", "torrentleech"]
timeout_seconds = 60
[[indexers.title_scoring_rules]]
name = "prefer_h265"
keywords = ["h265", "hevc", "x265", "h.265", "x.265"]
score_modifier = 100
negate = false
[[indexers.title_scoring_rules]]
name = "avoid_cam"
keywords = ["cam", "camrip", "bdscr", "ddc", "dvdscreener","dvdscr", "hdcam", "hdtc", "hdts", "scr", "screener","telesync", "ts", "webscreener", "tc", "telecine", "tvrip"]
score_modifier = -10000
negate = false
[[indexers.indexer_flag_scoring_rules]]
name = "prefer_freeleech"
flags = ["freeleech", "freeleech75"]
score_modifier = 100
negate = false
[[indexers.indexer_flag_scoring_rules]]
name = "reject_nuked"
flags = ["nuked"]
score_modifier = -10000
negate = false
[[indexers.scoring_rule_sets]]
name = "default"
libraries = ["ALL_TV", "ALL_MOVIES"]
rule_names = ["prefer_h265", "avoid_cam", "reject_nuked", "prefer_freeleech"]
[metadata]
[metadata.tmdb]
# tmdb_relay_url = "https://metadata-relay.dorninger.co/tmdb"
tmdb_relay_url = "http://metadata_relay:8000/tmdb"
primary_languages = ["fr", "en"]
default_language = "fr"
[metadata.tvdb]
# tvdb_relay_url = "https://metadata-relay.dorninger.co/tvdb"
tvdb_relay_url = "http://metadata_relay:8000/tvdb"
@@ -0,0 +1,11 @@
# Netscape HTTP Cookie File
# https://curl.haxx.se/rfc/cookie_spec.html
# This is a generated file! Do not edit.
.spotify.com TRUE / TRUE 1806227088 sp_t b5272d0e-2fd5-4f61-84b4-fcdcb85043db
.spotify.com TRUE / TRUE 1774777436 sp_new 1
.spotify.com TRUE / TRUE 1774777436 sp_landing https%3A%2F%2Fopen.spotify.com%2Fintl-fr
.spotify.com TRUE / TRUE 1806227089 sp_dc AQDxRq-3-kW1PTN7OG94qyReAZCS8Q866SkgwSL1j-zMnxXPKzPcqyz7YmRgaQ-4ZoheIekMvvEBII-iLW2cWzfI9VWZaHJmdRL0_gx3wax0KJ1qdpakn0mzwkdggGLf79LjGxMSICOhzDGP13qPQpAtojm0OKZ_7ReyPKM5dgejtoZ2-W4rKHjeOY6F7YRjLEywgcAqC8lVQ2SdBaI
.spotify.com TRUE / TRUE 1806227089 sp_key 42f99b91-e9f8-47c7-a5e3-8531eca0ac2a
.spotify.com TRUE / TRUE 1779875088 sp_gaid 0088fc179862cef0201db44e8087b4975b45851d565e7cc3335a0e
.spotify.com TRUE / FALSE 1806227092 OptanonConsent isGpcEnabled=0&datestamp=Sat+Mar+28+2026+10%3A44%3A52+GMT%2B0100+(heure+normale+d%E2%80%99Europe+centrale)&version=202601.2.0&browserGpcFlag=0&isIABGlobal=false&hosts=&consentId=6f2b33f3-82fd-45a6-a8d4-36a7efae118c&interactionCount=1&isAnonUser=1&prevHadToken=0&landingPath=https%3A%2F%2Fopen.spotify.com%2Fintl-fr&groups=s00%3A1%2Cf00%3A0%2Cm00%3A0%2Ct00%3A0%2Cf11%3A0%2CID01%3A0%2Ci00%3A0%2CV2STACK3%3A0%2CV2STACK11%3A0%2CV2STACK20%3A0%2Cm03%3A1%2Cm02%3A0%2Ct02%3A0&crTime=1774691058440
@@ -0,0 +1,24 @@
# Netscape HTTP Cookie File
# https://curl.haxx.se/rfc/cookie_spec.html
# This is a generated file! Do not edit.
.youtube.com TRUE / TRUE 1805876431 LOGIN_INFO AFmmF2swRQIhAL7tCTP8h1YtJqD9rC6zsC6YE46v3fASEUTjc8EOSGNXAiAjU6EHiizA2IzntEtCg-G1lP_gorwuY00k-addubLgmA:QUQ3MjNmeGtNZmJfMVNnUUlZUU05a3FrTDVPTzBNQUh6QmFkenpBVHBSVnRVdWNNMGpBekoxejRDazhiM1hoQ3IwVFYxMGU0U1BReXVlaWIwbngzdkw3bll0d2t5cXFSZ2FoRGxFOTh3NERqcWVpeEJnMlZIRkJZQktSYVdFb2dCVTRhOHNVbG5XZS1oams5UnpZSFRtLW05MnhJWWNYMF9R
.youtube.com TRUE / FALSE 1809250908 HSID Ap1Ktez7KLJvMcfG8
.youtube.com TRUE / TRUE 1809250908 SSID A03fx97pWsoKYOsU9
.youtube.com TRUE / FALSE 1809250908 APISID n7TdccBv5YzuEEjG/AEM9D_BnBqUm62U_Y
.youtube.com TRUE / TRUE 1809250908 SAPISID 0eHDQEQTwijjZ3mv/ARADRLaDYio2vblqy
.youtube.com TRUE / TRUE 1809250908 __Secure-1PAPISID 0eHDQEQTwijjZ3mv/ARADRLaDYio2vblqy
.youtube.com TRUE / TRUE 1809250908 __Secure-3PAPISID 0eHDQEQTwijjZ3mv/ARADRLaDYio2vblqy
.youtube.com TRUE / TRUE 1809250911 PREF tz=Europe.Paris&f6=40000000&f5=30000&f7=100
.youtube.com TRUE / FALSE 1809250908 SID g.a0008QhuwSBdti8DNYxyM9YU69alpbC_ld3I6kiAxKeP6cg4_NnE_b6noF5W5c7JIXJuvQHtDAACgYKAVoSARUSFQHGX2Mi2fAFOn_2j9a1bnLKvKYP3xoVAUF8yKoA4SERLCyAbVaftrjhATb_0076
.youtube.com TRUE / TRUE 1809250908 __Secure-1PSID g.a0008QhuwSBdti8DNYxyM9YU69alpbC_ld3I6kiAxKeP6cg4_NnEfA52Qo2TQe6gruTXh5LFJQACgYKAY0SARUSFQHGX2Mi__S3mbPwuCiiEx94gGvNqBoVAUF8yKo-ZrKf_s2EQG2jul2aKe0W0076
.youtube.com TRUE / TRUE 1809250908 __Secure-3PSID g.a0008QhuwSBdti8DNYxyM9YU69alpbC_ld3I6kiAxKeP6cg4_NnEazRFI-U-38Z9y0sBLs7TEwACgYKAXUSARUSFQHGX2Mima2kK-IIBhw-jqrpsNKuEhoVAUF8yKoqNywHa-JTB0NX6t9irRuB0076
.youtube.com TRUE / TRUE 1806226914 __Secure-1PSIDTS sidts-CjQBWhotCYGbiWl6TcoeJUJMrce_wu2IMaLDuWbSbGO0OzKH7lAP5iRNWl2qTmtw0uCDMI-VEAA
.youtube.com TRUE / TRUE 1806226914 __Secure-3PSIDTS sidts-CjQBWhotCYGbiWl6TcoeJUJMrce_wu2IMaLDuWbSbGO0OzKH7lAP5iRNWl2qTmtw0uCDMI-VEAA
.youtube.com TRUE / TRUE 1808234883 __Secure-YEC CgtZeDcyYXZqZkotVSjjxJ7OBjIoCgJGUhIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgDg%3D%3D
.youtube.com TRUE / FALSE 1806226916 SIDCC AKEyXzVAGyD3_8xiy8F0Gmdm-_JLPu5j0KE4_cKdxN7sPyHsuJhSBn8IXNQw7qxSH5EdVtQq
.youtube.com TRUE / TRUE 1806226916 __Secure-1PSIDCC AKEyXzV9dFFb4cqbY4VdNXB56f9YNjrhmFDkoK9bL8gkjhUqYoWo6et6t91NXFEpTcBz5Oeq
.youtube.com TRUE / TRUE 1806226916 __Secure-3PSIDCC AKEyXzWQ4aO8HDUbbYFjeyBoOfi0yVDZDkRnxFc6uetetjVumafheA_rImqo_efirpYaarI9mHk
.youtube.com TRUE / TRUE 0 YSC qXtIVhsTNnQ
.youtube.com TRUE / TRUE 1808818916 VISITOR_PRIVACY_METADATA CgJGUhIiEh4SHAsMDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicgDg%3D%3D
.youtube.com TRUE / TRUE 1790158665 __Secure-ROLLOUT_TOKEN CITl2fHjh52lNRDU0su3pauRAxixovr-7L-TAw%3D%3D
+558
View File
@@ -0,0 +1,558 @@
name: jellystack
networks:
media_network:
name: media_network
driver: bridge
attachable: true
services:
# Gluetun - Manage VPN
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
hostname: gluetun
cap_add:
- NET_ADMIN
restart: always
secrets:
- wireguard_private_key
env_file: ./env/gluetun.env
volumes:
- wireguard:/gluetun
networks:
- media_network
ports:
- 8100:8000 # Remote Control VPN
- 2648:2648/tcp # cross-seed
- 8989:8989 # sonarr
- 8081:8081 # medusa
- 7878:7878 # radarr
- 9696:9696 # prowlarr
- 8686:8686 # lidarr
- 6767:6767 # bazarr
- 9080:9080/tcp # qBit
- 8694:8694/tcp # qBit
- 6881:6881/udp # qBit
- 8080:8080 # SABnzbd
- 5656:5656/tcp # kapowarr
# - 5004:5004/tcp # cabernet
# - 6077:6077/tcp # cabernet
- 7474:7474 # autobrr
- 8191:8191/tcp # flaresolverr
devices:
- /dev/net/tun:/dev/net/tun
# Qbittorent - torrenting software
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
network_mode: "service:gluetun"
restart: always
env_file: ./env/dnl.env
volumes:
- qbittorent:/config
- torrents:/data/torrents
healthcheck:
test: curl -f http://localhost:9080 || exit 1
interval: 10s
timeout: 3s
start_period: 60s
depends_on:
gluetun:
condition: service_healthy
restart: true
# SABnzbd
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:latest
container_name: sabnzbd
restart: always
network_mode: "service:gluetun"
depends_on:
gluetun:
condition: service_healthy
restart: true
volumes:
- sabnzbd:/config
- usenet:/downloads
- media:/data
env_file: ./env/dnl.env
# Sonarr - Find shows automatically
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
network_mode: "service:gluetun"
restart: always
env_file: ./env/arr.env
volumes:
- sonarr:/config
- media:/data
- tv-shows:/data/tv-shows
- downloads:/downloads
healthcheck:
test: curl -f http://localhost:8989/ping || exit 1
interval: 10s
timeout: 3s
start_period: 60s
depends_on:
gluetun:
condition: service_healthy
restart: true
qbittorrent:
condition: service_healthy
restart: true
# Radarr - Find movies automatically
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
network_mode: "service:gluetun"
restart: always
env_file: ./env/arr.env
volumes:
- radarr:/config
- media:/data
- movies:/data/movies
- downloads:/downloads
healthcheck:
test: curl -f http://localhost:7878/ping || exit 1
interval: 10s
timeout: 3s
start_period: 60s
depends_on:
gluetun:
condition: service_healthy
restart: true
qbittorrent:
condition: service_healthy
restart: true
# Prowlarr - Manages Sonarr, Radarr and download client
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
network_mode: "service:gluetun"
restart: always
env_file: ./env/arr.env
volumes:
- prowlarr:/config
healthcheck:
test: curl -f http://localhost:9696/ping || exit 1
interval: 10s
timeout: 3s
start_period: 60s
depends_on:
gluetun:
condition: service_healthy
restart: true
qbittorrent:
condition: service_healthy
restart: true
sonarr:
condition: service_healthy
restart: true
radarr:
condition: service_healthy
restart: true
# Bazarr - Subtitles. Try to use SRT format if you can rather than PGS due to performance issues
bazarr:
container_name: bazarr
image: lscr.io/linuxserver/bazarr:latest
restart: always
network_mode: "service:gluetun"
env_file: ./env/arr.env
volumes:
- bazarr:/config
- media:/data/media
healthcheck:
test: curl -f http://localhost:6767 || exit 1
interval: 10s
timeout: 3s
start_period: 60s
depends_on:
gluetun:
condition: service_healthy
restart: true
# Unpacker - Used to unzip zipped files
unpackerr:
image: golift/unpackerr:latest
container_name: unpackerr
restart: always
env_file: ./env/arr.env
networks:
- media_network
volumes:
- unpackerr:/config
- media:/data
- downloads:/downloads
depends_on:
sonarr:
condition: service_healthy
restart: true
radarr:
condition: service_healthy
restart: true
# Jellyfin - Media server
jellyfin:
image: ghcr.io/linuxserver/jellyfin:latest
container_name: jellyfin
hostname: jellyfin
restart: always
privileged: true
env_file: ./env/jfn.env
volumes:
- jellyfin:/config
- cache:/cache
- media:/media
networks:
- media_network
ports:
- 8096:8096
- 8920:8920
devices:
- /dev/dri:/dev/dri # Required for jellyfin HW transcoding / QuickSynci
- /dev/dma_heap:/dev/dma_heap
- /dev/fb0:/dev/fb0
- /dev/mali0:/dev/mali0
- /dev/rga:/dev/rga
- /dev/mpp_service:/dev/mpp_service
healthcheck:
test: curl -i http://localhost:8096/health || exit 1
interval: 10s
timeout: 3s
start_period: 60s
# Seer - Allows users to request media on their own
seerr:
container_name: seerr
image: ghcr.io/seerr-team/seerr:latest
init: true
restart: always
environment:
- LOG_LEVEL=debug
- PORT=5055
networks:
- media_network
ports:
- 5055:5055
volumes:
- seerr:/app/config
# - media:/data/media
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
start_period: 20s
timeout: 3s
interval: 15s
retries: 3
depends_on:
jellyfin:
condition: service_healthy
restart: true
# Wizarr - Create a share links that you can send to users to invite them to your media server
wizarr:
container_name: wizarr
image: ghcr.io/wizarrrr/wizarr:latest
restart: always
volumes:
- wizarr:/data/database
networks:
- media_network
ports:
- 5690:5690
# Tdarr - Transcode videos from one format to another like x265 or H.265
tdarr:
container_name: tdarr
image: ghcr.io/haveagitgat/tdarr:latest
privileged: true
restart: always
environment:
- PUID=1002
- PGID=1002
- TZ=Europe/Paris
- UMASK_SET=002
- nodeName=ServerNode
- serverIP=0.0.0.0
- serverPort=8266
- webUIPort=8265
- internalNode=true
- inContainer=true
- ffmpegVersion=6
volumes:
- tdarr:/app/configs
- tdarr_server:/app/server
- tdarr_logs:/app/logs
- media:/data/media
- transcode_cache:/temp
networks:
- media_network
ports:
- 8265:8265 # webUI port
- 8266:8266 # server port
devices:
- /dev/dri:/dev/dri # Required for HW transcoding /share QuickSyncinc
- /dev/dma_heap:/dev/dma_heap
- /dev/mali0:/dev/mali0
- /dev/rga:/dev/rga
- /dev/mpp_service:/dev/mpp_service
tdarr-node:
container_name: tdarr-node
image: ghcr.io/haveagitgat/tdarr_node:latest
restart: always
network_mode: service:tdarr
environment:
- TZ=Europe/Paris
- PUID=1002
- PGID=1002
- UMASK_SET=002
- nodeName=MainNode
- serverIP=0.0.0.0
- serverPort=8266
- inContainer=true
volumes:
- tdarr:/app/configs
- tdarr_logs:/app/logs
- media:/data/media
- transcode_cache:/temp
music-grabber:
image: g33kphr33k/musicgrabber:latest
container_name: music-grabber
restart: always
shm_size: '2gb'
ports:
- "38274:8080"
volumes:
- music:/music
- music-grabber:/data
environment:
- MUSIC_DIR=/music
- DB_PATH=/data/music_grabber.db
# Optional: serve behind a reverse-proxy subpath (proxy must strip the prefix)
# - ROOT_PATH=/musicgrabber
- ENABLE_MUSICBRAINZ=true
- DEFAULT_CONVERT_TO_FLAC=true
# Optional: Run as specific user (like *arr stack) for correct file permissions
- PUID=1000
- PGID=1000
# Optional: Custom bind address/port (useful for IPv6 or non-standard setups)
- LISTEN_ADDR=0.0.0.0
- LISTEN_PORT=8080
# Optional: Navidrome auto-rescan
- NAVIDROME_URL=http://navidrome:4533
- NAVIDROME_USER=admin
- NAVIDROME_PASS=sandstorm-outcast-treat
# Optional: Jellyfin auto-rescan
- JELLYFIN_URL=https://jellyfin.delmar.bzh
- JELLYFIN_API_KEY=65e51490397749d6945c4561a53e012a
# AcoustID API key for audio fingerprinting (https://acoustid.org/api-key)
- ACOUSTID_API_KEY=4b5DGYGrih
# Optional: Notifications
- NOTIFY_ON=playlists,bulk,errors
# - TELEGRAM_WEBHOOK_URL=https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}
# - WEBHOOK_URL=https://your-webhook-endpoint.com/hook
- APPRISE_URL=gotify://gotify.delmar.bzh/A-4Fe2UBRbV5J_J
- SMTP_HOST=pro1.mail.ovh.net
- SMTP_PORT=587
- SMTP_USER=admin@delmar.bzh
- SMTP_PASS=sxS4GA8rBfmFkCFL
- SMTP_TO=jme69@delmar.bzh
# Optional: Use a Monochrome mirror instead of the default instance
# - MONOCHROME_API_URL=https://api.monochrome.tf
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: 1000:1000
ports:
- "4533:4533"
restart: always
environment:
# Optional: put your config options customization here. Examples:
- ND_LOGLEVEL=debug
volumes:
- navidrome:/data:rw
- music:/music:ro
volumes:
wireguard:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/wireguard"
qbittorent:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/qbittorent"
sabnzbd:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/sabnzbd"
sabnzbd_backups:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/sabnzbd/backups"
nzb_files:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/sabnzbd/Downloads/nzb_files"
sonarr:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/sonarr"
radarr:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/radarr"
prowlarr:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/prowlarr"
bazarr:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/bazarr"
unpackerr:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/unpackerr"
jellyfin:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/jellyfin"
navidrome:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/navidrome"
music-grabber:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/music-grabber"
tdarr:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/tdarr"
tdarr_server:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/tdarr_server"
tdarr_logs:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/tdarr_logs"
transcode_cache:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/tdarr_cache"
cache:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/cache"
seerr:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/seerr"
wizarr:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "./config/wizarr/data/database"
media:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.15,nolock,soft,rw"
device: "/srv/nfs4/media"
tv-shows:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.15,nolock,soft,rw"
device: "/srv/nfs4/media/tv-shows"
movies:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.15,nolock,soft,rw"
device: "/srv/nfs4/media/movies"
music:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.15,nolock,soft,rw"
device: "/srv/nfs4/media/music"
downloads:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.15,nolock,soft,rw"
device: "/srv/nfs4/media/downloads"
torrents:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.15,nolock,soft,rw"
device: "/srv/nfs4/downloads/torrents"
usenet:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.15,nolock,soft,rw"
device: "/srv/nfs4/downloads/usenet"
secrets:
wireguard_private_key:
file: ./secrets/wireguard_private_key.secret
bittorrent-user:
file: ./secrets/bittorrent-user.secret
bittorrent-password:
file: ./secrets/bittorrent-password.secret
radarr-api:
file: ./secrets/radarr-api.secret
sonarr-api:
file: ./secrets/sonarr-api.secret
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: downloads
name: downloads
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+52
View File
@@ -0,0 +1,52 @@
apiVersion: v1
data:
FAILED_IMPORT_MESSAGE_PATTERNS: |2-
[
"Not a Custom Format upgrade for existing",
"Not an upgrade for existing"
]
LIDARR_KEY: 738c46a0a81a481bb70f20c51e19ee79
LIDARR_URL: http://gluetun:8686
LOG_LEVEL: INFO
MIN_DOWNLOAD_SPEED: "100"
NO_STALLED_REMOVAL_QBIT_TAG: Don't Kill
PERMITTED_ATTEMPTS: "3"
PGID: "1000"
PUID: "1000"
QBITTORRENT_PASSWORD: sandstorm-outcast-treat
QBITTORRENT_URL: http://gluetun:9080
QBITTORRENT_USERNAME: admin
RADARR_KEY: 5426802b36704e1ab8d7b37bfbd6e0d4
RADARR_URL: http://gluetun:7878
REMOVE_FAILED: "True"
REMOVE_FAILED_IMPORTS: "True"
REMOVE_METADATA_MISSING: "True"
REMOVE_MISSING_FILES: "True"
REMOVE_ORPHANS: "True"
REMOVE_SLOW: "True"
REMOVE_STALLED: "True"
REMOVE_TIMER: "10"
REMOVE_UNMONITORED: "True"
RUN_PERIODIC_RESCANS: |2-
{
"SONARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7},
"RADARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7}
}
SONARR_KEY: facc8fdf9c3b420f878c6df9cb2fb78b
SONARR_URL: http://gluetun:8989
TZ: Europe/Paris
UN_LOG_FILE: /config/unpackerr.log
UN_RADARR_0_API_KEY: 5426802b36704e1ab8d7b37bfbd6e0d4
UN_RADARR_0_PATHS_0: /nfs/media/downloads/usenet/complete/radarr
UN_RADARR_0_TIMEOUT: 10s
UN_RADARR_0_URL: http://gluetun:7878
UN_SONARR_0_API_KEY: facc8fdf9c3b420f878c6df9cb2fb78b
UN_SONARR_0_PATHS_0: /nfs/media/downloads/usenet/complete/tv-sonarr
UN_SONARR_0_TIMEOUT: 10s
UN_SONARR_0_URL: http://gluetun:8989
UN_START_DELAY: 1m
kind: ConfigMap
metadata:
labels:
io.kompose.service: bazarr-env-arr-env
name: env-arr-env
+17
View File
@@ -0,0 +1,17 @@
apiVersion: v1
data:
GTN_ADDR: http://gluetun:8000
PGID: "1000"
PUID: "1000"
QBT_ADDR: http://gluetun:9080
QBT_PASSWORD: /run/secrets/bittorrent-passowrd
QBT_USERNAME: /run/secrets/bittorrent-user
TORRENTING_PORT: "8694"
TZ: Europe/Paris
UMASK: "002"
WEBUI_PORT: "9080"
kind: ConfigMap
metadata:
labels:
io.kompose.service: qbittorrent-env-dnl-env
name: env-dnl-env
+21
View File
@@ -0,0 +1,21 @@
apiVersion: v1
data:
DOT_PROVIDERS: cloudflare,google
PGID: "1000"
PUBLICIP_API: ip2location
PUID: "1000"
SERVER_COUNTRIES: France
TZ: Europe/Paris
UNBLOCK: usenetserver.com
UPDATER_PERIOD: 24h
VPN_AUTO_PORT_FORWARD: "true"
VPN_PORT_FORWARDING_STATUS_FILE: ./gluetun/forwarded_port
VPN_SERVICE_PROVIDER: protonvpn
VPN_TYPE: wireguard
WIREGUARD_ADDRESSES: 10.2.0.2/32
WIREGUARD_PRIVATE_KEY: /run/secrets/wireguard_private_key
kind: ConfigMap
metadata:
labels:
io.kompose.service: gluetun-env-gluetun-env
name: env-gluetun-env
+13
View File
@@ -0,0 +1,13 @@
apiVersion: v1
data:
JELLYFIN_PublishedServerUrl: https://jellyfin.delmar.bzh
LOG_LEVEL: info
PGID: "1000"
PUID: "1000"
SUGGESTARR_PORT: "5000"
TZ: Europe/Paris
kind: ConfigMap
metadata:
labels:
io.kompose.service: jellyfin-env-jfn-env
name: env-jfn-env
+70
View File
@@ -0,0 +1,70 @@
# arr-suite
PUID: 1000
PGID: 1000
TZ: Europe/Paris
# unpackerr
UN_START_DELAY=1m
UN_LOG_FILE: /config/unpackerr.log
# UMASK: 002
# UN_DEBUG: true
## Sonarr
UN_SONARR_0_URL: http://gluetun:8989
# UN_SONARR_0_API_KEY: /run/secrets/sonarr-api
UN_SONARR_0_API_KEY: facc8fdf9c3b420f878c6df9cb2fb78b
UN_SONARR_0_TIMEOUT=10s
UN_SONARR_0_PATHS_0=/nfs/media/downloads/usenet/complete/tv-sonarr
## Radarr
UN_RADARR_0_URL: http://gluetun:7878
# UN_RADARR_0_API_KEY: /run/secrets/radarr-api
UN_RADARR_0_API_KEY: 5426802b36704e1ab8d7b37bfbd6e0d4
UN_RADARR_0_TIMEOUT: 10s
UN_RADARR_0_PATHS_0: /nfs/media/downloads/usenet/complete/radarr
# declutarr
## General
# TEST_RUN=True
# SSL_VERIFICATION: False
LOG_LEVEL: INFO
## Features
REMOVE_TIMER: 10
REMOVE_FAILED: True
REMOVE_FAILED_IMPORTS: True
REMOVE_METADATA_MISSING: True
REMOVE_MISSING_FILES: True
REMOVE_ORPHANS: True
REMOVE_SLOW: True
REMOVE_STALLED: True
REMOVE_UNMONITORED: True
RUN_PERIODIC_RESCANS: '
{
"SONARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7},
"RADARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7}
}'
# Feature Settings
PERMITTED_ATTEMPTS: 3
NO_STALLED_REMOVAL_QBIT_TAG: Don't Kill
MIN_DOWNLOAD_SPEED: 100
FAILED_IMPORT_MESSAGE_PATTERNS: '
[
"Not a Custom Format upgrade for existing",
"Not an upgrade for existing"
]'
## Sonarr
SONARR_URL: http://gluetun:8989
# SONARR_KEY: /run/secrets/sonarr-api
SONARR_KEY: facc8fdf9c3b420f878c6df9cb2fb78b
## Radarr
RADARR_URL: http://gluetun:7878
# RADARR_KEY: /run/secrets/radarr-api
RADARR_KEY: 5426802b36704e1ab8d7b37bfbd6e0d4
## Lidarr
LIDARR_URL: http://gluetun:8686
# LIDARR_KEY: /run/secrets/lidarr-api
LIDARR_KEY: 738c46a0a81a481bb70f20c51e19ee79
## Readarr
# READARR_URL: http://gluetun:8787
# READARR_KEY: /run/secrets/readarr-api
## qBitorrent
QBITTORRENT_URL: http://gluetun:9080
QBITTORRENT_USERNAME: admin
QBITTORRENT_PASSWORD: sandstorm-outcast-treat
+22
View File
@@ -0,0 +1,22 @@
# All
PUID: 1000
PGID: 1000
TZ: Europe/Paris
BASE_PATH: /mnt/ssd/docker/compose/jellystack
# gluetun.env
VPN_SERVICE_PROVIDER: protonvpn
VPN_TYPE: wireguard
WIREGUARD_PRIVATE_KEY: /run/secrets/wireguard_private_key
WIREGUARD_ADDRESSES: 10.2.0.2/32
SERVER_COUNTRIES: France
MEDIA_SHARE: /nfs/media
NAS_MEDIA: /nfs/media
JELLYFIN_URL: https://jellyfin.delmar.bzh
SONARR_KEY: facc8fdf9c3b420f878c6df9cb2fb78
RADARR_KEY: 5426802b36704e1ab8d7b37bfbd6e0d4
READARR_KEY: f9ddc1e64d004ff88a01e0672ce10762
LIDARR_KEY: 738c46a0a81a481bb70f20c51e19ee79
OPENVPN_USER: u97gzcUx2gei2toi
OPENVPN_PASSWORD: I78VQcnazNoOY8jzpqBwuw38HglJHK21
OPENVPN_SERVER_COUNTRIES: France
+12
View File
@@ -0,0 +1,12 @@
# qBittorrent
PUID: 1000
PGID: 1000
UMASK: 002
TZ: Europe/Paris
WEBUI_PORT: 9080
TORRENTING_PORT: 8694
# Bittorrent Port Forwarder
QBT_USERNAME: /run/secrets/bittorrent-user
QBT_PASSWORD: /run/secrets/bittorrent-passowrd
QBT_ADDR: http://gluetun:9080
GTN_ADDR: http://gluetun:8000
+16
View File
@@ -0,0 +1,16 @@
# gluetun.env
PUID: 1000
PGID: 1000
TZ: Europe/Paris
VPN_SERVICE_PROVIDER: protonvpn
VPN_TYPE: wireguard
VPN_PORT_FORWARDING_STATUS_FILE: ./gluetun/forwarded_port
UPDATER_PERIOD: 24h
DOT_PROVIDERS: cloudflare,google
PUBLICIP_API: ip2location
# Wireguard Settings:
WIREGUARD_PRIVATE_KEY: /run/secrets/wireguard_private_key
WIREGUARD_ADDRESSES: 10.2.0.2/32
SERVER_COUNTRIES: France
VPN_AUTO_PORT_FORWARD: true
UNBLOCK: usenetserver.com
+11
View File
@@ -0,0 +1,11 @@
# jellyfin
PUID: 1000
PGID: 1000
JELLYFIN_PublishedServerUrl: https://jellyfin.delmar.bzh
TZ: Europe/Paris
# jellyseerr.env
LOG_LEVEL: debug
# suggestarr
LOG_LEVEL: info
## Optional: Customize the port (defaults to 5000 if not set)
SUGGESTARR_PORT: 5000
+186
View File
@@ -0,0 +1,186 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: gluetun
name: gluetun
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: gluetun
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: gluetun
spec:
containers:
- envFrom:
- configMapRef:
name: env-gluetun-env
image: qmcgaw/gluetun:latest
name: gluetun
ports:
- containerPort: 8000
protocol: TCP
- containerPort: 2648
protocol: TCP
- containerPort: 8989
protocol: TCP
- containerPort: 8081
protocol: TCP
- containerPort: 7878
protocol: TCP
- containerPort: 9696
protocol: TCP
- containerPort: 8686
protocol: TCP
- containerPort: 6767
protocol: TCP
- containerPort: 9080
protocol: TCP
- containerPort: 8694
protocol: TCP
- containerPort: 6881
protocol: UDP
- containerPort: 8080
protocol: TCP
- containerPort: 5656
protocol: TCP
- containerPort: 7474
protocol: TCP
- containerPort: 8191
protocol: TCP
securityContext:
capabilities:
add:
- NET_ADMIN
volumeMounts:
- mountPath: /run/secrets
name: wireguard-private-key
subPath: wireguard-private-key
- mountPath: /gluetun
name: wireguard
- envFrom:
- configMapRef:
name: env-arr-env
image: lscr.io/linuxserver/bazarr:latest
livenessProbe:
exec:
command:
- curl -f http://localhost:6767 || exit 1
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 3
name: bazarr
volumeMounts:
- mountPath: /config
name: bazarr
- mountPath: /data/media
name: media
- envFrom:
- configMapRef:
name: env-arr-env
image: lscr.io/linuxserver/prowlarr:latest
livenessProbe:
exec:
command:
- curl -f http://localhost:9696/ping || exit 1
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 3
name: prowlarr
volumeMounts:
- mountPath: /config
name: prowlarr
- envFrom:
- configMapRef:
name: env-arr-env
image: lscr.io/linuxserver/sonarr:latest
livenessProbe:
exec:
command:
- curl -f http://localhost:8989/ping || exit 1
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 3
name: sonarr
volumeMounts:
- mountPath: /config
name: sonarr
- mountPath: /data
name: media
- mountPath: /data/tv-shows
name: tv-shows
- mountPath: /downloads
name: downloads
- envFrom:
- configMapRef:
name: env-arr-env
image: lscr.io/linuxserver/radarr:latest
livenessProbe:
exec:
command:
- curl -f http://localhost:7878/ping || exit 1
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 3
name: radarr
volumeMounts:
- mountPath: /config
name: radarr
- mountPath: /data
name: media
- mountPath: /data/movies
name: movies
- mountPath: /downloads
name: downloads
- envFrom:
- configMapRef:
name: env-dnl-env
image: lscr.io/linuxserver/sabnzbd:latest
name: sabnzbd
volumeMounts:
- mountPath: /config
name: sabnzbd
- mountPath: /downloads
name: usenet
- mountPath: /data
name: media
- envFrom:
- configMapRef:
name: env-dnl-env
image: lscr.io/linuxserver/qbittorrent:latest
livenessProbe:
exec:
command:
- curl -f http://localhost:9080 || exit 1
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 3
name: qbittorrent
volumeMounts:
- mountPath: /config
name: qbittorent
- mountPath: /data/torrents
name: torrents
hostname: gluetun
restartPolicy: Always
volumes:
- name: wireguard-private-key
secret:
items:
- key: wireguard-private-key
path: wireguard-private-key
secretName: wireguard-private-key
- name: wireguard
persistentVolumeClaim:
claimName: wireguard
+59
View File
@@ -0,0 +1,59 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: gluetun
name: gluetun
spec:
ports:
- name: "8100"
port: 8100
targetPort: 8000
- name: "2648"
port: 2648
targetPort: 2648
- name: "8989"
port: 8989
targetPort: 8989
- name: "8081"
port: 8081
targetPort: 8081
- name: "7878"
port: 7878
targetPort: 7878
- name: "9696"
port: 9696
targetPort: 9696
- name: "8686"
port: 8686
targetPort: 8686
- name: "6767"
port: 6767
targetPort: 6767
- name: "9080"
port: 9080
targetPort: 9080
- name: "8694"
port: 8694
targetPort: 8694
- name: "6881"
port: 6881
protocol: UDP
targetPort: 6881
- name: "8080"
port: 8080
targetPort: 8080
- name: "5656"
port: 5656
targetPort: 5656
- name: "7474"
port: 7474
targetPort: 7474
- name: "8191"
port: 8191
targetPort: 8191
selector:
io.kompose.service: gluetun
+63
View File
@@ -0,0 +1,63 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: jellyfin
name: jellyfin
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: jellyfin
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: jellyfin
spec:
containers:
- envFrom:
- configMapRef:
name: env-jfn-env
image: ghcr.io/linuxserver/jellyfin:latest
livenessProbe:
exec:
command:
- curl -i http://localhost:8096/health || exit 1
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 3
name: jellyfin
ports:
- containerPort: 8096
protocol: TCP
- containerPort: 8920
protocol: TCP
securityContext:
privileged: true
volumeMounts:
- mountPath: /config
name: jellyfin
- mountPath: /cache
name: cache
- mountPath: /media
name: media
hostname: jellyfin
restartPolicy: Always
volumes:
- name: jellyfin
persistentVolumeClaim:
claimName: jellyfin
- name: cache
persistentVolumeClaim:
claimName: cache
- name: media
persistentVolumeClaim:
claimName: media
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: jellyfin
name: jellyfin
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+19
View File
@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: jellyfin
name: jellyfin
spec:
ports:
- name: "8096"
port: 8096
targetPort: 8096
- name: "8920"
port: 8920
targetPort: 8920
selector:
io.kompose.service: jellyfin
+519
View File
@@ -0,0 +1,519 @@
apiVersion: v1
kind: Namespace
metadata:
name: jellystack
---
# =========================
# PROWLARR
# =========================
apiVersion: apps/v1
kind: Deployment
metadata:
name: prowlarr
namespace: jellystack
spec:
replicas: 1
selector:
matchLabels:
app: prowlarr
template:
metadata:
labels:
app: prowlarr
spec:
containers:
- name: prowlarr
image: lscr.io/linuxserver/prowlarr:latest
ports:
- containerPort: 9696
name: http
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: "Europe/Paris"
volumeMounts:
- name: cfg
mountPath: /config
volumes:
- name: cfg
hostPath:
path: /data/arr/config/prowlarr
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
name: prowlarr
namespace: jellystack
spec:
selector:
app: prowlarr
ports:
- name: http
port: 9696
targetPort: http
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: prowlarr
namespace: jellystack
spec:
ingressClassName: traefik
rules:
- host: prowlarr.delmar.bzh
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: prowlarr
port:
number: 9696
---
# =========================
# DOWNLOADER
# =========================
apiVersion: apps/v1
kind: Deployment
metadata:
name: downloader
namespace: jellystack
spec:
replicas: 1
selector:
matchLabels:
app: downloader
template:
metadata:
labels:
app: downloader
spec:
containers:
- name: downloader
image: lscr.io/linuxserver/downloader:latest
ports:
- containerPort: 8080
name: webui
- containerPort: 6881
name: bt-tcp
protocol: TCP
- containerPort: 6881
name: bt-udp
protocol: UDP
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: "Europe/Paris"
- name: WEBUI_PORT
value: "8080"
volumeMounts:
- name: cfg
mountPath: /config
- name: dl
mountPath: /downloads
- name: dl-inc
mountPath: /incomplete
volumes:
- name: cfg
hostPath:
path: /data/arr/config/downloader
type: DirectoryOrCreate
- name: dl
hostPath:
path: /data/arr/downloads
type: DirectoryOrCreate
- name: dl-inc
hostPath:
path: /data/arr/incomplete
---
apiVersion: v1
kind: Service
metadata:
name: downloader
namespace: jellystack
spec:
selector:
app: downloader
ports:
- name: webui
port: 8080
targetPort: webui
---
# Expose P2P ports (forward from router to node IP)
apiVersion: v1
kind: Service
metadata:
name: downloader-p2p
namespace: jellystack
spec:
type: NodePort
selector:
app: downloader
ports:
- name: bt-tcp
port: 6881
targetPort: bt-tcp
nodePort: 31681
protocol: TCP
- name: bt-udp
port: 6881
targetPort: bt-udp
nodePort: 31682
protocol: UDP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: downloader
namespace: jellystack
spec:
ingressClassName: traefik
rules:
- host: downloader.delmar.bzh
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: downloader
port:
number: 8080
---
# =========================
# SONARR
# =========================
apiVersion: apps/v1
kind: Deployment
metadata:
name: sonarr
namespace: jellystack
spec:
replicas: 1
selector:
matchLabels:
app: sonarr
template:
metadata:
labels:
app: sonarr
spec:
containers:
- name: sonarr
image: lscr.io/linuxserver/sonarr:latest
ports:
- containerPort: 8989
name: http
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: "Europe/Paris"
volumeMounts:
- name: cfg
mountPath: /config
- name: dl
mountPath: /downloads
- name: lib
mountPath: /media
volumes:
- name: cfg
hostPath:
path: /data/arr/config/sonarr
type: DirectoryOrCreate
- name: dl
hostPath:
path: /data/arr/downloads
type: DirectoryOrCreate
- name: lib
hostPath:
path: /data/arr/media
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
name: sonarr
namespace: jellystack
spec:
selector:
app: sonarr
ports:
- name: http
port: 8989
targetPort: http
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sonarr
namespace: jellystack
spec:
ingressClassName: traefik
rules:
- host: sonarr.delmar.bzh
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: sonarr
port:
number: 8989
---
# =========================
# RADARR
# =========================
apiVersion: apps/v1
kind: Deployment
metadata:
name: radarr
namespace: jellystack
spec:
replicas: 1
selector:
matchLabels:
app: radarr
template:
metadata:
labels:
app: radarr
spec:
containers:
- name: radarr
image: lscr.io/linuxserver/radarr:latest
ports:
- containerPort: 7878
name: http
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: "Europe/Paris"
volumeMounts:
- name: cfg
mountPath: /config
- name: dl
mountPath: /downloads
- name: lib
mountPath: /media
volumes:
- name: cfg
hostPath:
path: /data/arr/config/radarr
type: DirectoryOrCreate
- name: dl
hostPath:
path: /data/arr/downloads
type: DirectoryOrCreate
- name: lib
hostPath:
path: /data/arr/media
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
name: radarr
namespace: jellystack
spec:
selector:
app: radarr
ports:
- name: http
port: 7878
targetPort: http
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: radarr
namespace: jellystack
spec:
ingressClassName: traefik
rules:
- host: radarr.delmar.bzh
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: radarr
port:
number: 7878
---
# =========================
# BAZARR
# =========================
apiVersion: apps/v1
kind: Deployment
metadata:
name: bazarr
namespace: jellystack
spec:
replicas: 1
selector:
matchLabels:
app: bazarr
template:
metadata:
labels:
app: bazarr
spec:
containers:
- name: bazarr
image: lscr.io/linuxserver/bazarr:latest
ports:
- containerPort: 6767
name: http
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: "Europe/Paris"
volumeMounts:
- name: cfg
mountPath: /config
- name: lib
mountPath: /media
- name: subs
mountPath: /subtitles
volumes:
- name: cfg
hostPath:
path: /data/arr/config/bazarr
type: DirectoryOrCreate
- name: lib
hostPath:
path: /data/arr/media
type: DirectoryOrCreate
- name: subs
hostPath:
path: /data/arr/subtitles
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
name: bazarr
namespace: jellystack
spec:
selector:
app: bazarr
ports:
- name: http
port: 6767
targetPort: http
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: bazarr
namespace: jellystack
spec:
ingressClassName: traefik
rules:
- host: bazarr.delmar.bzh
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: bazarr
port:
number: 6767
---
# =========================
# JELLYFIN
# =========================
apiVersion: apps/v1
kind: Deployment
metadata:
name: jellyfin
namespace: jellystack
spec:
replicas: 1
selector:
matchLabels:
app: jellyfin
template:
metadata:
labels:
app: jellyfin
spec:
containers:
- name: jellyfin
image: lscr.io/linuxserver/jellyfin:latest
ports:
- containerPort: 8096
name: http
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: TZ
value: "Europe/Paris"
volumeMounts:
- name: cfg
mountPath: /config
- name: lib
mountPath: /media
volumes:
- name: cfg
hostPath:
path: /data/arr/config/jellyfin
type: DirectoryOrCreate
- name: lib
hostPath:
path: /data/arr/media
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
name: jellyfin
namespace: jellystack
spec:
selector:
app: jellyfin
ports:
- name: http
port: 8096
targetPort: http
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jellyfin
namespace: jellystack
spec:
ingressClassName: traefik
rules:
- host: jellyfin.delmar.bzh
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jellyfin
port:
number: 8096
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: media
name: media
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: movies
name: movies
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: music-grabber-data
name: music-grabber-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+86
View File
@@ -0,0 +1,86 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: music-grabber
name: music-grabber
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: music-grabber
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: music-grabber
spec:
containers:
- env:
- name: ACOUSTID_API_KEY
value: 4b5DGYGrih
- name: APPRISE_URL
value: gotify://gotify.delmar.bzh/A-4Fe2UBRbV5J_J
- name: DB_PATH
value: /data/music_grabber.db
- name: DEFAULT_CONVERT_TO_FLAC
value: "true"
- name: ENABLE_MUSICBRAINZ
value: "true"
- name: JELLYFIN_API_KEY
value: 65e51490397749d6945c4561a53e012a
- name: JELLYFIN_URL
value: https://jellyfin.delmar.bzh
- name: LISTEN_ADDR
value: 0.0.0.0
- name: LISTEN_PORT
value: "8080"
- name: MUSIC_DIR
value: /music
- name: NAVIDROME_PASS
value: sandstorm-outcast-treat
- name: NAVIDROME_URL
value: http://navidrome:4533
- name: NAVIDROME_USER
value: admin
- name: NOTIFY_ON
value: playlists,bulk,errors
- name: PGID
value: "1000"
- name: PUID
value: "1000"
- name: SMTP_HOST
value: pro1.mail.ovh.net
- name: SMTP_PASS
value: sxS4GA8rBfmFkCFL
- name: SMTP_PORT
value: "587"
- name: SMTP_TO
value: jme69@delmar.bzh
- name: SMTP_USER
value: admin@delmar.bzh
image: g33kphr33k/musicgrabber:latest
name: music-grabber
ports:
- containerPort: 8080
protocol: TCP
volumeMounts:
- mountPath: /music
name: music
- mountPath: /data
name: music-grabber
restartPolicy: Always
volumes:
- name: music
persistentVolumeClaim:
claimName: music
- name: music-grabber
persistentVolumeClaim:
claimName: music-grabber
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: music-grabber
name: music-grabber
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+16
View File
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: music-grabber
name: music-grabber
spec:
ports:
- name: "38274"
port: 38274
targetPort: 8080
selector:
io.kompose.service: music-grabber
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: music
name: music
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: navidrome-claim0
name: navidrome-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+51
View File
@@ -0,0 +1,51 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: navidrome
name: navidrome
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: navidrome
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: navidrome
spec:
containers:
- env:
- name: ND_LOGLEVEL
value: debug
image: deluan/navidrome:latest
name: navidrome
ports:
- containerPort: 4533
protocol: TCP
securityContext:
runAsGroup: 1000
runAsUser: 1000
volumeMounts:
- mountPath: /data
name: navidrome
- mountPath: /music
name: music
readOnly: true
restartPolicy: Always
volumes:
- name: navidrome
persistentVolumeClaim:
claimName: navidrome
- name: music
persistentVolumeClaim:
claimName: music
readOnly: true
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: navidrome
name: navidrome
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+16
View File
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: navidrome
name: navidrome
spec:
ports:
- name: "4533"
port: 4533
targetPort: 4533
selector:
io.kompose.service: navidrome
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: prowlarr
name: prowlarr
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: qbittorent
name: qbittorent
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+9
View File
@@ -0,0 +1,9 @@
apiVersion: v1
data:
radarr-api: YmM2NWU3NDA4YzFhNDg4YmIwOGFhZDQ1ODA0MzU1MDkK
kind: Secret
metadata:
labels:
io.kompose.service: radarr-api
name: radarr-api
type: Opaque
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: radarr
name: radarr
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: sabnzbd
name: sabnzbd
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1 @@
sandstorm-outcast-treat
@@ -0,0 +1 @@
admin
+1
View File
@@ -0,0 +1 @@
428ef8a4a2be42a4ba7054bed1920497
+1
View File
@@ -0,0 +1 @@
b3c344c5fb84442db3cab4abf09c5888
+1
View File
@@ -0,0 +1 @@
df1c727b1d6d4300859a6e725725f6d8
+1
View File
@@ -0,0 +1 @@
bc65e7408c1a488bb08aad4580435509
+1
View File
@@ -0,0 +1 @@
7c5cda4f4a03436eaf32fc08adbf5475
+1
View File
@@ -0,0 +1 @@
8e5651fab5d148d79da30ceb9d0e526d
@@ -0,0 +1 @@
2ARStJOsaO9LzNijZP+/HHd+72eY7uTW7i428Nt63E4=
+51
View File
@@ -0,0 +1,51 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: seerr
name: seerr
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: seerr
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: seerr
spec:
containers:
- env:
- name: LOG_LEVEL
value: debug
- name: PORT
value: "5055"
image: ghcr.io/seerr-team/seerr:latest
livenessProbe:
exec:
command:
- wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
failureThreshold: 3
initialDelaySeconds: 20
periodSeconds: 15
timeoutSeconds: 3
name: seerr
ports:
- containerPort: 5055
protocol: TCP
volumeMounts:
- mountPath: /app/config
name: seerr
restartPolicy: Always
volumes:
- name: seerr
persistentVolumeClaim:
claimName: seerr
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: seerr
name: seerr
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+16
View File
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: seerr
name: seerr
spec:
ports:
- name: "5055"
port: 5055
targetPort: 5055
selector:
io.kompose.service: seerr
+9
View File
@@ -0,0 +1,9 @@
apiVersion: v1
data:
sonarr-api: OGU1NjUxZmFiNWQxNDhkNzlkYTMwY2ViOWQwZTUyNmQK
kind: Secret
metadata:
labels:
io.kompose.service: sonarr-api
name: sonarr-api
type: Opaque
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: sonarr
name: sonarr
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-claim0
name: tdarr-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-claim1
name: tdarr-claim1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-claim2
name: tdarr-claim2
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-claim4
name: tdarr-claim4
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+113
View File
@@ -0,0 +1,113 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: tdarr
name: tdarr
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: tdarr
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: tdarr
spec:
containers:
- env:
- name: PGID
value: "1002"
- name: PUID
value: "1002"
- name: TZ
value: Europe/Paris
- name: UMASK_SET
value: "002"
- name: ffmpegVersion
value: "6"
- name: inContainer
value: "true"
- name: internalNode
value: "true"
- name: nodeName
value: ServerNode
- name: serverIP
value: 0.0.0.0
- name: serverPort
value: "8266"
- name: webUIPort
value: "8265"
image: ghcr.io/haveagitgat/tdarr:latest
name: tdarr
ports:
- containerPort: 8265
protocol: TCP
- containerPort: 8266
protocol: TCP
securityContext:
privileged: true
volumeMounts:
- mountPath: /app/configs
name: tdarr
- mountPath: /app/server
name: tdarr-server
- mountPath: /app/logs
name: tdarr-logs
- mountPath: /data/media
name: media
- mountPath: /temp
name: transcode-cache
- env:
- name: PGID
value: "1002"
- name: PUID
value: "1002"
- name: TZ
value: Europe/Paris
- name: UMASK_SET
value: "002"
- name: inContainer
value: "true"
- name: nodeName
value: MainNode
- name: serverIP
value: 0.0.0.0
- name: serverPort
value: "8266"
image: ghcr.io/haveagitgat/tdarr_node:latest
name: tdarr-node
volumeMounts:
- mountPath: /app/configs
name: tdarr
- mountPath: /app/logs
name: tdarr-logs
- mountPath: /data/media
name: media
- mountPath: /temp
name: transcode-cache
restartPolicy: Always
volumes:
- name: tdarr
persistentVolumeClaim:
claimName: tdarr
- name: tdarr-server
persistentVolumeClaim:
claimName: tdarr-server
- name: tdarr-logs
persistentVolumeClaim:
claimName: tdarr-logs
- name: media
persistentVolumeClaim:
claimName: media
- name: transcode-cache
persistentVolumeClaim:
claimName: transcode-cache
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-logs
name: tdarr-logs
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-node-claim0
name: tdarr-node-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-node-claim1
name: tdarr-node-claim1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-node-claim3
name: tdarr-node-claim3
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr
name: tdarr
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tdarr-server
name: tdarr-server
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+19
View File
@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: tdarr
name: tdarr
spec:
ports:
- name: "8265"
port: 8265
targetPort: 8265
- name: "8266"
port: 8266
targetPort: 8266
selector:
io.kompose.service: tdarr
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: torrents
name: torrents
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: transcode-cache
name: transcode-cache
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: tv-shows
name: tv-shows
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+48
View File
@@ -0,0 +1,48 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: unpackerr
name: unpackerr
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: unpackerr
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: unpackerr
spec:
containers:
- envFrom:
- configMapRef:
name: env-arr-env
image: golift/unpackerr:latest
name: unpackerr
volumeMounts:
- mountPath: /config
name: unpackerr
- mountPath: /data
name: media
- mountPath: /downloads
name: downloads
restartPolicy: Always
volumes:
- name: unpackerr
persistentVolumeClaim:
claimName: unpackerr
- name: media
persistentVolumeClaim:
claimName: media
- name: downloads
persistentVolumeClaim:
claimName: downloads
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: unpackerr
name: unpackerr
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: usenet
name: usenet
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: wireguard
name: wireguard
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,9 @@
apiVersion: v1
data:
wireguard-private-key: MkFSU3RKT3NhTzlMek5palpQKy9ISGQrNzJlWTd1VFc3aTQyOE50NjNFND0K
kind: Secret
metadata:
labels:
io.kompose.service: wireguard-private-key
name: wireguard-private-key
type: Opaque
+38
View File
@@ -0,0 +1,38 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: wizarr
name: wizarr
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: wizarr
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: wizarr
spec:
containers:
- image: ghcr.io/wizarrrr/wizarr:latest
name: wizarr
ports:
- containerPort: 5690
protocol: TCP
volumeMounts:
- mountPath: /data/database
name: wizarr
restartPolicy: Always
volumes:
- name: wizarr
persistentVolumeClaim:
claimName: wizarr
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: wizarr
name: wizarr
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
+16
View File
@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: wizarr
name: wizarr
spec:
ports:
- name: "5690"
port: 5690
targetPort: 5690
selector:
io.kompose.service: wizarr