Skip to content

Commit 25cbc5e

Browse files
committed
hosts.argon: setup vaultwarden
1 parent 1329d40 commit 25cbc5e

File tree

5 files changed

+97
-0
lines changed

5 files changed

+97
-0
lines changed

flake/nixpkgs.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import inputs.nixpkgs {
4141
minecraftServers
4242
portfolio
4343
teamspeak_server
44+
vaultwarden
4445
vscode
4546
;
4647

hosts/argon/configuration.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
applications = {
1010
original-chattengauer.enable = true;
1111

12+
vaultwarden.enable = true;
13+
1214
vereinsmanager.enable = true;
1315
};
1416

nixos/applications/vaultwarden.nix

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
{ config, lib, pkgs, ... }:
2+
3+
let
4+
inherit (lib)
5+
mkEnableOption
6+
mkIf
7+
;
8+
9+
cfg = config.custom.applications.vaultwarden;
10+
vaultwardenCfg = config.services.vaultwarden;
11+
12+
domain = "vaultwarden.tobias-happ.de";
13+
in
14+
15+
{
16+
17+
###### interface
18+
19+
options = {
20+
21+
custom.applications.vaultwarden.enable = mkEnableOption "vaultwarden";
22+
23+
};
24+
25+
26+
###### implementation
27+
28+
config = mkIf cfg.enable {
29+
30+
custom = {
31+
agenix.secrets = [ "vaultwarden-config" ];
32+
33+
services = {
34+
backup.services.vaultwarden = {
35+
description = "Vaultwarden";
36+
interval = "Tue *-*-* 04:40:00";
37+
user = "vaultwarden";
38+
39+
directoryToBackup = vaultwardenCfg.backupDir;
40+
};
41+
42+
nginx.enable = true;
43+
};
44+
};
45+
46+
services = {
47+
vaultwarden = {
48+
enable = true;
49+
dbBackend = "sqlite";
50+
backupDir = "/var/backup/vaultwarden";
51+
environmentFile = config.age.secrets.vaultwarden-config.path;
52+
53+
config = {
54+
ROCKET_PORT = 8000;
55+
DOMAIN = "https://${domain}";
56+
57+
SIGNUPS_ALLOWED = false;
58+
};
59+
};
60+
61+
nginx.virtualHosts.${domain} = {
62+
enableACME = true;
63+
forceSSL = true;
64+
locations."/" = {
65+
proxyPass = "http://127.0.0.1:${toString vaultwardenCfg.config.ROCKET_PORT}/";
66+
proxyWebsockets = true;
67+
};
68+
};
69+
};
70+
71+
};
72+
73+
}

nixos/misc/agenix.nix

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ in
4040
"passwd-root-neon"
4141
"passwd-tobias-neon"
4242
"teamspeak-serverquery-password"
43+
"vaultwarden-config"
4344
"wireless-config"
4445
]);
4546
default = [ ];
@@ -118,6 +119,12 @@ in
118119
user = "teamspeak-update-notifier";
119120
})
120121

122+
(buildConfig {
123+
name = "vaultwarden-config";
124+
host = "argon";
125+
user = "vaultwarden";
126+
})
127+
121128
(buildConfig {
122129
name = "wireless-config";
123130
host = "xenon";
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN AGE ENCRYPTED FILE-----
2+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwQkFpM3MrVVZKMVIvWnVF
3+
Q3VJc1IzQkxjenlOOHJqdi9GcDc1a3kyYlU0ClRkKzU5S0JVcktGdmY0WG16UWFZ
4+
K0VJRzZjRWRVWWc5cWhORTQzK3FlTG8KLT4gWDI1NTE5IForNWp5L0VyT01IS1BM
5+
L0RnYUtwOFpUWlBKeHpmU1hEZytzcUdSTW1xblUKdmZEUXd0NUlYeHl4WEJZcGxD
6+
bjhhSVpxRnBtK3BDWmpYcm4ybjRFeW5FVQotPiBnL2ZhRS1ncmVhc2UgdjQtc3ty
7+
Cjhub2lOVUpIN2hDTmRTaWVhWXlxZDZvQis3VGpGM1VzUEkxQUFVY01vR0xiVEYr
8+
VkVnZE8zbkxpcUh6WVVDR1kKS2xIWHRNV1BKa0VSCi0tLSA2bG9XcG1TVjQ0c1Zt
9+
VFBYOVduQjR4Mjl2dFJIWUgrQzJpMkRlMEdRN05JCmfgFf0JEI+0nK5/dVIgNgXH
10+
11i25CpyMlWVr9ER6DLY5lwqm2L3qzdmn1R8aZfCoQFf0yvdZ4tXXlhzMpmh/VJm
11+
wtoybh4iq7otJNEqOW0a6QOxFk5ulKkdL+NEzlRB7VQVB6f9HkeBXgQaAUNdG/Al
12+
isIr9XRcf3fsiF6wwg1+ZXT5W90UQtYPxmT0ZCVnVl1B/wv7FmGeQTBqm23bHUzl
13+
k+E=
14+
-----END AGE ENCRYPTED FILE-----

0 commit comments

Comments
 (0)