allow disabling mdns

This commit is contained in:
Robin Appelman 2022-07-12 14:57:24 +02:00
commit 844b4edae0
4 changed files with 23 additions and 6 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
/target
/result
.direnv
.env

View file

@ -34,7 +34,7 @@
# `nix develop`
devShell = pkgs.mkShell {
nativeBuildInputs = with pkgs; [rustc cargo];
nativeBuildInputs = with pkgs; [rustc cargo bacon];
};
})
// {
@ -71,6 +71,13 @@
description = "enable docker integration";
};
mdns = mkOption rec {
type = types.bool;
default = true;
example = true;
description = "enable mdns discovery";
};
openPort = mkOption rec {
type = types.bool;
default = false;
@ -103,6 +110,11 @@
systemd.services."palantir" = {
wantedBy = ["multi-user.target"];
path = lib.optional cfg.zfs pkgs.zfs;
environment = {
PORT = "${toString cfg.port}";
} // (if (cfg.mdns == false) then {
DISABLE_MDNS = "true";
} else {});
serviceConfig = let
pkg = self.defaultPackage.${pkgs.system};
@ -110,7 +122,6 @@
Restart = "on-failure";
ExecStart = "${pkg}/bin/palantir";
User = "palantir";
Environment = "PORT=${toString cfg.port}";
PrivateTmp = true;
ProtectSystem = "full";
ProtectHome = true;

View file

@ -64,6 +64,8 @@ async fn main() -> Result<()> {
.transpose()?
.unwrap_or(80);
let mdns = dotenv::var("DISABLE_MDNS").is_ok();
ctrlc::set_handler(move || {
std::process::exit(0);
})
@ -72,10 +74,12 @@ async fn main() -> Result<()> {
let docker = get_docker().await;
let docker = warp::any().map(move || docker.clone());
spawn(setup_mdns(
hostname::get()?.into_string().unwrap(),
host_port,
));
if !mdns {
spawn(setup_mdns(
hostname::get()?.into_string().unwrap(),
host_port,
));
}
let metrics = warp::path!("metrics").and(docker).and_then(serve_metrics);