This repository has no description
1.2 kB
42 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 # StateDirectory before stateVersion 24.11
34 lass.backup.state.vaultwarden.folders = [ "/var/lib/bitwarden_rs" ];
35
36 services.nginx.virtualHosts."vault.lassul.us" = {
37 enableACME = true;
38 forceSSL = true;
39 locations."/".proxyPass =
40 "http://localhost:${toString config.services.vaultwarden.config.ROCKET_PORT}";
41 };
42}