Fix mailserver and vault warden

This commit is contained in:
Jimbo 2025-01-01 22:23:27 -05:00
parent 26c14a5b7c
commit 26551f207d
7 changed files with 48 additions and 104 deletions

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, ... }:
{ {
boot = { boot = {
kernelPackages = pkgs.linuxPackages_hardened; kernelPackages = pkgs.linuxPackages_hardened;

View file

@ -1,37 +1,7 @@
{ pkgs, ... }: { lib, pkgs, ... }:
{ {
boot = { boot = {
initrd = { kernelPackages = pkgs.linuxPackages_hardened;
systemd = { initrd.systemd.services.root-reset.enable = lib.mkForce false;
enable = true;
services.root-reset = {
description = "Reset root and snapshot last boot";
wantedBy = [ "initrd.target" ];
after = [ "dev-${config.networking.hostName}-root.device" ];
before = [ "sysroot.mount" ];
unitConfig.DefaultDependencies = "no";
serviceConfig.Type = "oneshot";
script = ''
mkdir -p /mnt
mount /dev/${config.networking.hostName}/root /mnt
if [[ -e /mnt/prev ]]; then
btrfs subvolume delete /mnt/prev
fi
btrfs subvolume snapshot /mnt/root /mnt/prev
btrfs subvolume list -o /mnt/root | cut -f9 -d' ' | while read subvolume; do
btrfs subvolume delete "/mnt/$subvolume"
done
btrfs subvolume delete /mnt/root
btrfs subvolume create /mnt/root
umount /mnt
'';
};
};
};
}; };
} }

View file

@ -1,28 +1,26 @@
{ config, ... }: { lib, ... }:
{ {
imports = [ imports = [
./boot
./filesystems
./hardware ./hardware
./users
# Apps and programs ../../modules/system
../../../modules/system
../../../modules/system/accounts
../../../modules/system/devices/filesystems
../../../modules/system/devices/boot/systemd
../../../modules/system/devices/networking
../../../modules/system/devices/networking/firewall/pc
../../../modules/system/devices/networking/wireguard/pc
../../../modules/system/programs/git
../../../modules/system/programs/security
../../../modules/system/services/common
../../../modules/system/services/server/acme
../../../modules/system/services/server/webhost/nginx
../../../modules/system/services/server/mailserver
# Misc
../../../overlays
../../../variables
]; ];
networking.hostName = "prophet"; networking = {
networking.wireguard.interfaces.wgc.ips = [ "10.100.0.19/24" ]; hostName = "prophet";
hostId = "97a21a38";
wg-quick.interfaces.wgc.address = [ "10.100.0.19/24" ];
};
environment.persistence."/persist".enable = lib.mkForce false;
system = {
desktop.enable = false;
mailserver.enable = true;
wireless.enable = false;
wireguard.client.enable = true;
stateVersion = "24.05";
};
} }

View file

@ -14,7 +14,7 @@
{ # Cyberspark Server { # Cyberspark Server
publicKey = "qnOT/lXOJMaQgDUdXpyfGZB2IEyUouRje2m/bCe9ux8="; publicKey = "qnOT/lXOJMaQgDUdXpyfGZB2IEyUouRje2m/bCe9ux8=";
allowedIPs = [ "10.100.0.0/24" ]; allowedIPs = [ "10.100.0.0/24" ];
endpoint = "sv.${config.domains.jim1}:51820"; endpoint = "sv.${config.domains.p1}:51820";
persistentKeepalive = 25; persistentKeepalive = 25;
} }
]; ];

View file

@ -2,53 +2,29 @@
let let
common = import ../../common { inherit pkgs; }; common = import ../../common { inherit pkgs; };
in { in {
services = { services.minecraft-servers.servers.johnside = {
minecraft-servers.servers.johnside = { package = pkgs.paperServers.paper-1_20_6;
package = pkgs.paperServers.paper-1_20_6; jvmOpts = "-Xmx2500M";
jvmOpts = "-Xmx2500M"; serverProperties = common.serverProperties // {
serverProperties = common.serverProperties // { difficulty = 2;
difficulty = 2; server-port = 30009;
server-port = 30009; motd = "\\u00A7l\\u00A79Johnside SMP\\u00A7r \\u00A7l\\u00A7fworld for \\u00A74John lovers only.";
motd = "\\u00A7l\\u00A79Johnside SMP\\u00A7r \\u00A7l\\u00A7fworld for \\u00A74John lovers only.";
};
whitelist = common.whitelist;
symlinks = common.paperSymlinks // {
"plugins/BlueMap.jar" = builtins.fetchurl {
url = "https://cdn.modrinth.com/data/swbUV1cr/versions/TL5ElRWX/BlueMap-5.3-spigot.jar";
sha256 = "08ls3wk0333vjg49kcmri884pcgm2xk9xdhwcxyffbh4ra0xrlbw";
};
"plugins/BlueMapOfflinePlayers.jar" = builtins.fetchurl {
url = "https://github.com/TechnicJelle/BlueMapOfflinePlayerMarkers/releases/download/v3.0/BlueMapOfflinePlayerMarkers-3.0.jar";
sha256 = "1f07w53q7yr4mvph7013d7ajxmp4lnsv6b1ab14y2x0bmqv39nwr";
};
"plugins/BlueMapMarkerManager.jar" = builtins.fetchurl {
url = "https://cdn.modrinth.com/data/a8UoyV2h/versions/E0XoPfJV/BMM-2.1.5.jar";
sha256 = "1vpnqglybysxnqyzkjnwbwg000dqkbk516apzvhmg39wlfaysl9d";
};
"plugins/CustomDiscs.jar" = builtins.fetchurl {
url = "https://github.com/Navoei/CustomDiscs/releases/download/v3.0/custom-discs-3.0.jar";
sha256 = "0xv0zrkdmjx0d7l34nqag8j004pm9zqivc12d3zy9pdrkv7pz87d";
};
"plugins/NotTooExpensive.jar" = builtins.fetchurl {
url = "https://github.com/Mrredstone5230/Not-Too-Expensive/releases/download/1.1/not-too-expensive-1.1.jar";
sha256 = "0da4v5l7iwry3wc21292lkmjprgmign4vdshzmhp7qc9hx26pj2d";
};
"plugins/SilkTouchHands.jar" = builtins.fetchurl {
url = "https://github.com/5U55/SilkTouchSpigot/releases/download/v1.1/SilkTouchv1.1.jar";
sha256 = "0mbp73xclr7f5m2lbdfz6is1j8vvyv1qwpl28sm089zrpm73qn6w";
};
};
files = common.configFiles;
}; };
whitelist = common.whitelist;
# BlueMap webhost symlinks = common.paperSymlinks // {
nginx.virtualHosts."john.${config.domains.p1}" = { "plugins/CustomDiscs.jar" = builtins.fetchurl {
enableACME = true; url = "https://github.com/Navoei/CustomDiscs/releases/download/v3.0/custom-discs-3.0.jar";
forceSSL = true; sha256 = "0xv0zrkdmjx0d7l34nqag8j004pm9zqivc12d3zy9pdrkv7pz87d";
locations."/" = { };
proxyPass = "http://127.0.0.1:31010"; "plugins/NotTooExpensive.jar" = builtins.fetchurl {
proxyWebsockets = true; url = "https://github.com/Mrredstone5230/Not-Too-Expensive/releases/download/1.1/not-too-expensive-1.1.jar";
sha256 = "0da4v5l7iwry3wc21292lkmjprgmign4vdshzmhp7qc9hx26pj2d";
};
"plugins/SilkTouchHands.jar" = builtins.fetchurl {
url = "https://github.com/5U55/SilkTouchSpigot/releases/download/v1.1/SilkTouchv1.1.jar";
sha256 = "0mbp73xclr7f5m2lbdfz6is1j8vvyv1qwpl28sm089zrpm73qn6w";
}; };
}; };
files = common.configFiles;
}; };
} }

View file

@ -5,7 +5,7 @@
./virtualhosts ./virtualhosts
]; ];
config = lib.mkIf config.system.server.enable { config = lib.mkIf (config.system.server.enable || config.system.mailserver.enable) {
services.nginx = { services.nginx = {
enable = true; enable = true;
recommendedTlsSettings = true; recommendedTlsSettings = true;

View file

@ -1,6 +1,6 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
services.nginx.virtualHosts."pass.${config.domains.p1}" = lib.mkIf config.services.vaultwarden.enable { services.nginx.virtualHosts."pass.${config.domains.p2}" = lib.mkIf config.services.vaultwarden.enable {
enableACME = true; enableACME = true;
forceSSL = true; forceSSL = true;
locations."/" = { locations."/" = {