mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
64 lines
1.8 KiB
Nix
64 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
gensokyo-zone,
|
|
...
|
|
}: let
|
|
inherit (gensokyo-zone.lib) mkAlmostOptionDefault;
|
|
in {
|
|
config.exports.services.freepbx = {config, ...}: {
|
|
displayName = mkAlmostOptionDefault "FreePBX";
|
|
id = mkAlmostOptionDefault "pbx";
|
|
ports = let
|
|
ucpGtatus = {
|
|
client.network = mkAlmostOptionDefault "ip4";
|
|
http = {
|
|
websocket.enable = mkAlmostOptionDefault true;
|
|
path = mkAlmostOptionDefault "/socket.io/?transport=websocket";
|
|
statusCondition = mkAlmostOptionDefault "[BODY] == pat(*\"sid\":*)";
|
|
};
|
|
};
|
|
in {
|
|
http = {
|
|
displayName = mkAlmostOptionDefault null;
|
|
port = mkAlmostOptionDefault 80;
|
|
protocol = "http";
|
|
status.enable = mkAlmostOptionDefault true;
|
|
};
|
|
https = {
|
|
port = mkAlmostOptionDefault 443;
|
|
protocol = "https";
|
|
};
|
|
ucp = {
|
|
port = mkAlmostOptionDefault 8001;
|
|
protocol = "http";
|
|
displayName = mkAlmostOptionDefault "UCP";
|
|
status = {
|
|
enable = mkAlmostOptionDefault config.ports.http.status.enable;
|
|
gatus = ucpGtatus;
|
|
};
|
|
};
|
|
ucp-ssl = {
|
|
port = mkAlmostOptionDefault 8003;
|
|
protocol = "https";
|
|
status.gatus = ucpGtatus;
|
|
};
|
|
asterisk = {
|
|
port = mkAlmostOptionDefault 8088;
|
|
protocol = "http";
|
|
prometheus.exporter.enable = let
|
|
sslPort = config.ports.asterisk-ssl;
|
|
in mkAlmostOptionDefault (!sslPort.enable || !sslPort.prometheus.exporter.enable);
|
|
};
|
|
asterisk-ssl = {
|
|
port = mkAlmostOptionDefault 8089;
|
|
protocol = "https";
|
|
prometheus.exporter.enable = mkAlmostOptionDefault true;
|
|
};
|
|
operator = {
|
|
enable = mkAlmostOptionDefault false;
|
|
port = mkAlmostOptionDefault 58080;
|
|
protocol = "http";
|
|
};
|
|
};
|
|
};
|
|
}
|