aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2024-10-18 16:37:32 +0200
committerMax Audron <audron@cocaine.farm>2024-10-18 16:37:32 +0200
commit7741d163cb90d7e08d44ece4afa56da34d500d09 (patch)
tree9f2b482de681ac64f46a7c453e38961102b0db30
parentmove catinator secrets to be managed by secrets module (diff)
switch to protonvpn for illegal activities
-rw-r--r--flake.lock6
-rw-r--r--modules/tlmp/rtorrent.nix69
-rw-r--r--modules/tlmp/rtorrent.rc138
-rw-r--r--pv_mapping.txt77
4 files changed, 240 insertions, 50 deletions
diff --git a/flake.lock b/flake.lock
index 8b4f9ef..e922583 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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