gifford-compute-1/services.nix
2023-12-29 07:39:26 -05:00

26 lines
950 B
Nix

{pkgs, ...}: {
environment.etc."srv/docker-compose.yml" = builtins.readFile ./docker-compose.yml;
systemd.services.load-balancer = let dataset = "gc1_srv";
in {
wantedBy = ["multi-user.target"];
requires = ["public-network.service"
"zfs-import-${dataset}.service"];
after = ["public-network.service"
"zfs-import-${dataset}.service"];
serviceConfig = {
ExecStart = "${pkgs.docker}/bin/docker compose up";
WorkingDirectory = "/etc/srv/load-balancer";
};
};
}
# '//' in nix means "merge attribute sets". We're importing a function at the
# path, then calling it with the attr set as an argument, and merging the
# results with the config above
// import ./common/services/load-balancer { dataset = "gc1_srv"; pkgs = pkgs; }
// import ./common/services/conduit.nix {
dataset = "gc1_srv";
pkgs = pkgs;
domain = "chat.techwork.zone";
}