nixos-public/common/refinery.nix
2025-10-02 15:24:21 +02:00

50 lines
1.3 KiB
Nix

# Example configuration:
# host: deemz.org
# refineryBaseUrl: /refinery
{ config, pkgs, refineryHost, refineryBaseUrl, ... }:
{
# reverse proxy
services.nginx = {
enable = true;
virtualHosts.${refineryHost} = {
locations."${refineryBaseUrl}/" = {
proxyPass = "http://127.0.0.1:8888/";
proxyWebsockets = true;
extraConfig = ''
charset UTF-8;
more_set_headers 'Server: NIXOS';
'';
};
locations."${refineryBaseUrl}/api/" = {
proxyPass = "http://127.0.0.1:8888/api/";
extraConfig = ''
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
'';
};
serverName = refineryHost;
};
};
# run refinery container as a systemd service
virtualisation.oci-containers.containers = {
refinery = {
image = "ghcr.io/graphs4value/refinery:0.2.1-snapshot";
ports = [ "127.0.0.1:8888:8888" ];
environment = rec {
REFINERY_PUBLIC_HOST = refineryHost;
REFINERY_WEBSOCKET_URL = "wss://${refineryHost}${refineryBaseUrl}/xtext-service";
REFINERY_API_BASE = "https://${refineryHost}${refineryBaseUrl}/api/v1/";
# Timeouts
REFINERY_MODEL_GENERATION_TIMEOUT_SEC = "60";
REFINERY_MODEL_GENERATION_THREAD_COUNT = "10";
};
};
};
}