51 lines
1 KiB
Nix
51 lines
1 KiB
Nix
{
|
|
inputs,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: {
|
|
imports = [
|
|
inputs.arion.nixosModules.arion
|
|
./dns
|
|
./infrastructure
|
|
./nextcloud
|
|
./push
|
|
./git
|
|
./passwords
|
|
./media
|
|
./dashboard
|
|
./smarthome
|
|
./signal
|
|
./feed
|
|
./matrix
|
|
./headscale
|
|
./auth
|
|
./minio
|
|
./stats
|
|
./wiki
|
|
];
|
|
|
|
environment.systemPackages = with pkgs; [arion];
|
|
|
|
virtualisation.arion.backend = "docker";
|
|
|
|
systemd.services.init-dmz-bridge-network = {
|
|
description = "Create the network bridge dmz for the Docker stack.";
|
|
after = ["network.target"];
|
|
wantedBy = ["multi-user.target"];
|
|
|
|
serviceConfig.Type = "oneshot";
|
|
script = let
|
|
dockercli = "${config.virtualisation.docker.package}/bin/docker";
|
|
in ''
|
|
# Put a true at the end to prevent getting non-zero return code, which will
|
|
# crash the whole service.
|
|
check=$(${dockercli} network ls | grep "dmz" || true)
|
|
if [ -z "$check" ]; then
|
|
${dockercli} network create dmz
|
|
else
|
|
echo "dmz already exists in docker"
|
|
fi
|
|
'';
|
|
};
|
|
}
|