{ config, pkgs, lib, ... }: { services.agate = { enable = true; hostnames = [ "aethrvmn.gr" ]; addresses = [ "0.0.0.0:1965" ]; language = "en"; contentDir = "/srv/gemini"; }; networking.firewall.allowedTCPPorts = [ 1965 ]; users = { groups.agate = { }; users = { agate = { isSystemUser = true; description = "gemini user"; group = "agate"; home = "/srv/gemini"; createHome = true; shell = "${pkgs.git}/bin/git-shell"; }; }; }; systemd = { # set service services."gemini" = { description = "Update Gemini site from repo"; script = '' if [ -d /srv/gemini/.git ]; then ${pkgs.git}/bin/git -C /srv/gemini pull else ${pkgs.git}/bin/git clone https://apo.theke.ml/aethrvmn/gemini.git /srv/gemini fi ''; serviceConfig = { Type = "oneshot"; User = "agate"; }; }; timers."gemini" = { description = "Hourly Gemini-site update"; wantedBy = [ "timers.target" ]; timerConfig = { OnCalendar = "hourly"; Persistent = true; }; }; }; }