Personal-use NixOS configuration
at main 67 lines 1.4 kB view raw
1{ 2 hosts ? [ ], 3}: 4 5{ flakeLib, ... }: 6 7let 8 socket = "/run/vaultwarden/vaultwarden.sock"; 9in 10{ 11 imports = [ 12 ../databases/postgresql.nix 13 ]; 14 15 services.postgresql = { 16 ensureUsers = [ 17 { 18 name = "vaultwarden"; 19 ensureDBOwnership = true; 20 } 21 ]; 22 23 ensureDatabases = [ "vaultwarden" ]; 24 }; 25 26 services.vaultwarden = { 27 enable = true; 28 29 dbBackend = "postgresql"; 30 31 config = { 32 ICON_SERVICE = "internal"; 33 ICON_REDIRECT_CODE = 301; 34 35 SIGNUPS_VERIFY = true; 36 REQUIRE_DEVICE_EMAIL = true; 37 SMTP_EMBED_IMAGES = false; 38 39 EMERGENCY_ACCESS_ALLOWED = false; 40 PASSWORD_HINTS_ALLOWED = false; 41 AUTHENTICATOR_DISABLE_TIME_DRIFT = true; 42 43 INVITATIONS_ALLOWED = true; 44 SIGNUPS_ALLOWED = false; 45 46 TRASH_AUTO_DELETE_DAYS = 7; 47 48 USER_ATTACHMENT_LIMIT = 51200; 49 50 # TODO: look into websockets 51 # TODO: look into push 52 # TODO: HaveIBeenPwned API Key 53 54 EXPERIMENTAL_CLIENT_FEATURE_FLAGS = "fido2-vault-credentials,simple-login-self-host-alias"; 55 56 EXTENDED_LOGGING = false; 57 58 ROCKET_ADDRESS = "127.0.0.1"; # "unix:${socket}"; Supposedly, this is supported. However, it is not. 59 DATABASE_URL = "postgresql:///vaultwarden?host=/run/postgresql"; 60 }; 61 }; 62 63 # Caddy reverse proxy configuration 64 services.caddy.virtualHosts = flakeLib.mkProxies hosts '' 65 reverse_proxy :8000 # unix/${socket} 66 ''; 67}