nixpkgs.version: 26.11.20260926.e158d9e
system.stateVersion: 25.11
Nginx config:
{
upstreams = {
grafana = {
extraConfig = "";
servers = {
"127.0.0.1:8982" = {
backup = false;
};
};
};
harmonia = {
extraConfig = "";
servers = {
"unix:/run/harmonia/socket" = {
backup = false;
};
};
};
influxdb2 = {
extraConfig = "";
servers = {
"127.0.0.1:8086" = {
backup = false;
};
};
};
prometheus = {
extraConfig = "";
servers = {
"127.0.0.1:9090" = {
backup = false;
};
};
};
rtorrent-ps = {
extraConfig = "";
servers = {
"unix:/home/sim/rtorrent-ps/.scgi_local" = {
backup = false;
};
};
};
scrutiny = {
extraConfig = "";
servers = {
"127.0.0.1:6700" = {
backup = false;
};
};
};
};
virtualHosts = {
"lambda-nebula.funktionaali.com" = {
acmeFallbackHost = null;
acmeRoot = null;
addSSL = true;
basicAuth = { };
basicAuthFile = null;
default = true;
enableACME = true;
extraConfig = ''
ssl_stapling off;
ssl_stapling_verify off;
'';
forceSSL = false;
globalRedirect = null;
http2 = true;
http3 = true;
http3_hq = false;
kTLS = true;
listen = [ ];
listenAddresses = [ ];
locations = {
"/" = {
root = "<info-root>";
};
"= /influx/env.js" = {
alias = null;
basicAuth = { };
basicAuthFile = null;
extraConfig = "add_header Content-Type application/javascript;";
fastcgiParams = { };
index = null;
priority = 1000;
proxyPass = null;
proxySSEs = false;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = "200 \"var prefix='/influx/'; process={'env':{'STATIC_PREFIX':prefix,'API_PREFIX':prefix,'BASE_PATH':prefix,'API_BASE_PATH':prefix}};\"";
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
"^~ /grafana/" = {
alias = null;
basicAuth = { };
basicAuthFile = null;
extraConfig = "";
fastcgiParams = { };
index = null;
priority = 350;
proxyPass = "http://grafana";
proxySSEs = false;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
"^~ /grafana/api/live/" = {
alias = null;
basicAuth = { };
basicAuthFile = null;
extraConfig = ''
'';
fastcgiParams = { };
index = null;
priority = 350;
proxyPass = "http://grafana";
proxySSEs = false;
proxyWebsockets = true;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
"^~ /influx/" = {
alias = null;
basicAuth = { };
basicAuthFile = "/etc/nginx/.htpasswd";
extraConfig = ''
# required auth if not local
satisfy any;
allow 127.0.0.1;
allow 10.0.0.0/8;
allow 192.168.0.0/16;
allow 172.16.0.0/12;
allow ::1;
allow fc00::/7;
allow fe80::/10;
# Telematica/ipv6
allow 2a01:aea0:dd3:2aa::/64;
deny all;
rewrite ^/influx$ /influx/ permanent;
rewrite ^/influx/(.*) /$1 break;
#proxy_redirect / /influx/;
proxy_cookie_path ~*^/api /influx/api;
proxy_set_header Accept-Encoding "";
# inject environment vars for front-end webpack
sub_filter '</head>' '<script type="text/javascript" src="/influx/env.js"></script></head>';
# monkey patch html things...
sub_filter '<base href="/">' '<base href="/influx/">';
sub_filter 'src="/' 'src="/influx/';
sub_filter 'href="/' 'href="/influx/';
sub_filter 'data-basepath="' 'data-basepath="/influx/';
sub_filter 'n.p="/"' 'n.p="/influx/"';
sub_filter 'o.p="/"' 'o.p="/influx/"';
sub_filter '/api/' '/influx/api/';
sub_filter 'api/v2/query' 'influx/api/v2/query';
sub_filter '/health`' '/influx/health`';
sub_filter_types text/css text/javascript application/javascript application/json;
sub_filter_once off;
'';
fastcgiParams = { };
index = null;
priority = 320;
proxyPass = "http://influxdb2";
proxySSEs = false;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
"^~ /prometheus/" = {
alias = null;
basicAuth = { };
basicAuthFile = "/etc/nginx/.htpasswd";
extraConfig = ''
# required auth if not local
satisfy any;
allow 127.0.0.1;
allow 10.0.0.0/8;
allow 192.168.0.0/16;
allow 172.16.0.0/12;
allow ::1;
allow fc00::/7;
allow fe80::/10;
# Telematica/ipv6
allow 2a01:aea0:dd3:2aa::/64;
deny all;
'';
fastcgiParams = { };
index = null;
priority = 320;
proxyPass = "http://prometheus";
proxySSEs = false;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
"^~ /prometheus/api/v1/notifications/live" = {
alias = null;
basicAuth = { };
basicAuthFile = "/etc/nginx/.htpasswd";
extraConfig = ''
# required auth if not local
satisfy any;
allow 127.0.0.1;
allow 10.0.0.0/8;
allow 192.168.0.0/16;
allow 172.16.0.0/12;
allow ::1;
allow fc00::/7;
allow fe80::/10;
# Telematica/ipv6
allow 2a01:aea0:dd3:2aa::/64;
deny all;
chunked_transfer_encoding off;
proxy_http_version 1.1;
proxy_set_header Connection ''';
proxy_buffering off;
proxy_cache off;
'';
fastcgiParams = { };
index = null;
priority = 320;
proxyPass = "http://prometheus";
proxySSEs = true;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
"^~ /scrutiny/" = {
alias = null;
basicAuth = { };
basicAuthFile = "/etc/nginx/.htpasswd";
extraConfig = ''
# required auth if not local
satisfy any;
allow 127.0.0.1;
allow 10.0.0.0/8;
allow 192.168.0.0/16;
allow 172.16.0.0/12;
allow ::1;
allow fc00::/7;
allow fe80::/10;
# Telematica/ipv6
allow 2a01:aea0:dd3:2aa::/64;
deny all;
rewrite ^/scrutiny/(.*) /$1 break;
proxy_redirect / /scrutiny/;
'';
fastcgiParams = { };
index = null;
priority = 320;
proxyPass = "http://scrutiny";
proxySSEs = false;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
"~ /\\.ht" = {
alias = null;
basicAuth = { };
basicAuthFile = null;
extraConfig = "deny all;";
fastcgiParams = { };
index = null;
priority = 1000;
proxyPass = null;
proxySSEs = false;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
};
onlySSL = false;
quic = false;
redirectCode = 301;
rejectSSL = false;
reuseport = false;
root = null;
serverAliases = [ ];
serverName = null;
sslTrustedCertificate = null;
useACMEHost = null;
};
localhost = {
acmeFallbackHost = null;
acmeRoot = "/var/lib/acme/acme-challenge";
addSSL = false;
basicAuth = { };
basicAuthFile = null;
default = false;
enableACME = false;
extraConfig = "";
forceSSL = false;
globalRedirect = null;
http2 = true;
http3 = true;
http3_hq = false;
kTLS = false;
listen = [ ];
listenAddresses = [
"0.0.0.0"
"[::]"
];
locations = {
"/nginx_status" = {
alias = null;
basicAuth = { };
basicAuthFile = null;
extraConfig = ''
stub_status on;
access_log off;
allow 127.0.0.1;
allow ::1;
deny all;
'';
fastcgiParams = { };
index = null;
priority = 1000;
proxyPass = null;
proxySSEs = false;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
"= /rtorrent-rpc2" = {
alias = null;
basicAuth = { };
basicAuthFile = null;
extraConfig = ''
scgi_pass rtorrent-ps;
include /nix/store/ydxmj26v51s924b53lcq95fpbxfsq0qa-nginx-1.30.5/conf/scgi_params;
allow 127.0.0.1;
allow ::1;
deny all;
'';
fastcgiParams = { };
index = null;
priority = 1000;
proxyPass = null;
proxySSEs = false;
proxyWebsockets = false;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = "rtorrent-ps";
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
};
onlySSL = false;
quic = false;
redirectCode = 301;
rejectSSL = false;
reuseport = false;
root = null;
serverAliases = [
"127.0.0.1"
"[::1]"
];
serverName = null;
sslTrustedCertificate = null;
useACMEHost = null;
};
"nix.funktionaali.com" = {
acmeFallbackHost = null;
acmeRoot = null;
addSSL = false;
basicAuth = { };
basicAuthFile = null;
default = false;
enableACME = true;
extraConfig = ''
ssl_stapling off;
ssl_stapling_verify off;
'';
forceSSL = true;
globalRedirect = null;
http2 = true;
http3 = true;
http3_hq = false;
kTLS = true;
listen = [ ];
listenAddresses = [ ];
locations = {
"/" = {
alias = null;
basicAuth = { };
basicAuthFile = null;
extraConfig = ''
proxy_redirect http:// https://;
'';
fastcgiParams = { };
index = null;
priority = 1000;
proxyPass = "http://harmonia";
proxySSEs = false;
proxyWebsockets = true;
recommendedProxySettings = true;
recommendedUwsgiSettings = false;
return = null;
root = null;
scgiPass = null;
tryFiles = null;
useGrpcErrorPages = false;
uwsgiPass = null;
};
};
onlySSL = false;
quic = false;
redirectCode = 301;
rejectSSL = false;
reuseport = false;
root = null;
serverAliases = [ ];
serverName = null;
sslTrustedCertificate = null;
useACMEHost = null;
};
};
}