vaultwarden
This commit is contained in:
parent
0017429e49
commit
9163143204
5
data.nix
5
data.nix
@ -15,8 +15,13 @@ rec {
|
|||||||
ports = {
|
ports = {
|
||||||
grafana = 3000;
|
grafana = 3000;
|
||||||
gitea = 3001;
|
gitea = 3001;
|
||||||
|
|
||||||
|
# not necessary from vaultwarden 1.29.0
|
||||||
|
vaultwarden_ws = 3012;
|
||||||
|
|
||||||
soju = 6697;
|
soju = 6697;
|
||||||
matrix-synapse = 8008;
|
matrix-synapse = 8008;
|
||||||
|
vaultwarden = 8222;
|
||||||
kodi = 8080;
|
kodi = 8080;
|
||||||
prometheus = 9001;
|
prometheus = 9001;
|
||||||
exporters.node = 9002;
|
exporters.node = 9002;
|
||||||
|
@ -108,16 +108,13 @@
|
|||||||
subnetCIDR = myData.tailscale_subnet.cidr;
|
subnetCIDR = myData.tailscale_subnet.cidr;
|
||||||
};
|
};
|
||||||
|
|
||||||
nsd-acme = {
|
nsd-acme = let
|
||||||
|
accountKey = config.age.secrets.letsencrypt-account-key.path;
|
||||||
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
zones."grafana.jakstys.lt" = {
|
zones."grafana.jakstys.lt".accountKey = accountKey;
|
||||||
accountKey = config.age.secrets.letsencrypt-account-key.path;
|
zones."irc.jakstys.lt".accountKey = accountKey;
|
||||||
staging = false;
|
zones."bitwarden.jakstys.lt".accountKey = accountKey;
|
||||||
};
|
|
||||||
zones."irc.jakstys.lt" = {
|
|
||||||
accountKey = config.age.secrets.letsencrypt-account-key.path;
|
|
||||||
staging = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
deployerbot = {
|
deployerbot = {
|
||||||
@ -190,6 +187,29 @@
|
|||||||
reverse_proxy 127.0.0.1:3000
|
reverse_proxy 127.0.0.1:3000
|
||||||
tls {$CREDENTIALS_DIRECTORY}/grafana.jakstys.lt-cert.pem {$CREDENTIALS_DIRECTORY}/grafana.jakstys.lt-key.pem
|
tls {$CREDENTIALS_DIRECTORY}/grafana.jakstys.lt-cert.pem {$CREDENTIALS_DIRECTORY}/grafana.jakstys.lt-key.pem
|
||||||
'';
|
'';
|
||||||
|
virtualHosts."bitwarden.jakstys.lt".extraConfig = ''
|
||||||
|
@denied not remote_ip ${myData.tailscale_subnet.cidr}
|
||||||
|
abort @denied
|
||||||
|
tls {$CREDENTIALS_DIRECTORY}/bitwarden.jakstys.lt-cert.pem {$CREDENTIALS_DIRECTORY}/bitwarden.jakstys.lt-key.pem
|
||||||
|
|
||||||
|
# from https://github.com/dani-garcia/vaultwarden/wiki/Proxy-examples
|
||||||
|
encode gzip
|
||||||
|
header {
|
||||||
|
# Enable HTTP Strict Transport Security (HSTS)
|
||||||
|
Strict-Transport-Security "max-age=31536000;"
|
||||||
|
# Enable cross-site filter (XSS) and tell browser to block detected attacks
|
||||||
|
X-XSS-Protection "1; mode=block"
|
||||||
|
# Disallow the site to be rendered within a frame (clickjacking protection)
|
||||||
|
X-Frame-Options "SAMEORIGIN"
|
||||||
|
}
|
||||||
|
|
||||||
|
# deprecated from vaultwarden 1.29.0
|
||||||
|
reverse_proxy /notifications/hub 127.0.0.1:${toString myData.ports.vaultwarden_ws}
|
||||||
|
|
||||||
|
reverse_proxy 127.0.0.1:${toString myData.ports.vaultwarden} {
|
||||||
|
header_up X-Real-IP {remote_host}
|
||||||
|
}
|
||||||
|
'';
|
||||||
virtualHosts."www.jakstys.lt".extraConfig = ''
|
virtualHosts."www.jakstys.lt".extraConfig = ''
|
||||||
redir https://jakstys.lt
|
redir https://jakstys.lt
|
||||||
'';
|
'';
|
||||||
@ -389,18 +409,49 @@
|
|||||||
message-store fs /var/lib/soju
|
message-store fs /var/lib/soju
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vaultwarden = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
ROCKET_ADDRESS = "127.0.0.1";
|
||||||
|
ROCKET_PORT = myData.ports.vaultwarden;
|
||||||
|
DOMAIN = "https://bitwarden.jakstys.lt";
|
||||||
|
SIGNUPS_ALLOWED = false;
|
||||||
|
ROCKET_LOG = "critical";
|
||||||
|
|
||||||
|
# TODO remove after 1.29.0
|
||||||
|
WEBSOCKET_ENABLED = true;
|
||||||
|
WEBSOCKET_ADDRESS = "127.0.0.1";
|
||||||
|
WEBSOCKET_PORT = myData.ports.vaultwarden_ws;
|
||||||
|
|
||||||
|
SMTP_HOST = "127.0.0.1";
|
||||||
|
SMTP_PORT = 25;
|
||||||
|
SMTP_SECURITY = "off";
|
||||||
|
SMTP_FROM = "admin@jakstys.lt";
|
||||||
|
SMTP_FROM_NAME = "jakstys.lt Bitwarden server";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services = {
|
systemd.services = {
|
||||||
caddy = let
|
caddy = let
|
||||||
acme = config.mj.services.nsd-acme.zones."grafana.jakstys.lt";
|
grafana = config.mj.services.nsd-acme.zones."grafana.jakstys.lt";
|
||||||
|
bitwarden = config.mj.services.nsd-acme.zones."bitwarden.jakstys.lt";
|
||||||
in {
|
in {
|
||||||
serviceConfig.LoadCredential = [
|
serviceConfig.LoadCredential = [
|
||||||
"grafana.jakstys.lt-cert.pem:${acme.certFile}"
|
"grafana.jakstys.lt-cert.pem:${grafana.certFile}"
|
||||||
"grafana.jakstys.lt-key.pem:${acme.keyFile}"
|
"grafana.jakstys.lt-key.pem:${grafana.keyFile}"
|
||||||
|
"bitwarden.jakstys.lt-cert.pem:${bitwarden.certFile}"
|
||||||
|
"bitwarden.jakstys.lt-key.pem:${bitwarden.keyFile}"
|
||||||
|
];
|
||||||
|
after = [
|
||||||
|
"nsd-acme-grafana.jakstys.lt.service"
|
||||||
|
"nsd-acme-bitwarden.jakstys.lt.service"
|
||||||
|
];
|
||||||
|
requires = [
|
||||||
|
"nsd-acme-grafana.jakstys.lt.service"
|
||||||
|
"nsd-acme-bitwarden.jakstys.lt.service"
|
||||||
];
|
];
|
||||||
after = ["nsd-acme-grafana.jakstys.lt.service"];
|
|
||||||
requires = ["nsd-acme-grafana.jakstys.lt.service"];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
soju = let
|
soju = let
|
||||||
@ -449,6 +500,7 @@
|
|||||||
pathConfig = {
|
pathConfig = {
|
||||||
PathChanged = [
|
PathChanged = [
|
||||||
config.mj.services.nsd-acme.zones."grafana.jakstys.lt".certFile
|
config.mj.services.nsd-acme.zones."grafana.jakstys.lt".certFile
|
||||||
|
config.mj.services.nsd-acme.zones."bitwarden.jakstys.lt".certFile
|
||||||
];
|
];
|
||||||
Unit = "cert-watcher.service";
|
Unit = "cert-watcher.service";
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user