This repository has no description
1.1 kB
39 lines
1{
2 config,
3 options,
4 pkgs,
5 ...
6}:
7{
8 clan.core.vars.generators.vaultwarden = {
9 files.vaultwarden_admin_token.deploy = false;
10 files."vaultwarden.env" = { };
11 runtimeInputs = [
12 pkgs.pwgen
13 pkgs.libargon2
14 ];
15 script = ''
16 pwgen 20 1 | tr -d '\n' > $out/vaultwarden_admin_token
17 cat $out/vaultwarden_admin_token | argon2 "$(pwgen 20 1 | tr -d '\n')" -e > vaultwarden_token_hashed
18 cat > "$out/vaultwarden.env" << EOF
19 ADMIN_TOKEN='$(cat vaultwarden_token_hashed)'
20 EOF
21 '';
22 };
23 services.vaultwarden = {
24 enable = true;
25 environmentFile = config.clan.core.vars.generators.vaultwarden.files."vaultwarden.env".path;
26 config = options.services.vaultwarden.config.default // {
27 SIGNUPS_ALLOWED = false;
28 DOMAIN = "https://vault.lassul.us";
29 WEBSOCKET_ENABLED = true;
30 };
31 };
32
33 services.nginx.virtualHosts."vault.lassul.us" = {
34 enableACME = true;
35 forceSSL = true;
36 locations."/".proxyPass =
37 "http://localhost:${toString config.services.vaultwarden.config.ROCKET_PORT}";
38 };
39}