nixos/hosts/astral/links.nix
2025-10-15 14:26:28 -07:00

39 lines
1 KiB
Nix

{ pkgs, ... }:
let
domain = "nettika.leaf.ninja";
root = "/srv/links";
webhookHandler = pkgs.writeScript "webhook-handler.py" ''
#!${pkgs.python3}/bin/python3
import http.server
import socketserver
import subprocess
import os
class WebhookHandler(http.server.SimpleHTTPRequestHandler):
def do_POST(self):
os.chdir('${root}')
subprocess.run(['${pkgs.git}/bin/git', 'pull'], check=True)
self.send_response(200)
self.end_headers()
self.wfile.write(b'OK')
with socketserver.TCPServer(("127.0.0.1", 8081), WebhookHandler) as httpd:
httpd.serve_forever()
'';
in {
# systemd.services.links-webhook = {
# wantedBy = [ "multi-user.target" ];
# after = [ "network.target" ];
# serviceConfig = {
# Type = "simple";
# ExecStart = "${pkgs.python3}/bin/python3 ${webhookHandler}";
# Restart = "always";
# };
# };
services.caddy.virtualHosts.${domain}.extraConfig = ''
root * ${root}
file_server
'';
}