project-flake/secret.nix
2025-10-19 11:14:51 +07:00

51 lines
No EOL
1.6 KiB
Nix

{ 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 = ""; };
};
};
};
};
}