{ config, inputs, pkgs, ... }: { services.rustfs = { enable = true; environmentFile = config.age.secrets.rustfs-env.path; settings = { # Reuse existing MinIO data directory RUSTFS_VOLUMES = "/var/storage/s3"; # Keep same ports as MinIO to avoid changing Traefik and client configs RUSTFS_ADDRESS = ":3008"; RUSTFS_CONSOLE_ENABLE = "true"; RUSTFS_CONSOLE_ADDRESS = ":3007"; RUST_LOG = "info"; }; }; # Traefik configuration — same routes as before services.traefik.dynamicConfigOptions.http = { services.minio-console.loadBalancer.servers = [ { url = "http://localhost:3007/"; } ]; services.minio.loadBalancer.servers = [ { url = "http://localhost:3008/"; } ]; routers.minio = { rule = "Host(`s3.m3tam3re.com`)"; tls = { certResolver = "godaddy"; }; service = "minio"; entrypoints = "websecure"; }; routers.minio-console = { rule = "Host(`minio.m3tam3re.com`)"; tls = { certResolver = "godaddy"; }; service = "minio-console"; entrypoints = "websecure"; }; }; }