From 01f6b2bdfcceb27b750e5418ca523bac9040ef6f Mon Sep 17 00:00:00 2001 From: julien Date: Mon, 6 Jul 2026 18:25:26 +0200 Subject: [PATCH] "Updates" --- jellystack/bazarr-persistentvolumeclaim.yaml | 12 + jellystack/bittorrent-password-secret.yaml | 9 + jellystack/bittorrent-user-secret.yaml | 9 + jellystack/cache-persistentvolumeclaim.yaml | 12 + jellystack/config/Gary-FR-94.conf | 16 + jellystack/config/config.toml | 145 +++++ .../cookies/open.spotify.com_cookies.txt | 11 + .../cookies/www.youtube.com_cookies.txt | 24 + jellystack/docker-compose.yaml | 558 ++++++++++++++++++ .../downloads-persistentvolumeclaim.yaml | 12 + jellystack/env-arr-env-configmap.yaml | 52 ++ jellystack/env-dnl-env-configmap.yaml | 17 + jellystack/env-gluetun-env-configmap.yaml | 21 + jellystack/env-jfn-env-configmap.yaml | 13 + jellystack/env/arr.env | 70 +++ jellystack/env/compose.env | 22 + jellystack/env/dnl.env | 12 + jellystack/env/gluetun.env | 16 + jellystack/env/jfn.env | 11 + jellystack/gluetun-deployment.yaml | 186 ++++++ jellystack/gluetun-service.yaml | 59 ++ jellystack/jellyfin-deployment.yaml | 63 ++ .../jellyfin-persistentvolumeclaim.yaml | 12 + jellystack/jellyfin-service.yaml | 19 + jellystack/k3s-jellystack.yaml | 519 ++++++++++++++++ jellystack/media-persistentvolumeclaim.yaml | 12 + jellystack/movies-persistentvolumeclaim.yaml | 12 + ...ic-grabber-data-persistentvolumeclaim.yaml | 12 + jellystack/music-grabber-deployment.yaml | 86 +++ .../music-grabber-persistentvolumeclaim.yaml | 12 + jellystack/music-grabber-service.yaml | 16 + jellystack/music-persistentvolumeclaim.yaml | 12 + ...avidrome-claim0-persistentvolumeclaim.yaml | 12 + jellystack/navidrome-deployment.yaml | 51 ++ .../navidrome-persistentvolumeclaim.yaml | 12 + jellystack/navidrome-service.yaml | 16 + .../prowlarr-persistentvolumeclaim.yaml | 12 + .../qbittorent-persistentvolumeclaim.yaml | 12 + jellystack/radarr-api-secret.yaml | 9 + jellystack/radarr-persistentvolumeclaim.yaml | 12 + jellystack/sabnzbd-persistentvolumeclaim.yaml | 12 + jellystack/secrets/bittorrent-password.secret | 1 + jellystack/secrets/bittorrent-user.secret | 1 + jellystack/secrets/jellyseerr-api.secret | 1 + jellystack/secrets/lidarr-api.secret | 1 + jellystack/secrets/prowlarr-api.secret | 1 + jellystack/secrets/radarr-api.secret | 1 + jellystack/secrets/sabnzdb-api.secret | 1 + jellystack/secrets/sonarr-api.secret | 1 + .../secrets/wireguard_private_key.secret | 1 + jellystack/seerr-deployment.yaml | 51 ++ jellystack/seerr-persistentvolumeclaim.yaml | 12 + jellystack/seerr-service.yaml | 16 + jellystack/sonarr-api-secret.yaml | 9 + jellystack/sonarr-persistentvolumeclaim.yaml | 12 + .../tdarr-claim0-persistentvolumeclaim.yaml | 12 + .../tdarr-claim1-persistentvolumeclaim.yaml | 12 + .../tdarr-claim2-persistentvolumeclaim.yaml | 12 + .../tdarr-claim4-persistentvolumeclaim.yaml | 12 + jellystack/tdarr-deployment.yaml | 113 ++++ .../tdarr-logs-persistentvolumeclaim.yaml | 12 + ...arr-node-claim0-persistentvolumeclaim.yaml | 12 + ...arr-node-claim1-persistentvolumeclaim.yaml | 12 + ...arr-node-claim3-persistentvolumeclaim.yaml | 12 + jellystack/tdarr-persistentvolumeclaim.yaml | 12 + .../tdarr-server-persistentvolumeclaim.yaml | 12 + jellystack/tdarr-service.yaml | 19 + .../torrents-persistentvolumeclaim.yaml | 12 + ...transcode-cache-persistentvolumeclaim.yaml | 12 + .../tv-shows-persistentvolumeclaim.yaml | 12 + jellystack/unpackerr-deployment.yaml | 48 ++ .../unpackerr-persistentvolumeclaim.yaml | 12 + jellystack/usenet-persistentvolumeclaim.yaml | 12 + .../wireguard-persistentvolumeclaim.yaml | 12 + jellystack/wireguard-private-key-secret.yaml | 9 + jellystack/wizarr-deployment.yaml | 38 ++ jellystack/wizarr-persistentvolumeclaim.yaml | 12 + jellystack/wizarr-service.yaml | 16 + 78 files changed, 2766 insertions(+) create mode 100644 jellystack/bazarr-persistentvolumeclaim.yaml create mode 100644 jellystack/bittorrent-password-secret.yaml create mode 100644 jellystack/bittorrent-user-secret.yaml create mode 100644 jellystack/cache-persistentvolumeclaim.yaml create mode 100644 jellystack/config/Gary-FR-94.conf create mode 100644 jellystack/config/config.toml create mode 100644 jellystack/cookies/open.spotify.com_cookies.txt create mode 100644 jellystack/cookies/www.youtube.com_cookies.txt create mode 100644 jellystack/docker-compose.yaml create mode 100644 jellystack/downloads-persistentvolumeclaim.yaml create mode 100644 jellystack/env-arr-env-configmap.yaml create mode 100644 jellystack/env-dnl-env-configmap.yaml create mode 100644 jellystack/env-gluetun-env-configmap.yaml create mode 100644 jellystack/env-jfn-env-configmap.yaml create mode 100644 jellystack/env/arr.env create mode 100644 jellystack/env/compose.env create mode 100644 jellystack/env/dnl.env create mode 100644 jellystack/env/gluetun.env create mode 100644 jellystack/env/jfn.env create mode 100644 jellystack/gluetun-deployment.yaml create mode 100644 jellystack/gluetun-service.yaml create mode 100644 jellystack/jellyfin-deployment.yaml create mode 100644 jellystack/jellyfin-persistentvolumeclaim.yaml create mode 100644 jellystack/jellyfin-service.yaml create mode 100644 jellystack/k3s-jellystack.yaml create mode 100644 jellystack/media-persistentvolumeclaim.yaml create mode 100644 jellystack/movies-persistentvolumeclaim.yaml create mode 100644 jellystack/music-grabber-data-persistentvolumeclaim.yaml create mode 100644 jellystack/music-grabber-deployment.yaml create mode 100644 jellystack/music-grabber-persistentvolumeclaim.yaml create mode 100644 jellystack/music-grabber-service.yaml create mode 100644 jellystack/music-persistentvolumeclaim.yaml create mode 100644 jellystack/navidrome-claim0-persistentvolumeclaim.yaml create mode 100644 jellystack/navidrome-deployment.yaml create mode 100644 jellystack/navidrome-persistentvolumeclaim.yaml create mode 100644 jellystack/navidrome-service.yaml create mode 100644 jellystack/prowlarr-persistentvolumeclaim.yaml create mode 100644 jellystack/qbittorent-persistentvolumeclaim.yaml create mode 100644 jellystack/radarr-api-secret.yaml create mode 100644 jellystack/radarr-persistentvolumeclaim.yaml create mode 100644 jellystack/sabnzbd-persistentvolumeclaim.yaml create mode 100644 jellystack/secrets/bittorrent-password.secret create mode 100644 jellystack/secrets/bittorrent-user.secret create mode 100644 jellystack/secrets/jellyseerr-api.secret create mode 100644 jellystack/secrets/lidarr-api.secret create mode 100644 jellystack/secrets/prowlarr-api.secret create mode 100644 jellystack/secrets/radarr-api.secret create mode 100644 jellystack/secrets/sabnzdb-api.secret create mode 100644 jellystack/secrets/sonarr-api.secret create mode 100644 jellystack/secrets/wireguard_private_key.secret create mode 100644 jellystack/seerr-deployment.yaml create mode 100644 jellystack/seerr-persistentvolumeclaim.yaml create mode 100644 jellystack/seerr-service.yaml create mode 100644 jellystack/sonarr-api-secret.yaml create mode 100644 jellystack/sonarr-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-claim0-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-claim1-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-claim2-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-claim4-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-deployment.yaml create mode 100644 jellystack/tdarr-logs-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-node-claim0-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-node-claim1-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-node-claim3-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-server-persistentvolumeclaim.yaml create mode 100644 jellystack/tdarr-service.yaml create mode 100644 jellystack/torrents-persistentvolumeclaim.yaml create mode 100644 jellystack/transcode-cache-persistentvolumeclaim.yaml create mode 100644 jellystack/tv-shows-persistentvolumeclaim.yaml create mode 100644 jellystack/unpackerr-deployment.yaml create mode 100644 jellystack/unpackerr-persistentvolumeclaim.yaml create mode 100644 jellystack/usenet-persistentvolumeclaim.yaml create mode 100644 jellystack/wireguard-persistentvolumeclaim.yaml create mode 100644 jellystack/wireguard-private-key-secret.yaml create mode 100644 jellystack/wizarr-deployment.yaml create mode 100644 jellystack/wizarr-persistentvolumeclaim.yaml create mode 100644 jellystack/wizarr-service.yaml diff --git a/jellystack/bazarr-persistentvolumeclaim.yaml b/jellystack/bazarr-persistentvolumeclaim.yaml new file mode 100644 index 0000000..1f2022a --- /dev/null +++ b/jellystack/bazarr-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: bazarr + name: bazarr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/bittorrent-password-secret.yaml b/jellystack/bittorrent-password-secret.yaml new file mode 100644 index 0000000..5821ae0 --- /dev/null +++ b/jellystack/bittorrent-password-secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +data: + bittorrent-password: c2FuZHN0b3JtLW91dGNhc3QtdHJlYXQK +kind: Secret +metadata: + labels: + io.kompose.service: bittorrent-password + name: bittorrent-password +type: Opaque diff --git a/jellystack/bittorrent-user-secret.yaml b/jellystack/bittorrent-user-secret.yaml new file mode 100644 index 0000000..c7ebbcb --- /dev/null +++ b/jellystack/bittorrent-user-secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +data: + bittorrent-user: YWRtaW4K +kind: Secret +metadata: + labels: + io.kompose.service: bittorrent-user + name: bittorrent-user +type: Opaque diff --git a/jellystack/cache-persistentvolumeclaim.yaml b/jellystack/cache-persistentvolumeclaim.yaml new file mode 100644 index 0000000..1b0b6a1 --- /dev/null +++ b/jellystack/cache-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: cache + name: cache +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/config/Gary-FR-94.conf b/jellystack/config/Gary-FR-94.conf new file mode 100644 index 0000000..d01b9f3 --- /dev/null +++ b/jellystack/config/Gary-FR-94.conf @@ -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 \ No newline at end of file diff --git a/jellystack/config/config.toml b/jellystack/config/config.toml new file mode 100644 index 0000000..a489f87 --- /dev/null +++ b/jellystack/config/config.toml @@ -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" diff --git a/jellystack/cookies/open.spotify.com_cookies.txt b/jellystack/cookies/open.spotify.com_cookies.txt new file mode 100644 index 0000000..2edc3ec --- /dev/null +++ b/jellystack/cookies/open.spotify.com_cookies.txt @@ -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 diff --git a/jellystack/cookies/www.youtube.com_cookies.txt b/jellystack/cookies/www.youtube.com_cookies.txt new file mode 100644 index 0000000..55ca24c --- /dev/null +++ b/jellystack/cookies/www.youtube.com_cookies.txt @@ -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 diff --git a/jellystack/docker-compose.yaml b/jellystack/docker-compose.yaml new file mode 100644 index 0000000..dd0d4e0 --- /dev/null +++ b/jellystack/docker-compose.yaml @@ -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 diff --git a/jellystack/downloads-persistentvolumeclaim.yaml b/jellystack/downloads-persistentvolumeclaim.yaml new file mode 100644 index 0000000..e816abc --- /dev/null +++ b/jellystack/downloads-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: downloads + name: downloads +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/env-arr-env-configmap.yaml b/jellystack/env-arr-env-configmap.yaml new file mode 100644 index 0000000..fd9d390 --- /dev/null +++ b/jellystack/env-arr-env-configmap.yaml @@ -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 diff --git a/jellystack/env-dnl-env-configmap.yaml b/jellystack/env-dnl-env-configmap.yaml new file mode 100644 index 0000000..003d60c --- /dev/null +++ b/jellystack/env-dnl-env-configmap.yaml @@ -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 diff --git a/jellystack/env-gluetun-env-configmap.yaml b/jellystack/env-gluetun-env-configmap.yaml new file mode 100644 index 0000000..a6dd40c --- /dev/null +++ b/jellystack/env-gluetun-env-configmap.yaml @@ -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 diff --git a/jellystack/env-jfn-env-configmap.yaml b/jellystack/env-jfn-env-configmap.yaml new file mode 100644 index 0000000..fcce0c0 --- /dev/null +++ b/jellystack/env-jfn-env-configmap.yaml @@ -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 diff --git a/jellystack/env/arr.env b/jellystack/env/arr.env new file mode 100644 index 0000000..a81e4c5 --- /dev/null +++ b/jellystack/env/arr.env @@ -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 + diff --git a/jellystack/env/compose.env b/jellystack/env/compose.env new file mode 100644 index 0000000..00776f4 --- /dev/null +++ b/jellystack/env/compose.env @@ -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 diff --git a/jellystack/env/dnl.env b/jellystack/env/dnl.env new file mode 100644 index 0000000..99b5a0a --- /dev/null +++ b/jellystack/env/dnl.env @@ -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 diff --git a/jellystack/env/gluetun.env b/jellystack/env/gluetun.env new file mode 100644 index 0000000..c64f285 --- /dev/null +++ b/jellystack/env/gluetun.env @@ -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 diff --git a/jellystack/env/jfn.env b/jellystack/env/jfn.env new file mode 100644 index 0000000..d32e009 --- /dev/null +++ b/jellystack/env/jfn.env @@ -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 diff --git a/jellystack/gluetun-deployment.yaml b/jellystack/gluetun-deployment.yaml new file mode 100644 index 0000000..a236cde --- /dev/null +++ b/jellystack/gluetun-deployment.yaml @@ -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 diff --git a/jellystack/gluetun-service.yaml b/jellystack/gluetun-service.yaml new file mode 100644 index 0000000..d774a0d --- /dev/null +++ b/jellystack/gluetun-service.yaml @@ -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 diff --git a/jellystack/jellyfin-deployment.yaml b/jellystack/jellyfin-deployment.yaml new file mode 100644 index 0000000..fa933c2 --- /dev/null +++ b/jellystack/jellyfin-deployment.yaml @@ -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 diff --git a/jellystack/jellyfin-persistentvolumeclaim.yaml b/jellystack/jellyfin-persistentvolumeclaim.yaml new file mode 100644 index 0000000..83031a9 --- /dev/null +++ b/jellystack/jellyfin-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: jellyfin + name: jellyfin +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/jellyfin-service.yaml b/jellystack/jellyfin-service.yaml new file mode 100644 index 0000000..2e38d6f --- /dev/null +++ b/jellystack/jellyfin-service.yaml @@ -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 diff --git a/jellystack/k3s-jellystack.yaml b/jellystack/k3s-jellystack.yaml new file mode 100644 index 0000000..5f36fad --- /dev/null +++ b/jellystack/k3s-jellystack.yaml @@ -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 diff --git a/jellystack/media-persistentvolumeclaim.yaml b/jellystack/media-persistentvolumeclaim.yaml new file mode 100644 index 0000000..989f86c --- /dev/null +++ b/jellystack/media-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: media + name: media +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/movies-persistentvolumeclaim.yaml b/jellystack/movies-persistentvolumeclaim.yaml new file mode 100644 index 0000000..af13c9e --- /dev/null +++ b/jellystack/movies-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: movies + name: movies +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/music-grabber-data-persistentvolumeclaim.yaml b/jellystack/music-grabber-data-persistentvolumeclaim.yaml new file mode 100644 index 0000000..5ab23de --- /dev/null +++ b/jellystack/music-grabber-data-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/music-grabber-deployment.yaml b/jellystack/music-grabber-deployment.yaml new file mode 100644 index 0000000..abc362c --- /dev/null +++ b/jellystack/music-grabber-deployment.yaml @@ -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 diff --git a/jellystack/music-grabber-persistentvolumeclaim.yaml b/jellystack/music-grabber-persistentvolumeclaim.yaml new file mode 100644 index 0000000..e4ed864 --- /dev/null +++ b/jellystack/music-grabber-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/music-grabber-service.yaml b/jellystack/music-grabber-service.yaml new file mode 100644 index 0000000..5da2f01 --- /dev/null +++ b/jellystack/music-grabber-service.yaml @@ -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 diff --git a/jellystack/music-persistentvolumeclaim.yaml b/jellystack/music-persistentvolumeclaim.yaml new file mode 100644 index 0000000..12149d0 --- /dev/null +++ b/jellystack/music-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: music + name: music +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/navidrome-claim0-persistentvolumeclaim.yaml b/jellystack/navidrome-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..0055c71 --- /dev/null +++ b/jellystack/navidrome-claim0-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/navidrome-deployment.yaml b/jellystack/navidrome-deployment.yaml new file mode 100644 index 0000000..8183e8f --- /dev/null +++ b/jellystack/navidrome-deployment.yaml @@ -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 diff --git a/jellystack/navidrome-persistentvolumeclaim.yaml b/jellystack/navidrome-persistentvolumeclaim.yaml new file mode 100644 index 0000000..83ea37a --- /dev/null +++ b/jellystack/navidrome-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: navidrome + name: navidrome +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/navidrome-service.yaml b/jellystack/navidrome-service.yaml new file mode 100644 index 0000000..94c2aef --- /dev/null +++ b/jellystack/navidrome-service.yaml @@ -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 diff --git a/jellystack/prowlarr-persistentvolumeclaim.yaml b/jellystack/prowlarr-persistentvolumeclaim.yaml new file mode 100644 index 0000000..e1eec86 --- /dev/null +++ b/jellystack/prowlarr-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: prowlarr + name: prowlarr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/qbittorent-persistentvolumeclaim.yaml b/jellystack/qbittorent-persistentvolumeclaim.yaml new file mode 100644 index 0000000..2e35319 --- /dev/null +++ b/jellystack/qbittorent-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: qbittorent + name: qbittorent +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/radarr-api-secret.yaml b/jellystack/radarr-api-secret.yaml new file mode 100644 index 0000000..a423ce1 --- /dev/null +++ b/jellystack/radarr-api-secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +data: + radarr-api: YmM2NWU3NDA4YzFhNDg4YmIwOGFhZDQ1ODA0MzU1MDkK +kind: Secret +metadata: + labels: + io.kompose.service: radarr-api + name: radarr-api +type: Opaque diff --git a/jellystack/radarr-persistentvolumeclaim.yaml b/jellystack/radarr-persistentvolumeclaim.yaml new file mode 100644 index 0000000..e578309 --- /dev/null +++ b/jellystack/radarr-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: radarr + name: radarr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/sabnzbd-persistentvolumeclaim.yaml b/jellystack/sabnzbd-persistentvolumeclaim.yaml new file mode 100644 index 0000000..d6c3369 --- /dev/null +++ b/jellystack/sabnzbd-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: sabnzbd + name: sabnzbd +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/secrets/bittorrent-password.secret b/jellystack/secrets/bittorrent-password.secret new file mode 100644 index 0000000..8c3550a --- /dev/null +++ b/jellystack/secrets/bittorrent-password.secret @@ -0,0 +1 @@ +sandstorm-outcast-treat diff --git a/jellystack/secrets/bittorrent-user.secret b/jellystack/secrets/bittorrent-user.secret new file mode 100644 index 0000000..7fbe952 --- /dev/null +++ b/jellystack/secrets/bittorrent-user.secret @@ -0,0 +1 @@ +admin diff --git a/jellystack/secrets/jellyseerr-api.secret b/jellystack/secrets/jellyseerr-api.secret new file mode 100644 index 0000000..d461f21 --- /dev/null +++ b/jellystack/secrets/jellyseerr-api.secret @@ -0,0 +1 @@ +428ef8a4a2be42a4ba7054bed1920497 diff --git a/jellystack/secrets/lidarr-api.secret b/jellystack/secrets/lidarr-api.secret new file mode 100644 index 0000000..7fd9224 --- /dev/null +++ b/jellystack/secrets/lidarr-api.secret @@ -0,0 +1 @@ +b3c344c5fb84442db3cab4abf09c5888 diff --git a/jellystack/secrets/prowlarr-api.secret b/jellystack/secrets/prowlarr-api.secret new file mode 100644 index 0000000..240fa45 --- /dev/null +++ b/jellystack/secrets/prowlarr-api.secret @@ -0,0 +1 @@ +df1c727b1d6d4300859a6e725725f6d8 diff --git a/jellystack/secrets/radarr-api.secret b/jellystack/secrets/radarr-api.secret new file mode 100644 index 0000000..170e0c0 --- /dev/null +++ b/jellystack/secrets/radarr-api.secret @@ -0,0 +1 @@ +bc65e7408c1a488bb08aad4580435509 diff --git a/jellystack/secrets/sabnzdb-api.secret b/jellystack/secrets/sabnzdb-api.secret new file mode 100644 index 0000000..8974cc5 --- /dev/null +++ b/jellystack/secrets/sabnzdb-api.secret @@ -0,0 +1 @@ +7c5cda4f4a03436eaf32fc08adbf5475 diff --git a/jellystack/secrets/sonarr-api.secret b/jellystack/secrets/sonarr-api.secret new file mode 100644 index 0000000..498d1b2 --- /dev/null +++ b/jellystack/secrets/sonarr-api.secret @@ -0,0 +1 @@ +8e5651fab5d148d79da30ceb9d0e526d diff --git a/jellystack/secrets/wireguard_private_key.secret b/jellystack/secrets/wireguard_private_key.secret new file mode 100644 index 0000000..c62278e --- /dev/null +++ b/jellystack/secrets/wireguard_private_key.secret @@ -0,0 +1 @@ +2ARStJOsaO9LzNijZP+/HHd+72eY7uTW7i428Nt63E4= diff --git a/jellystack/seerr-deployment.yaml b/jellystack/seerr-deployment.yaml new file mode 100644 index 0000000..bd43130 --- /dev/null +++ b/jellystack/seerr-deployment.yaml @@ -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 diff --git a/jellystack/seerr-persistentvolumeclaim.yaml b/jellystack/seerr-persistentvolumeclaim.yaml new file mode 100644 index 0000000..4041fb6 --- /dev/null +++ b/jellystack/seerr-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: seerr + name: seerr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/seerr-service.yaml b/jellystack/seerr-service.yaml new file mode 100644 index 0000000..1bb1124 --- /dev/null +++ b/jellystack/seerr-service.yaml @@ -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 diff --git a/jellystack/sonarr-api-secret.yaml b/jellystack/sonarr-api-secret.yaml new file mode 100644 index 0000000..931fb64 --- /dev/null +++ b/jellystack/sonarr-api-secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +data: + sonarr-api: OGU1NjUxZmFiNWQxNDhkNzlkYTMwY2ViOWQwZTUyNmQK +kind: Secret +metadata: + labels: + io.kompose.service: sonarr-api + name: sonarr-api +type: Opaque diff --git a/jellystack/sonarr-persistentvolumeclaim.yaml b/jellystack/sonarr-persistentvolumeclaim.yaml new file mode 100644 index 0000000..7533d2d --- /dev/null +++ b/jellystack/sonarr-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: sonarr + name: sonarr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/tdarr-claim0-persistentvolumeclaim.yaml b/jellystack/tdarr-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..ace48f0 --- /dev/null +++ b/jellystack/tdarr-claim0-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-claim1-persistentvolumeclaim.yaml b/jellystack/tdarr-claim1-persistentvolumeclaim.yaml new file mode 100644 index 0000000..9dbf329 --- /dev/null +++ b/jellystack/tdarr-claim1-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-claim2-persistentvolumeclaim.yaml b/jellystack/tdarr-claim2-persistentvolumeclaim.yaml new file mode 100644 index 0000000..1961208 --- /dev/null +++ b/jellystack/tdarr-claim2-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-claim4-persistentvolumeclaim.yaml b/jellystack/tdarr-claim4-persistentvolumeclaim.yaml new file mode 100644 index 0000000..dc90fc3 --- /dev/null +++ b/jellystack/tdarr-claim4-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-deployment.yaml b/jellystack/tdarr-deployment.yaml new file mode 100644 index 0000000..88b3072 --- /dev/null +++ b/jellystack/tdarr-deployment.yaml @@ -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 diff --git a/jellystack/tdarr-logs-persistentvolumeclaim.yaml b/jellystack/tdarr-logs-persistentvolumeclaim.yaml new file mode 100644 index 0000000..49843ab --- /dev/null +++ b/jellystack/tdarr-logs-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-node-claim0-persistentvolumeclaim.yaml b/jellystack/tdarr-node-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..e945325 --- /dev/null +++ b/jellystack/tdarr-node-claim0-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-node-claim1-persistentvolumeclaim.yaml b/jellystack/tdarr-node-claim1-persistentvolumeclaim.yaml new file mode 100644 index 0000000..be24b9d --- /dev/null +++ b/jellystack/tdarr-node-claim1-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-node-claim3-persistentvolumeclaim.yaml b/jellystack/tdarr-node-claim3-persistentvolumeclaim.yaml new file mode 100644 index 0000000..3f286b2 --- /dev/null +++ b/jellystack/tdarr-node-claim3-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-persistentvolumeclaim.yaml b/jellystack/tdarr-persistentvolumeclaim.yaml new file mode 100644 index 0000000..55b2f21 --- /dev/null +++ b/jellystack/tdarr-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: tdarr + name: tdarr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/tdarr-server-persistentvolumeclaim.yaml b/jellystack/tdarr-server-persistentvolumeclaim.yaml new file mode 100644 index 0000000..a9e9c18 --- /dev/null +++ b/jellystack/tdarr-server-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tdarr-service.yaml b/jellystack/tdarr-service.yaml new file mode 100644 index 0000000..f28374d --- /dev/null +++ b/jellystack/tdarr-service.yaml @@ -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 diff --git a/jellystack/torrents-persistentvolumeclaim.yaml b/jellystack/torrents-persistentvolumeclaim.yaml new file mode 100644 index 0000000..38fb722 --- /dev/null +++ b/jellystack/torrents-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: torrents + name: torrents +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/transcode-cache-persistentvolumeclaim.yaml b/jellystack/transcode-cache-persistentvolumeclaim.yaml new file mode 100644 index 0000000..07931b3 --- /dev/null +++ b/jellystack/transcode-cache-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/tv-shows-persistentvolumeclaim.yaml b/jellystack/tv-shows-persistentvolumeclaim.yaml new file mode 100644 index 0000000..e090a51 --- /dev/null +++ b/jellystack/tv-shows-persistentvolumeclaim.yaml @@ -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 diff --git a/jellystack/unpackerr-deployment.yaml b/jellystack/unpackerr-deployment.yaml new file mode 100644 index 0000000..77561ff --- /dev/null +++ b/jellystack/unpackerr-deployment.yaml @@ -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 diff --git a/jellystack/unpackerr-persistentvolumeclaim.yaml b/jellystack/unpackerr-persistentvolumeclaim.yaml new file mode 100644 index 0000000..d34d428 --- /dev/null +++ b/jellystack/unpackerr-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: unpackerr + name: unpackerr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/usenet-persistentvolumeclaim.yaml b/jellystack/usenet-persistentvolumeclaim.yaml new file mode 100644 index 0000000..2895eeb --- /dev/null +++ b/jellystack/usenet-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: usenet + name: usenet +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/wireguard-persistentvolumeclaim.yaml b/jellystack/wireguard-persistentvolumeclaim.yaml new file mode 100644 index 0000000..ca435a6 --- /dev/null +++ b/jellystack/wireguard-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: wireguard + name: wireguard +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/wireguard-private-key-secret.yaml b/jellystack/wireguard-private-key-secret.yaml new file mode 100644 index 0000000..fee28f6 --- /dev/null +++ b/jellystack/wireguard-private-key-secret.yaml @@ -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 diff --git a/jellystack/wizarr-deployment.yaml b/jellystack/wizarr-deployment.yaml new file mode 100644 index 0000000..b9a669b --- /dev/null +++ b/jellystack/wizarr-deployment.yaml @@ -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 diff --git a/jellystack/wizarr-persistentvolumeclaim.yaml b/jellystack/wizarr-persistentvolumeclaim.yaml new file mode 100644 index 0000000..c91b0c4 --- /dev/null +++ b/jellystack/wizarr-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: wizarr + name: wizarr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/jellystack/wizarr-service.yaml b/jellystack/wizarr-service.yaml new file mode 100644 index 0000000..2baad1d --- /dev/null +++ b/jellystack/wizarr-service.yaml @@ -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