From bfd970a07c231b5781871c16cb4612eb4c6b8fd4 Mon Sep 17 00:00:00 2001 From: aethrvmn Date: Sun, 31 Aug 2025 16:21:34 +0200 Subject: imported system/home-manager config --- modules/server/gemini/default.nix | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 modules/server/gemini/default.nix (limited to 'modules/server/gemini/default.nix') diff --git a/modules/server/gemini/default.nix b/modules/server/gemini/default.nix new file mode 100644 index 0000000..d59f65f --- /dev/null +++ b/modules/server/gemini/default.nix @@ -0,0 +1,57 @@ +{ 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; + }; + }; + }; +} -- cgit v1.2.3