diff options
| author | Max Audron <audron@cocaine.farm> | 2024-10-18 16:37:32 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2024-10-18 16:37:32 +0200 |
| commit | 7741d163cb90d7e08d44ece4afa56da34d500d09 (patch) | |
| tree | 9f2b482de681ac64f46a7c453e38961102b0db30 | |
| parent | move catinator secrets to be managed by secrets module (diff) | |
switch to protonvpn for illegal activities
| -rw-r--r-- | flake.lock | 6 | ||||
| -rw-r--r-- | modules/tlmp/rtorrent.nix | 69 | ||||
| -rw-r--r-- | modules/tlmp/rtorrent.rc | 138 | ||||
| -rw-r--r-- | pv_mapping.txt | 77 |
4 files changed, 240 insertions, 50 deletions
@@ -291,11 +291,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1723175592, - "narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=", + "lastModified": 1728492678, + "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5e0ca22929f3342b19569b21b2f3462f053e497b", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", "type": "github" }, "original": { diff --git a/modules/tlmp/rtorrent.nix b/modules/tlmp/rtorrent.nix index bf72a2a..c374122 100644 --- a/modules/tlmp/rtorrent.nix +++ b/modules/tlmp/rtorrent.nix @@ -1,31 +1,69 @@ { config, lib, pkgs, ... }: { + environment.systemPackages = with pkgs; [ libnatpmp gawk dig ]; + systemd.services = { - wireguard-mullvad = { - bindsTo = [ "netns@mullvad.service" ]; - after = [ "netns@mullvad.service" ]; + # wireguard-mullvad = { + # bindsTo = [ "netns@torrent.service" ]; + # after = [ "netns@torrent.service" ]; + # }; + + wireguard-proton = { + bindsTo = [ "netns@torrent.service" ]; + after = [ "netns@torrent.service" ]; }; rtorrent = { - bindsTo = [ "wireguard-mullvad.service" ]; - after = [ "wireguard-mullvad.service" ]; - unitConfig.JoinsNamespaceOf = "netns@mullvad.service"; - serviceConfig.PrivateNetwork = true; + bindsTo = [ "wireguard-proton.service" ]; + after = [ "wireguard-proton.service" ]; + unitConfig.JoinsNamespaceOf = "netns@torrent.service"; + serviceConfig = { + PrivateNetwork = true; + LimitNOFILE = 24000; + }; + + path = with pkgs; [ libnatpmp gawk dig findutils gzip ]; }; }; networking.wireguard.interfaces = { - mullvad = { # Caring Wasp - ips = [ "10.67.4.3/32" "fc00:bbbb:bbbb:bb01::4:402/128" ]; - privateKeyFile = "/root/wireguard/privkey"; - interfaceNamespace = "mullvad"; + # mullvad = { # Caring Wasp + # ips = [ "10.67.4.3/32" "fc00:bbbb:bbbb:bb01::4:402/128" ]; + # privateKeyFile = "/root/wireguard/privkey"; + # interfaceNamespace = "mullvad"; + + # peers = [ + # # { # de-fra-wg-006.relays.mullvad.net + # # publicKey = "nAF0wrLG2+avwQfqxnXhBGPUBCvc3QCqWKH4nK5PfEU="; + # # endpoint = "185.209.196.76:51820"; + # # allowedIPs = [ "0.0.0.0/0" "::/0" ]; + # # } + # { # de-fra-wg-008.relays.mullvad.net + # publicKey = "TOS3U/dJPzPnk/qsAx6gHxRVIC2wI5l+tAWaJY2mXzY="; + # endpoint = "185.209.196.78:51820"; + # allowedIPs = [ "0.0.0.0/0" "::/0" ]; + # } + # ]; + # }; + proton = { # phaenn + ips = [ "10.2.0.2/32" ]; + # privateKeyFile = "/root/wireguard/proton.key"; + privateKeyFile = "/root/wireguard/proton_ch.key"; + interfaceNamespace = "torrent"; peers = [ - { # de-fra-wg-006.relays.mullvad.net - publicKey = "nAF0wrLG2+avwQfqxnXhBGPUBCvc3QCqWKH4nK5PfEU="; - endpoint = "185.209.196.76:51820"; - allowedIPs = [ "0.0.0.0/0" "::/0" ]; + # { # DE#348 + # publicKey = "hOoBBy//7mddXPz1SybzWB3zK95SQCcPyI/DmxfULXk="; + # endpoint = "149.88.102.97:51820"; + # allowedIPs = [ "0.0.0.0/0" ]; + # persistentKeepalive = 25; + # } + { # CH#403 + publicKey = "R8TfZYSkUM30soIPOVpNsP35qCnnJvJJI9r/VxH5TkQ="; + endpoint = "146.70.226.226:51820"; + allowedIPs = [ "0.0.0.0/0" ]; + persistentKeepalive = 25; } ]; }; @@ -33,6 +71,7 @@ services.rtorrent = { enable = true; + package = pkgs.unstable.rtorrent; # dataDir = "/mnt/media/download"; user = "media"; group = "media"; diff --git a/modules/tlmp/rtorrent.rc b/modules/tlmp/rtorrent.rc index 3353f50..c97d8f4 100644 --- a/modules/tlmp/rtorrent.rc +++ b/modules/tlmp/rtorrent.rc @@ -10,52 +10,75 @@ method.insert = cfg.basedir, private|const|string, (cat,"/mnt/media/") method.insert = cfg.watch, private|const|string, (cat,(cfg.basedir),"watch/") method.insert = cfg.logs, private|const|string, (cat,"/var/log/rtorrent/") -method.insert = cfg.logfile, private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log") # Create instance directories execute.throw = bash, -c, (cat,\ "builtin cd \"", (cfg.basedir), "\" ",\ "&& mkdir -p .session download watch/{load,start}") + +############################################################################# +# Network +############################################################################# + # Listening port for incoming peer traffic (fixed; you can also randomize it) -network.port_range.set = 50000-50000 +# network.port_range.set = 6881-6881 network.port_random.set = no +# Get Public IP +method.insert = get_public_ip_address, simple|private, "execute.capture=bash,-c,\"eval echo -n \$(natpmpc -g 10.2.0.1 -a 1 0 tcp 60 | awk '/Public IP address :/ { print $5 }')\"" +schedule2 = ip_tick, 5, 45, "network.local_address.set=(get_public_ip_address)" + +# Get Forwarded port +method.insert = get_port_forward, simple|private, "execute.capture=bash,-c,\"eval echo -n \$(natpmpc -g 10.2.0.1 -a 1 0 tcp 60 | awk '/Mapped public port/ { print $4 }')\"" +schedule2 = port_tick, 6, 45, "network.port_range.set=(get_port_forward)" + # Tracker-less torrent and UDP tracker support # (conservative settings for 'private' trackers, change for 'public') dht.mode.set = disable protocol.pex.set = no -trackers.use_udp.set = no +trackers.use_udp.set = yes + +# XMLRPC +network.scgi.open_local = /run/rtorrent/rpc.sock +execute.nothrow = chmod,777,/run/rtorrent/rpc.sock + + +############################################################################# +# Throttles & Limits +############################################################################# -# Peer settings -throttle.max_uploads.set = 100 -throttle.max_uploads.global.set = 250 +throttle.max_uploads.set = 250 +throttle.max_uploads.global.set = 500 -throttle.min_peers.normal.set = 20 +throttle.min_peers.normal.set = 1 throttle.max_peers.normal.set = 60 -throttle.min_peers.seed.set = 30 +throttle.min_peers.seed.set = 1 throttle.max_peers.seed.set = 80 -trackers.numwant.set = 80 +trackers.numwant.set = 20 protocol.encryption.set = allow_incoming,try_outgoing,enable_retry # Limits for file handle resources, this is optimized for # an `ulimit` of 1024 (a common default). You MUST leave # a ceiling of handles reserved for rTorrent's internal needs! -network.http.max_open.set = 50 -network.max_open_files.set = 600 -network.max_open_sockets.set = 300 +network.http.max_open.set = 500 +network.max_open_files.set = 12000 +network.max_open_sockets.set = 6000 + + +############################################################################# +# Base Settings +############################################################################# # Memory resource usage (increase if you have a large number of items loaded, # and/or the available resources to spend) -pieces.memory.max.set = 1800M +pieces.memory.max.set = 16000M network.xmlrpc.size_limit.set = 4M # Basic operational settings (no need to change these) session.path.set = (cat, (cfg.basedir), ".session") directory.default.set = (cat, (cfg.basedir), "download/") -log.execute = (cat, (cfg.logs), "execute.log") -##log.xmlrpc = (cat, (cfg.logs), "xmlrpc.log") execute.nothrow = bash, -c, (cat, "echo >",\ (session.path), "rtorrent.pid", " ", (system.pid)) @@ -64,14 +87,6 @@ encoding.add = utf8 system.umask.set = 0027 system.cwd.set = (directory.default) network.http.dns_cache_timeout.set = 25 -##network.http.capath.set = "/etc/ssl/certs" -##network.http.ssl_verify_peer.set = 0 -##network.http.ssl_verify_host.set = 0 -##pieces.hash.on_completion.set = no -##keys.layout.set = qwerty - -##view.sort_current = seeding, greater=d.ratio= -schedule2 = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M)) # Some additional values and commands method.insert = system.startup_time, value|const, (system.time) @@ -85,16 +100,75 @@ method.insert = d.session_file, simple, "cat=(session.path), (d.hash), .torrent" schedule2 = watch_start, 10, 10, ((load.start_verbose, (cat, (cfg.watch), "start/*.torrent"))) schedule2 = watch_load, 11, 10, ((load.verbose, (cat, (cfg.watch), "load/*.torrent"))) -# Logging: -# Levels = critical error warn notice info debug -# Groups = connection_* dht_* peer_* rpc_* storage_* thread_* tracker_* torrent_* -print = (cat, "Logging to ", (cfg.logfile)) -log.open_file = "log", (cfg.logfile) + +############################################################################# +# Log Rotation, Archival, and Pruning +############################################################################# + + +# Settings for archival delay, and retention [days] +method.insert.value = pyro.log_retention.days, 2 +method.insert.value = pyro.log_archival.days, 7 + +# Create HUGE xmlrpc log files? +method.insert.value = pyro.log.xmlrpc.enabled, 0 +method.insert.value = pyro.extended, 0 + +method.insert.value = pyro._log.xmlrpc.closing, 0 + +# Create a "YYYY-mm-dd-HHMMSS" time stamp +method.insert = pyro.date_iso.log_stamp, simple|private,\ + "execute.capture_nothrow = bash, -c, \"echo -n $(date +%Y-%m-%d-%H%M%S)\"" + +# String value for the currently used time stamp, changed on rotation +method.insert = pyro.log_stamp.current, string + +# Create a full logfile path using the current stamp +method.insert = pyro.logfile_path, simple|private,\ + "cat = (cfg.logs), (argument.0), \"-\", (pyro.log_stamp.current), .log" + +# (Re-)open all logs with a current time stamp; the main log file +# is just opened, you need to add some logging scopes yourself! +method.insert = pyro.log_rotate, multi|rlookup|static +method.set_key = pyro.log_rotate, !stamp,\ + "pyro.log_stamp.current.set = (cat, (pyro.date_iso.log_stamp))" +method.set_key = pyro.log_rotate, execute,\ + "log.execute = (pyro.logfile_path, execute)" +method.set_key = pyro.log_rotate, messages,\ + "branch = (pyro.extended), ((log.messages, (pyro.logfile_path, messages) ))" +method.set_key = pyro.log_rotate, xmlrpc,\ + "branch = pyro.log.xmlrpc.enabled=, \"log.xmlrpc=(pyro.logfile_path, xmlrpc)\", \ + \"log.xmlrpc=(pyro._log.xmlrpc.closing)\"" +method.set_key = pyro.log_rotate, ~main,\ + "log.open_file = log, (pyro.logfile_path, rtorrent)" + +# Logrotate schedule (rotating shortly after 1AM, so DST shenanigans +# are taken care of, and rotation is always near the begin of the next day) +schedule2 = pyro_daily_log_rotate, 01:05:00, 24:00:00, ((pyro.log_rotate)) + +# Log file archival and pruning +method.insert = pmb._logfile_find_cmd, simple|private,\ + "cat = \"find \", (cfg.logs),\ + \" -daystart -type f -name '*.\", (argument.0),\"'\",\ + \" -mtime +\", (argument.1),\ + \" -exec nice \", (argument.2), \" '{}' ';'\"" + +schedule2 = pyro_logfile_archival, 01:10:00, 24:00:00,\ + "execute.nothrow = bash, -c, (pmb._logfile_find_cmd, log, (pyro.log_archival.days), gzip)" + +schedule2 = pyro_logfile_pruning, 01:20:00, 24:00:00,\ + "execute.nothrow = bash, -c, (pmb._logfile_find_cmd, log.gz, (pyro.log_retention.days), rm)" + +# Open logs initially on startup +# pyro.log_rotate= +schedule2 = pyro_startup_log_xmlrpc_open, 7, 0, \ + "branch = pyro.log.xmlrpc.enabled=, \"log.xmlrpc=(pyro.logfile_path, xmlrpc)\"" + +pyro.log_stamp.current.set = (cat, (pyro.date_iso.log_stamp)) +log.open_file = log, (pyro.logfile_path, rtorrent) log.add_output = "info", "log" -##log.add_output = "tracker_debug", "log" +log.add_output = "tracker_info", "log" +log.execute = (pyro.logfile_path, execute) -# XMLRPC -network.scgi.open_local = /run/rtorrent/rpc.sock -execute.nothrow = chmod,777,/run/rtorrent/rpc.sock ### END of rtorrent.rc ### diff --git a/pv_mapping.txt b/pv_mapping.txt new file mode 100644 index 0000000..92a17ab --- /dev/null +++ b/pv_mapping.txt @@ -0,0 +1,77 @@ +NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE +factorio 2Gi RWX Retain Bound tba/data-factorio-0 ssd 2y139d +factorio-fsm 2Gi RWX Retain Bound tba/fsm-data-factorio-0 ssd 2y139d +pvc-0037472d-99a8-4618-9c84-79a18ef16c5c 2Gi RWO Retain Bound tba/data-factorio-vanilla-0 ssd 568d +pvc-082f0df7-9948-4ee0-93b6-6110eb8c87ca 2Gi RWX Retain Bound tlmp/radarr-config hdd 2y152d +pvc-0888dc2d-da2b-4f0d-81cc-9e6715533f92 20Gi RWO Retain Bound c0re/better-minecraft-data ssd 2y143d +pvc-093dcd51-d785-4676-be8c-ddeb5d5c7b46 250Gi RWO Retain Bound s3/data-storage-0 hdd 2y160d +pvc-0df84b6e-6c96-4b34-8f68-37d7f8eb2248 50Gi RWO Retain Bound s3/data-cache-0 ssd 2y139d +pvc-0eb9c9f3-8882-4dad-a589-f5cef532513a 2Gi RWO Retain Released auth/data-ldap-0 ssd 2y182d +pvc-0ff95f01-77c4-4c0f-9b48-cf8ca51fdaba 2Gi RWX Retain Released tlmp/rtorrent-flood-rtorrent-flood-data hdd 2y149d +pvc-1175ecfb-9136-4b3e-b552-5e5c4a0aaa1f 100Gi RWO Retain Bound repo/harbor-registry ssd 2y146d +pvc-20475533-6c2a-44f3-acb0-40d359bf3a83 8Gi RWO Retain Released auth/redis-data-authentik-redis-master-0 ssd 522d +pvc-254b7b8a-3c5e-4f8e-8f72-89e96adecca4 8Gi RWO Retain Bound lmrdashboard-production/data-lmrdashboard-mariadb-0 ssd 2y174d +pvc-2fb2c476-a401-4d60-b6b6-e860f8d8f9b6 2Gi RWX Retain Released tlmp/jellyfin-config-ng hdd 2y152d +pvc-34345cc8-c811-4c37-80f3-59330594c6ee 250Gi RWO Retain Bound s3/data-garage-0 hdd 2y160d +pvc-34a79b0c-b1da-431a-b569-6da5e5548e92 8Gi RWO Retain Released taiga/data-rabbitmq-0 ssd 2y132d +pvc-361fe6e5-5fbd-4093-ac86-1f07004ded9d 5Gi RWO Retain Bound repo/database-data-harbor-database-0 ssd 2y146d +pvc-40ed5624-5c08-4968-87bb-10c1882ce510 40Ti RWX Retain Bound tlmp/media-ng hdd 2y152d +pvc-42b29606-daf3-436b-9aaa-bab0aed3ad3d 10Gi RWX Retain Bound tlmp/jellyfin-transcode-ng hdd 2y92d +pvc-44031813-3273-497a-a26b-727a131235d7 50Gi RWO Retain Released postgres/pgdata-cocaine-postgres-0 shared 2y132d +pvc-448605b3-b1fe-4bd5-b87c-fb3b376eb9a8 20Gi RWO Retain Bound c0re/minecraft-jupandrun-data ssd 621d +pvc-47aca979-ed92-4e9a-82f8-76a2087a5a6d 2Gi RWX Retain Bound tlmp/rtorrent-flood-rtorrent-flood-data hdd 2y146d +pvc-4c092e5e-8199-4b23-b396-2ffde89fc8e6 40Gi RWO Retain Bound c0re/data-assetto-0 ssd 437d +pvc-4fe38129-c659-4151-ac87-d96ce2a3a7ec 1Gi RWO Retain Bound repo/harbor-jobservice ssd 2y146d +pvc-50da9ec2-c820-4f5d-8a4d-b583608b0829 16Gi RWX Retain Bound tlmp/jellyfin-config-ng hdd 2y151d +pvc-545fbbc4-aa72-4c4e-92de-51df5dc57cdb 10Gi RWO Retain Bound c0re/data-satisfactory-0 ssd 2y59d +pvc-56065f9e-657c-448d-b4f9-dae7f7ce184d 8Gi RWO Retain Bound lmrdashboard-staging/data-lmrdashboard-mariadb-0 ssd 2y174d +pvc-5ac6a6c6-c01f-4587-8749-b924e4b237c6 2Gi RWO Retain Bound tba/fsm-data-factorio-vanilla-0 ssd 568d +pvc-5e023e06-a187-4c7c-9aef-f97d3ab2b085 5Gi RWX Retain Released taiga/taiga-media ssd 2y132d +pvc-5f0edcf8-2a37-4765-a563-886876dc3c9d 10Gi RWX Retain Released tlmp/jellyfin-transcode-ng hdd 2y152d +pvc-5f2f6a51-7564-46cc-80d0-c83601d4aa97 10Gi RWO Retain Released inventree/inventree-data ssd 583d +pvc-618145fe-d978-40d5-ad0c-8179eb2bd188 5Gi RWO Retain Bound tlmp/cache-minidlna-0 hdd 2y101d +pvc-69417b4a-fbd5-4af1-95fd-8b188e4bc291 10Gi RWO Retain Bound c0re/data-satisfactory-server-0 ssd 2y59d +pvc-6b50f482-7d25-4a51-80d7-a47dbcf3a61c 2Gi RWX Retain Bound tlmp/jackett-config hdd 2y141d +pvc-700ab7ca-509b-47c6-9333-8bc1aca73b19 50Gi RWO Retain Bound postgres/pgdata-cocaine-postgres-1 shared 2y131d +pvc-76cadad5-07d6-49a9-9b5a-778a3c0a639a 2Gi RWO Retain Released matrix/data-whatsapp-bridge-0 ssd 2y15d +pvc-77fd0ecf-c2cb-4786-bd6c-23cf779cb804 20Gi RWO Retain Bound c0re/minecraft-dreamcraft-data ssd 592d +pvc-7ab37599-5910-49e4-bc97-0488f1d7a518 50Gi RWO Retain Bound postgres/pgdata-cocaine-postgres-0 shared 2y131d +pvc-7c68464e-dc92-413c-8dd5-6174e86484d3 2Gi RWX Retain Released tlmp/jellyfin-config-test ssd 2y152d +pvc-7e3bfa53-7ed8-46b0-9195-1fa8a99c0d91 8Gi RWO Retain Released ns/data-postgresql-0 ssd 2y188d +pvc-7e57d94e-78ac-48af-8e02-f8bb12e55e0e 30Gi RWX Retain Bound c0re/minecraft-plugins ssd 2y143d +pvc-7f3262c9-d7b8-463f-8f65-eea6ca2263e5 30Gi RWO Retain Bound c0re/server-satisfactory-0 ssd 2y59d +pvc-821fa8bf-5466-4af9-95c4-9dcbee2a35b0 50Gi RWO Retain Released postgres/pgdata-cocaine-postgres-1 shared 2y132d +pvc-85f16a0e-3cbd-49c8-8b1a-dc78c9f89e2e 10Gi RWO Retain Released inventree/db-inventree-postgresql-0 ssd 583d +pvc-90aafc64-7a2d-43eb-8d14-7da200ee0a7b 2Gi RWO Retain Bound tlmp/config-rtorrent-flood-0 hdd 2y53d +pvc-92b67974-7f6a-4611-8092-8fc8abb37cc7 50Gi RWO Retain Released languagetool/languagetool-models ssd 538d +pvc-9964e6aa-2467-4070-98cb-2d8857f5ebb4 15Gi RWO Retain Bound repo/harbor-chartmuseum ssd 2y146d +pvc-9eb74f32-f95c-4a3e-a907-76a731685eb3 2Gi RWX Retain Bound tlmp/sonarr-config hdd 2y152d +pvc-9f890379-f64c-4932-b9d0-bb816f726147 2Gi RWX Retain Released matrix/data-whatsapp-bridge-0 ssd 356d +pvc-a1757a66-c5ca-4586-b03b-b34417965cb9 10Gi RWO Retain Released inventree/inventree-data ssd 583d +pvc-ae965cc6-5667-4b0f-9763-5d5671c111cc 2Gi RWX Retain Released tlmp/jackett-config hdd 2y152d +pvc-af6d94b7-1192-44b5-9443-46b6c9017713 40Gi RWO Retain Released c0re/data-assetto-0 ssd 2y126d +pvc-af75972d-1624-4965-8261-a0190b9daf05 2Gi RWO Retain Released matrix/data-whatsapp-bridge-0 ssd 2y15d +pvc-b0224376-a35a-4b00-88e2-0b1afca349cb 25Gi RWO Retain Released quassel/data-postgresql-0 ssd 2y182d +pvc-b0ed62d2-51fd-4208-98fc-e9a713bbd19b 2Gi RWO Retain Bound repo/data-harbor-redis-0 ssd 2y146d +pvc-b127f3b2-6a19-49f0-b4f7-a6b86cf9cb11 30Gi RWO Retain Bound c0re/backups-ark-0 ssd 2y44d +pvc-b5d7e027-0bdd-4592-8827-53f9d25c09b4 40Gi RWO Retain Bound c0re/data-assetto-shutoko-0 ssd 401d +pvc-b788ed81-3bda-498c-97c3-a585f28262fa 10Gi RWO Retain Released inventree/inventree-data ssd 583d +pvc-b9a46765-4e34-482a-afac-032bd42c31ea 2Gi RWX Retain Released tlmp/jellyfin-config-ng hdd 2y151d +pvc-bc1eb78b-b9bf-4829-945c-43fd34a2d795 30Gi RWO Retain Bound c0re/data-ark-0 ssd 2y44d +pvc-bfb88f2e-023f-4ac6-b2a9-fd976f5e6989 10Gi RWO Retain Released inventree/data-inventree-redis-0 ssd 583d +pvc-c0bda671-ece0-4e21-83cf-ff572b81fa2d 40Gi RWO Retain Bound c0re/data-assetto-nords-0 ssd 325d +pvc-c621fc25-6ba2-4957-b85c-af9b77606872 8Gi RWO Retain Released taiga/data-rabbitmq-0 ssd 2y132d +pvc-ca4240a8-0d3a-452d-962c-e95c8dcc8fb9 10Gi RWO Retain Released languagetool/langaugetool-models ssd 538d +pvc-ccde739d-59cd-46f1-9959-dfc6985adc8e 10Gi RWO Retain Released inventree/inventree-data ssd 583d +pvc-d1207bd6-abd7-40cc-95c1-3943c3c3456c 2Gi RWO Retain Released matrix/data-whatsapp-bridge-0 ssd 2y15d +pvc-d3f416f6-d8aa-4598-8a50-9dd3514b1d36 50Gi RWO Retain Released postgres/pgdata-cocaine-postgres-1 shared 2y131d +pvc-d7d325fc-df63-4376-990a-ecc4962e0ee5 5Gi RWX Retain Released taiga/taiga-static ssd 2y132d +pvc-dbe35559-2c4d-476e-8fa4-24564821a482 25Gi RWO Retain Released auth/data-keycloak-postgresql-0 ssd 2y182d +pvc-e2b412ba-83f4-4107-ac98-b76614e808d8 20Gi RWO Retain Bound c0re/minecraft-data ssd 2y143d +pvc-e6ad1384-42ea-4639-8c61-c27f3171cb70 50Gi RWO Retain Bound pastor-production/data-pastor-0 ssd 2y173d +pvc-eda95369-61f8-4568-b335-a4013f223c0f 5Gi RWO Retain Bound repo/data-harbor-trivy-0 ssd 2y146d +pvc-f5787d59-a69a-4427-9094-a1fb0d5a7fe7 4Gi RWO Retain Released matrix/db2-conduit-0 ssd 2y15d +pvc-f763ad05-2ee9-43a7-b1cd-e72de4544ca4 50Gi RWO Retain Released postgres/pgdata-cocaine-postgres-0 shared 2y131d +pvc-fa19427a-8cda-4228-814b-03e9f379a788 25Gi RWO Retain Released auth/data-keycloak-postgresql-0 ssd 2y182d +pvc-fa7aad32-f347-4ad1-b2f4-5d95da9e8203 30Gi RWO Retain Bound c0re/server-satisfactory-server-0 ssd 2y59d +teamspeak 2Gi RWX Retain Bound tba/data-teamspeak-0 ssd 2y139d |
