feat: add vaultwared service to orion
This commit is contained in:
parent
56fb173b71
commit
8de956ae72
@ -102,6 +102,8 @@
|
|||||||
smartmontools
|
smartmontools
|
||||||
];
|
];
|
||||||
|
|
||||||
|
ataraxia.services.vaultwarden.enable = true;
|
||||||
|
|
||||||
ataraxia.virtualisation.guests = {
|
ataraxia.virtualisation.guests = {
|
||||||
omv = {
|
omv = {
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
80
modules/nixos/services/vaultwarden.nix
Normal file
80
modules/nixos/services/vaultwarden.nix
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
secretsDir,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf mkOption;
|
||||||
|
inherit (lib.types) str;
|
||||||
|
|
||||||
|
cfg = config.ataraxia.services.vaultwarden;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.ataraxia.services.vaultwarden = {
|
||||||
|
enable = mkEnableOption "Enable vaultwarden service";
|
||||||
|
sopsDir = mkOption {
|
||||||
|
type = str;
|
||||||
|
default = config.networking.hostName;
|
||||||
|
description = ''
|
||||||
|
Name for sops secrets directory. Defaults to hostname.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
sops.secrets.vaultwarden.sopsFile = secretsDir + /${cfg.sopsDir}/vaultwarden.yaml;
|
||||||
|
sops.secrets.vaultwarden.owner = config.users.users.vaultwarden.name;
|
||||||
|
sops.secrets.vaultwarden.restartUnits = [ "vaultwarden.service" ];
|
||||||
|
|
||||||
|
services.vaultwarden = {
|
||||||
|
enable = true;
|
||||||
|
backupDir = "/srv/vaultwarden";
|
||||||
|
config = {
|
||||||
|
domain = "https://vw.ataraxiadev.com";
|
||||||
|
extendedLogging = true;
|
||||||
|
invitationsAllowed = false;
|
||||||
|
useSyslog = true;
|
||||||
|
logLevel = "warn";
|
||||||
|
rocketAddress = "127.0.0.1";
|
||||||
|
rocketPort = 8812;
|
||||||
|
showPasswordHint = false;
|
||||||
|
signupsAllowed = false;
|
||||||
|
signupsDomainsWhitelist = "ataraxiadev.com";
|
||||||
|
signupsVerify = true;
|
||||||
|
smtpAuthMechanism = "Login";
|
||||||
|
smtpFrom = "vaultwarden@ataraxiadev.com";
|
||||||
|
smtpFromName = "Vaultwarden";
|
||||||
|
smtpHost = "mail.ataraxiadev.com";
|
||||||
|
smtpPort = 587;
|
||||||
|
smtpSecurity = "starttls";
|
||||||
|
websocketAddress = "127.0.0.1";
|
||||||
|
websocketEnabled = true;
|
||||||
|
websocketPort = 3012;
|
||||||
|
webVaultEnabled = true;
|
||||||
|
};
|
||||||
|
environmentFile = config.sops.secrets.vaultwarden.path;
|
||||||
|
};
|
||||||
|
|
||||||
|
# We need to do this to successufully create backup folder
|
||||||
|
# systemd.services.backup-vaultwarden.serviceConfig = {
|
||||||
|
# User = "root";
|
||||||
|
# Group = "root";
|
||||||
|
# };
|
||||||
|
|
||||||
|
persist.state.directories = [
|
||||||
|
"/var/lib/vaultwarden"
|
||||||
|
config.services.vaultwarden.backupDir
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules =
|
||||||
|
let
|
||||||
|
backupDir = config.services.vaultwarden.backupDir;
|
||||||
|
user = config.systemd.services.backup-vaultwarden.serviceConfig.User;
|
||||||
|
group = config.systemd.services.backup-vaultwarden.serviceConfig.Group;
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"d ${backupDir} 0700 ${user} ${group} -"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
26
secrets/orion/vaultwarden.yaml
Normal file
26
secrets/orion/vaultwarden.yaml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
vaultwarden: ENC[AES256_GCM,data:B1qaU/1jsDgbc7wEl3Yrehez3vHCOPDQ5rjpkYPf4QgVwonOvvEf4H7doVwabhihRqoy43QXBeDRuPVaea/ZJythvZV0cez2Mr6YrhG7/BSB+AIDEa+wNQTGgY5IWkztp7j4BP1XmyRA4A42dOnfHJR6BncJGAfhNguq3FZJuf5BClvyT5aov+GKfiO81l93ig324TKsU9ClLqmVarrPCNba683ADrH8g5EkB2rw0LwKJBWVQh0TKhTTyFdMFTNaIQ17K1ueqLwd2xIfHMmN61s=,iv:H6/RxF6LSMD3OUAY3mEhof2VGOCctg6FsaoyOTI9e5Q=,tag:W+nCl/RAWpdXWbE9v/oMOg==,type:str]
|
||||||
|
sops:
|
||||||
|
shamir_threshold: 1
|
||||||
|
age:
|
||||||
|
- recipient: age13phpsegg6vu7a34ydtfa9s904dfpgzqhzru7epnky7glezk0xvkst9qh6h
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnNVZpRE8zUzN0RWNXT09F
|
||||||
|
bUR0MmxMNDNybHBEN0FKY3VtTW1XREpaSkNJCnpGRmZqRlU0YlBiYkxkeEVLMzdv
|
||||||
|
eERFc3dITG5lOTVLRkJYM2NNa1lpWDgKLS0tIEsra0ZBblhiTk9kTFJxWjZtRDhS
|
||||||
|
NDhKY2dEVXFOL3JIZmtMVG5tVklIQXcKbLLeZOrJCGRPscw4LWsVAGk29EwQg0lK
|
||||||
|
+YYSsQLm+cZNLxHLClsmQn/ykEvIEA5/1DjFXVvulFW+Kbk9NwSxHA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1m5msm7rgqye2q9zesgedg0emga4ntehlr629786lrxs3rhk0squq0ly9je
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqa0tPM2NiaW13Sk5rR091
|
||||||
|
VVBVYnRoc3I2WFI3WFhETTdXUzU4ckFZbGtJCjR4em80Vm1UQk9vM3h4OER6dVNs
|
||||||
|
RWJwazRiUHVXY01vZ1hyN3k3MlBrbUEKLS0tIDd3aEhxNDZHWDdETkd0VkMwOTZG
|
||||||
|
MWNhelRQZTdBZGMzUk5HQklSWWVTNWMK6gunbCmYfXh4fQ3mV0kh6TlwxTpxlUI0
|
||||||
|
Y6+pPh+Sw39KTFdirXv5OTWtCN53S6HXejIuctIOvdfrB1LYwsb7XA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2024-01-21T19:24:09Z"
|
||||||
|
mac: ENC[AES256_GCM,data:+KnkQjRKq7f7gojR4TDRUahPPcOshTQUIzJOmGBD4cspjLj0Ljf9tqoMCvCzwU7CGIg2c4phUCWluyQwlUAoiRL0rM8YyN2nE0PiWOcnl3p9FHwHxV9ElWiWpVnKroVxZEz0vmj0nsabl9PRD5ipX06kDK8GRZXFw+laSCy0N1E=,iv:7DO9ML9ToedihSJA6v1hMcd4Q/PJ+JLvJQk69kQ8btA=,tag:cifnSqY1ezoHt8WHtuyakw==,type:str]
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.8.1
|
Loading…
x
Reference in New Issue
Block a user