{ config, lib, ... }: { options.snowflake.services.containerised.gokapi = { enable = lib.mkEnableOption "enable gokapi"; domain = lib.mkOption { type = lib.types.str; description = "domain name to host gokapi on"; }; version = lib.mkOption { type = lib.types.str; description = "gokapi version to use"; }; }; config = lib.mkIf config.snowflake.services.containerised.gokapi.enable { virtualisation.oci-containers.containers.gokapi = { autoStart = true; image = "docker.io/f0rc3/gokapi:${config.snowflake.services.containerised.gokapi.version}"; volumes = [ "/var/lib/gokapi/data:/app/data" "/var/lib/gokapi/config:/app/config" ]; ports = [ "127.0.0.1:53842:53842" ]; }; services.nginx.virtualHosts."${config.snowflake.services.containerised.gokapi.domain}" = { serverName = config.snowflake.services.containerised.gokapi.domain; enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:53842/"; }; }; }; }