36 lines
1.1 KiB
Nix
36 lines
1.1 KiB
Nix
{ 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/"; };
|
|
};
|
|
};
|
|
}
|