add mirism

This commit is contained in:
2023-11-16 13:58:59 +08:00
parent 8cbad5dc58
commit 97468b121b
3 changed files with 78 additions and 9 deletions

View File

@@ -270,15 +270,7 @@
frpServer = { enable = true; serverName = "frp.chn.moe"; };
nginx =
{
transparentProxy =
{
externalIp = [ "74.211.99.69" "192.168.82.1" ];
map =
{
"ng01.mirism.one" = 7411;
"beta.mirism.one" = 9114;
};
};
transparentProxy.externalIp = [ "74.211.99.69" "192.168.82.1" ];
streamProxy.map =
{
"anchor.fm" = { upstream = "anchor.fm:443"; proxyProtocol = false; };
@@ -299,6 +291,7 @@
};
coturn.enable = true;
httpua.enable = true;
mirism.enable = true;
};
};})
];

View File

@@ -33,6 +33,7 @@ inputs:
./httpua
./fz-new-order
./httpapi.nix
./mirism.nix
];
options.nixos.services = let inherit (inputs.lib) mkOption types; in
{

View File

@@ -0,0 +1,75 @@
inputs:
{
options.nixos.services.mirism = let inherit (inputs.lib) mkOption types; in
{
enable = mkOption { type = types.bool; default = false; };
};
config =
let
inherit (inputs.config.nixos.services) mirism;
inherit (inputs.lib) mkIf;
inherit (builtins) map listToAttrs toString concatLists;
in mkIf mirism.enable
{
users = { users.mirism = { isSystemUser = true; group = "mirism"; }; groups.mirism = {}; };
systemd.services = listToAttrs (map
(instance:
{
name = "mirism-${instance}";
value =
{
description = "mirism ${instance}";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig =
{
User = inputs.config.users.users.mirism.name;
Group = inputs.config.users.users.mirism.group;
ExecStart = "${inputs.pkgs.localPackages.mirism}/bin/${instance}";
};
};
})
[ "ng01" "beta" ]);
nixos.services =
{
nginx =
{
enable = true;
transparentProxy.map =
{
"ng01.mirism.one" = 7411;
"beta.mirism.one" = 9114;
};
https = listToAttrs (map
(instance:
{
name = "${instance}mirism.one";
value.location."/".static =
{
root = "/var/${instance}mirism";
index = [ "index.html" ];
};
})
[ "entry." "" ]);
};
acme =
{
enable = true;
cert = { "ng01.mirism.one".group = "mirism"; "beta.mirism.one".group = "mirism"; };
};
};
environment.etc = listToAttrs (concatLists (map
(instance:
[
{
name = "letsencrypt/live/${instance}.mirism.one/fullchain.pem";
value.source = "${inputs.config.security.acme.certs."${instance}.mirism.one".directory}/fullchain.pem";
}
{
name = "letsencrypt/live/${instance}.mirism.one/privkey.pem";
value.source = "${inputs.config.security.acme.certs."${instance}.mirism.one".directory}/key.pem";
}
])
[ "ng01" "beta" ]));
};
}