blob: 72db42b12ff96094aec218c630c4941d194a6dec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
{ config, ... }:
let
hostname = config.networking.hostName;
cfg = config.services.vaultwarden.config;
secrets = config.sops.secrets;
in
{
services.vaultwarden = {
enable = true;
configureNginx = false;
dbBackend = "sqlite";
domain = "${hostname}.internal";
config = {
SIGNUPS_ALLOWED = true;
ROCKET_ADDRESS = "127.0.0.1";
ROCKET_PORT = 8222;
ROCKET_LOG = "critical";
};
};
services.nginx.virtualHosts."vaultwarden" = {
serverName = "${hostname}.internal";
forceSSL = true;
listen = [
{
addr = "[2301:db8:acad:a::1]"; # TODO: extract from topology instead of hardcoding
port = 443;
ssl = true;
}
];
sslCertificateKey = secrets."wg-ca-key".path;
sslCertificate = secrets."wg-ca-crt".path;
locations."/" = {
proxyPass = "http://127.0.0.1:${toString cfg.ROCKET_PORT}";
recommendedProxySettings = true;
};
};
}
|