51 lines
1.4 KiB
Nix
51 lines
1.4 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;
|
|
'';
|
|
};
|
|
|
|
forceSSL = true;
|
|
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";
|
|
};
|
|
};
|
|
};
|
|
}
|