From 893ea11e1dc05fe1a2a34e66d4ebcfdffda34720 Mon Sep 17 00:00:00 2001 From: aethrvmn Date: Sun, 30 Nov 2025 22:59:43 +0100 Subject: huge restructure of modules --- modules/gemini/default.nix | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 modules/gemini/default.nix (limited to 'modules/gemini/default.nix') diff --git a/modules/gemini/default.nix b/modules/gemini/default.nix new file mode 100644 index 0000000..d59f65f --- /dev/null +++ b/modules/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