{ me, pkgs, auxiliaryPkgs, ... }: let inherit (pkgs) dockerTools; inherit (auxiliaryPkgs) common; shiori = pkgs.shiori.overrideAttrs { src = pkgs.fetchFromGitHub { owner = "go-shiori"; repo = "shiori"; rev = "98564fa64696c276bbbc39dba715eee3ea379e99"; sha256 = "sha256-waXrI6lQFvZTMD4mZC3gWbwxW6bauRc9c1tPelhvHAk="; }; vendorHash = "sha256-H2IakJKaX/LzD+vzkGWK9YuCKvBfnKCZT6bm1zDaWeY="; }; shioriLocalPort = 1989; shioriDir = "/srv/shiori"; shioriImage = dockerTools.streamLayeredImage { name = "shiori"; tag = shiori.version; fromImage = common.alpine.base; contents = [ shiori ]; }; in { foundation.services.shiori = { image = shioriImage; ports = [ [ shioriLocalPort 8080 ] ]; volumes = [ [ "${shioriDir}" "/shiori" ] ]; environment = { SHIORI_DIR = "/shiori"; }; entrypoint = "${shiori}/bin/shiori"; cmd = [ "server" ]; }; services.nginx.virtualHosts."shiori.rnrd.fyi" = { useACMEHost = "rnrd.fyi"; forceSSL = true; listenAddresses = [ me.tailscale.ip ]; locations."/" = { proxyPass = "http://127.0.0.1:${toString shioriLocalPort}/"; }; }; }