nix-config/hosts/franz/arion/passwords/arion-compose.nix

49 lines
1.7 KiB
Nix

{pkgs, ...}: {
project.name = "passwords";
networks.dmz = {
name = "dmz";
external = true;
};
services = {
vaultwarden.service = {
image = "vaultwarden/server:1.31.0";
container_name = "vaultwarden";
labels = {
"traefik.enable" = "true";
"traefik.docker.network" = "dmz";
"traefik.http.services.vaultwarden.loadbalancer.server.port" = "80";
"traefik.http.routers.vaultwarden.service" = "vaultwarden";
"traefik.http.routers.vaultwarden.entrypoints" = "websecure";
"traefik.http.routers.vaultwarden.rule" = "Host(`vault.ghoscht.com`)";
"traefik.http.routers.vaultwarden.tls" = "true";
"traefik.http.routers.vaultwarden.tls.certresolver" = "letsencrypt";
"traefik.http.services.vaultwarden-external.loadbalancer.server.port" = "80";
"traefik.http.routers.vaultwarden-external.service" = "vaultwarden-external";
"traefik.http.routers.vaultwarden-external.rule" = "Host(`vault.ghoscht.com`)";
"traefik.http.routers.vaultwarden-external.entrypoints" = "websecure-external";
"traefik.http.routers.vaultwarden-external.tls" = "true";
"traefik.http.routers.vaultwarden-external.tls.certresolver" = "letsencrypt";
"diun.enable" = "true";
"diun.watch_repo" = "true";
"diun.sort_tags" = "semver";
"diun.include_tags" = "^\\d+\\.\\d+\\.\\d+$$";
"diun.exclude_tags" = "\\b\\d{4,}\\b";
};
volumes = [
"/storage/dataset/docker/passwords/vaultwarden_data/:/data"
];
environment = {
DOMAIN = "http://vaultwarden.ghoscht.com";
};
restart = "always";
networks = [
"dmz"
];
};
};
}