# A nice little sync server for my supercharged shell history done by Atuin. # It's nice to have but not exactly what I need. It's just here because I want # to give it a try. { config, lib, pkgs, ... }: let atuinDomain = "atuin.${config.networking.domain}"; in { # Atuin sync server because why not. services.atuin = { enable = true; openFirewall = true; openRegistration = false; port = 8965; }; # Putting a neat little script to create the appropriate schema since we're # using secure schema usage pattern as encouraged from PostgreSQL # documentation. systemd.services.atuin = { path = [ config.services.postgresql.package ]; preStart = '' psql -tAc "SELECT 1 FROM information_schema.schemata WHERE schema_name='atuin';" \ grep -q 1 || psql -tAc "CREATE SCHEMA IF NOT EXISTS atuin;" ''; }; # Putting it altogether in the reverse proxy of choice. services.nginx.virtualHosts."${atuinDomain}" = { forceSSL = true; enableACME = true; locations."/" = { proxyPass = "http://localhost:${toString config.services.atuin.port}"; }; }; }