feat: change from namecheap to cloudflare, setup tls with acme, setup vaultwarden
This commit is contained in:
parent
6b55345b66
commit
fd794698d3
12 changed files with 118 additions and 23 deletions
19
hosts/APPA/services/acme.nix
Normal file
19
hosts/APPA/services/acme.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
age.secrets.environments-acme = {
|
||||
file = ../../../secrets/environments/acme.age;
|
||||
};
|
||||
|
||||
security.acme.acceptTerms = true;
|
||||
security.acme.defaults.email = "gendulf@posteo.de";
|
||||
|
||||
security.acme.certs."dryb.org" = {
|
||||
domain = "dryb.org";
|
||||
extraDomainNames = [ "*.dryb.org" ];
|
||||
dnsProvider = "cloudflare";
|
||||
dnsPropagationCheck = true;
|
||||
credentialsFile = config.age.secrets.environments-acme.path;
|
||||
};
|
||||
|
||||
users.users.nginx.extraGroups = [ "acme" ];
|
||||
}
|
||||
|
|
@ -46,6 +46,10 @@
|
|||
domain = "anki.dryb.org";
|
||||
answer = "192.168.2.40";
|
||||
}
|
||||
{
|
||||
domain = "vaultwarden.dryb.org";
|
||||
answer = "192.168.2.40";
|
||||
}
|
||||
];
|
||||
};
|
||||
dhcp = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
age.secrets.passwords-ddclient-namecheap = {
|
||||
file = ../../../secrets/passwords/ddclient/namecheap.age;
|
||||
age.secrets.passwords-ddclient-cloudflare = {
|
||||
file = ../../../secrets/passwords/ddclient/cloudflare.age;
|
||||
};
|
||||
|
||||
services.ddclient = {
|
||||
|
|
@ -11,11 +11,10 @@
|
|||
usev4=webv4, webv4=ifconfig.me
|
||||
usev6=disabled
|
||||
'';
|
||||
protocol = "namecheap";
|
||||
server = "dynamicdns.park-your-domain.com";
|
||||
username = "dryb.org";
|
||||
passwordFile = config.age.secrets.passwords-ddclient-namecheap.path;
|
||||
domains = [ "vpn" ];
|
||||
protocol = "cloudflare";
|
||||
zone = "dryb.org";
|
||||
passwordFile = config.age.secrets.passwords-ddclient-cloudflare.path;
|
||||
domains = [ "vpn.dryb.org" ];
|
||||
interval = "10min";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./acme.nix
|
||||
./adguard-home.nix
|
||||
./anki.nix
|
||||
./ddclient.nix
|
||||
|
|
@ -7,5 +8,6 @@
|
|||
./homepage-dashboard.nix
|
||||
./nginx.nix
|
||||
./postgresql.nix
|
||||
./vaultwarden.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,28 +3,46 @@
|
|||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts."dryb.org" = {
|
||||
useACMEHost = "dryb.org";
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8002";
|
||||
};
|
||||
};
|
||||
virtualHosts."adguard.dryb.org" = {
|
||||
useACMEHost = "dryb.org";
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8001";
|
||||
};
|
||||
};
|
||||
virtualHosts."${config.services.gitea.domain}" = {
|
||||
useACMEHost = "dryb.org";
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8003";
|
||||
};
|
||||
};
|
||||
virtualHosts."anki.dryb.org" = {
|
||||
useACMEHost = "dryb.org";
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8004";
|
||||
};
|
||||
};
|
||||
virtualHosts."vaultwarden.dryb.org" = {
|
||||
useACMEHost = "dryb.org";
|
||||
forceSSL = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8005";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 80 ];
|
||||
allowedTCPPorts = [
|
||||
80
|
||||
443
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,16 +3,28 @@
|
|||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ config.services.gitea.user ];
|
||||
ensureDatabases = [
|
||||
config.services.gitea.user
|
||||
"vaultwarden"
|
||||
];
|
||||
|
||||
# type database DBuser auth-method mapping
|
||||
ensureUsers = [
|
||||
{
|
||||
name = "vaultwarden";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
|
||||
# type database DBuser auth-method mapping
|
||||
authentication = ''
|
||||
local gitea all ident map=gitea-users
|
||||
local gitea all ident map=gitea-users
|
||||
local vaultwarden all ident map=vaultwarden-users
|
||||
'';
|
||||
|
||||
# name sysuser dbuser
|
||||
# name sysuser dbuser
|
||||
identMap = ''
|
||||
gitea-users gitea gitea
|
||||
gitea-users gitea gitea
|
||||
vaultwarden-users vaultwarden vaultwarden
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
|||
30
hosts/APPA/services/vaultwarden.nix
Normal file
30
hosts/APPA/services/vaultwarden.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
age.secrets.environments-vaultwarden = {
|
||||
file = ../../../secrets/environments/vaultwarden.age;
|
||||
# mode = "640";
|
||||
# owner = "vaultwarden";
|
||||
# group = "vaultwarden";
|
||||
};
|
||||
|
||||
users.users.vaultwarden = {
|
||||
description = "Vaultwarden Service";
|
||||
home = "/var/lib/bitwarden_rs";
|
||||
useDefaultShell = true;
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
services.vaultwarden = {
|
||||
enable = true;
|
||||
dbBackend = "postgresql";
|
||||
environmentFile = config.age.secrets.environments-vaultwarden.path;
|
||||
config = {
|
||||
DOMAIN = "http://vaultwarden.dryb.org";
|
||||
SIGNUPS_ALLOWED = false;
|
||||
ROCKET_ADDRESS = "127.0.0.1";
|
||||
ROCKET_PORT = 8005;
|
||||
DATABASE_URL = "postgresql:///vaultwarden";
|
||||
WEB_VAULT_ENABLED = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue