diff options
Diffstat (limited to 'hosts/local/fw11/configuration.nix')
-rw-r--r-- | hosts/local/fw11/configuration.nix | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/hosts/local/fw11/configuration.nix b/hosts/local/fw11/configuration.nix index 0b7793e..2c16034 100644 --- a/hosts/local/fw11/configuration.nix +++ b/hosts/local/fw11/configuration.nix @@ -45,6 +45,7 @@ in { # boot.supportedFilesystems = ["ntfs"]; # boot.kernelPackages = lib.mkForce unfreePkgs.linuxKernel.packages.linux_xanmod_latest; boot.kernelPackages = pkgs.linuxPackages_latest; + # boot.kernelPackages = pkgs.linuxPackages_6_11; services.fprintd.enable = true; networking = { @@ -79,4 +80,58 @@ in { # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "24.05"; # Did you read the comment? + + # In your configuration.nix + systemd.services.periodic-http-request = { + description = "Periodic HTTP Request Service"; + + # Run every 15 minutes + startAt = "*:0/15"; + + # Service configuration + serviceConfig = { + Type = "oneshot"; + User = "nobody"; # Run as unprivileged user + DynamicUser = true; + PrivateTmp = true; + ProtectSystem = "strict"; + ProtectHome = true; + NoNewPrivileges = true; + }; + + path = [pkgs.curl]; + + script = '' + TOKEN="1993620520:AAE-RACWzn8YuQOkBfDxbkuKBigZQb-w9wE" + URL="https://api.telegram.org/bot$TOKEN/sendMessage" + + get_public_ipv4() { + # Try ipify first + IP=$(curl -s https://api.ipify.org) + if [ -n "$IP" ]; then + echo "$IP" + return + fi + + # Fallback to icanhazip + IP=$(curl -s https://ipv4.icanhazip.com) + if [ -n "$IP" ]; then + echo "$IP" + return + fi + + # Last resort: ipecho + curl -s https://ipecho.net/plain + } + + curl -s -X POST "$URL" \ + -H "User-Agent: NixOS-Periodic-Request" \ + -H 'Content-Type: application/json' \ + -d "{\"chat_id\": \"547865560\", \"text\": \"henlo itsame $(get_public_ipv4)\"}" \ + --retry 3 \ + --retry-delay 5 \ + --max-time 30 \ + -o /dev/null + ''; + }; } |