{ lib, ... }: let marzban-config = { port = mkOption { type = types.int; default = 8000; }; sudo-username = mkOption { type = types.str; default = "admin"; }; sudo-password = mkOption { type = types.str; default = "admin"; }; vless-port = mkOption { type = types.int; default = 1080; }; dest = mkOption { type = types.str; default = "yahoo.com:443"; }; privateKey = mkOption { type = types.str; default = ""; }; shortId = mkOption { type = types.str; default = ""; }; spiderX = mkOption { type = types.str; default = "/"; }; sni = mkOption { type = types.str; default = "/"; }; }; affine-config = with lib; { env = { PORT = mkOption { type = int; default = 3010; }; DB_USERNAME = mkOption { type = str; default = "affine"; }; DB_PASSWORD = mkOption { type = str; default = "affine"; }; DB_DATABASE = mkOption { type = str; default = "affine"; }; }; revision = mkOption { type = str; default = "stable"; }; }; in { options = with lib; { secret = { artemisia = { marzban = marzban-config; yggdrasil.PrivateKey = mkOption { type = str; default = ""; }; }; mio = { marzban = marzban-config; }; vanessa = { marzban = marzban-config; }; reine = { yggdrasil.PrivateKey = mkOption { type = str; default = ""; }; affine = affine-config; qbt-password = mkOption { type = str; default = ""; }; }; common = { yggdrasil = { reine = mkOption { type = str; default = ""; }; artemisia = mkOption { type = str; default = ""; }; password = mkOption { type = str; default = ""; }; }; }; }; }; }