{ config, lib, pkgs, ... }: let inherit (lib) mkIf; cfg = config.pepe.services.minio; in { options.pepe.services.minio = with lib; { enable = mkEnableOption "Enable MinIO S3-compatible object storage"; package = mkPackageOption pkgs "minio" { default = pkgs.minio_legacy_fs; }; domain = mkOption { type = types.str; default = null; }; }; config = mkIf cfg.enable { services.minio = { enable = true; package = cfg.package; }; pepe.core.vhost.hosts.${cfg.domain} = with config.pepe.core.network; { dnsInterfaces = [ interfaceTypes.vpn interfaceTypes.lan ]; locations."/" = { port = 9000; allowLAN = true; allowVPN = true; extraConfig = '' client_max_body_size 500M; ''; }; }; }; }