Compare commits

...

3 Commits

Author SHA1 Message Date
Lennart J. Kurzweg (Nx2)
be40aca44b Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-05-26 14:32:30 +02:00
Lennart J. Kurzweg (Nx2)
8228bd1f72 no simple sign up nextcloud (working?) 2026-05-26 14:32:15 +02:00
Lennart J. Kurzweg (Nx2)
63af2c4f4e stay up wifi daemon 2026-05-26 14:31:55 +02:00
3 changed files with 39 additions and 1 deletions

View File

@@ -46,11 +46,12 @@
./system-modules/simple-postgres.nix ./system-modules/simple-postgres.nix
] ++ (if hyper.isServer then [ ] ++ (if hyper.isServer then [
./system-modules/stay-up.nix
./system-modules/nx2site.nix ./system-modules/nx2site.nix
./system-modules/hugo.nix ./system-modules/hugo.nix
./system-modules/postgres.nix ./system-modules/postgres.nix
./system-modules/nx2site/proxy.nix ./system-modules/nx2site/proxy.nix
# ./system-modules/nx2site/smtp.nix # ./system-modules/nx2site/smtp.nix
# ./system-modules/nx2site/imap.nix # ./system-modules/nx2site/imap.nix
# ./system-modules/nx2site/vmail.nix # ./system-modules/nx2site/vmail.nix

View File

@@ -57,6 +57,7 @@ in {
"mail_smtpauth" = true; "mail_smtpauth" = true;
"mail_smtpauthtype" = "LOGIN"; "mail_smtpauthtype" = "LOGIN";
"mail_smtpname" = "nextcloud@${hyper.domain}"; "mail_smtpname" = "nextcloud@${hyper.domain}";
"simpleSignUpLink.shown" = false;
}; };
secrets."mail_smtppassword" = config.sops.secrets."nx2site/smtp2go/nextcloud_api_key".path; secrets."mail_smtppassword" = config.sops.secrets."nx2site/smtp2go/nextcloud_api_key".path;
# secrets.settings."mail_smtppassword" = config.sops.secrets."nx2site/maddy/nextcloud_password".path; # secrets.settings."mail_smtppassword" = config.sops.secrets."nx2site/maddy/nextcloud_password".path;

View File

@@ -0,0 +1,36 @@
{ config, pkgs, ... }@all: with all; let
target = "1.1.1.1";
timeoutMinutes = 5;
logFile = "/var/log/stay-up.log";
in {
systemd.services.wifi-watchdog = {
description = "Wi-Fi Watchdog Service";
after = [ "network.target" "NetworkManager.service" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ iputils networkmanager coreutils ];
script = /* bash */ ''
FAIL_COUNT=0
touch "${logFile}"
while true; do
if ping -c 1 -W 5 "${target}" > /dev/null 2>&1; then
FAIL_COUNT=0
else
FAIL_COUNT=$((FAIL_COUNT + 1))
if [ "$FAIL_COUNT" -ge "${toString timeoutMinutes}" ]; then
echo "$(date -Iseconds): Network unreachable for ${toString timeoutMinutes} minutes. Restarting Wi-Fi." >> "${logFile}"
nmcli radio wifi off
sleep 5
nmcli radio wifi on
FAIL_COUNT=0
fi
fi
sleep 60
done
'';
serviceConfig = {
Restart = "always";
RestartSec = "10";
User = "root"; # Root is required to execute nmcli radio commands and write to /var/log/
};
};
}