feat: add vaultwarden

Signed-off-by: Chinmay D. Pai <chinmay.pai@zerodha.com>
This commit is contained in:
Chinmay D. Pai 2023-11-28 21:21:42 +05:30
parent 007038f1be
commit 0e2abbd17b
Signed by: thunderbottom
GPG Key ID: 75507BE256F40CED
6 changed files with 69 additions and 10 deletions

View File

@ -4,9 +4,11 @@
../../modules/commons
../../modules/nixos/core-server.nix
../../modules/nixos/user-group.nix
../../modules/programs/nginx.nix
../../modules/programs/nixvim
../../modules/programs/nomad
../../modules/programs/gitea
../../modules/programs/vaultwarden
];
environment.systemPackages = with pkgs; [tailscale];

View File

@ -66,17 +66,7 @@ in {
};
users.groups.git = {};
security.acme = {
acceptTerms = true;
email = "chinmaydpai@gmail.com";
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
recommendedTlsSettings = true;
virtualHosts = {
"${domain}" = {
serverName = "${domain}";

View File

@ -0,0 +1,14 @@
{...}: {
security.acme = {
acceptTerms = true;
email = "chinmaydpai@gmail.com";
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
recommendedTlsSettings = true;
};
}

View File

@ -0,0 +1,52 @@
{
config,
pkgs,
...
}: let
domain = "bw.deku.moe";
in {
age.secrets.vaultwarden = {
file = ../../../secrets/vaultwarden.age;
owner = "vaultwarden";
group = "vaultwarden";
};
services.vaultwarden = {
enable = true;
package = pkgs.vaultwarden;
environmentFile = config.age.secrets.vaultwarden.path;
dbBackend = "postgresql";
config = {
domain = "https://${domain}";
signupsAllowed = false;
rocketAddress = "127.0.0.1";
rocketPort = 33003;
databaseUrl = "postgres:///vaultwarden?host=/var/run/postgresql";
};
};
services.postgresql.ensureDatabases = ["vaultwarden"];
services.postgresql.ensureUsers = [
{
name = "vaultwarden";
ensureDBOwnership = true;
}
];
services.nginx = {
virtualHosts = {
"${domain}" = {
serverName = "${domain}";
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.vaultwarden.config.rocketPort}/";
};
};
};
};
}

View File

@ -10,4 +10,5 @@ let
users = thunderbottom ++ codingcoffee;
in {
"gitea.age".publicKeys = users ++ servers;
"vaultwarden.age".publicKeys = users ++ servers;
}

BIN
secrets/vaultwarden.age Normal file

Binary file not shown.