nix-config/hosts/pipebert/default.nix

92 lines
2.3 KiB
Nix

{ config, lib, ... }:
{
imports = [
./hardware-configuration.nix
];
c3d2 = {
hq.interface = "eth0";
hq.statistics.enable = true;
k-ot.enable = true;
audioServer.enable = true;
};
boot.loader = {
efi.canTouchEfiVariables = true;
systemd-boot.enable = true;
};
networking = {
domain = "hq.c3d2.de";
hostId = "5c4ed15a";
hostName = "pipebert";
useDHCP = false;
interfaces.eth0.useDHCP = true;
};
security.sudo = {
enable = true;
wheelNeedsPassword = false;
};
services = {
nginx = {
enable = true;
virtualHosts = {
"drkkr.hq.c3d2.de" = {
default = true;
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.octoprint.port}";
proxyWebsockets = true;
extraConfig = ''
proxy_set_header X-Scheme $scheme;
proxy_set_header Accept-Encoding identity;
client_max_body_size 200M;
'';
};
# locations."/cam/stream" = {
# proxyPass = "http://localhost:3020/?action=stream";
# extraConfig = "proxy_pass_request_headers off;";
# };
# locations."/cam/capture" = {
# proxyPass = "http://localhost:3020/?action=snapshot";
# extraConfig = "proxy_pass_request_headers off;";
# };
};
"drucker.hq.c3d2.de" = {
enableACME = true;
forceSSL = true;
locations."/".return = "307 https://drkkr.hq.c3d2.de/";
};
"pipebert.hq.c3d2.de" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8888";
proxyWebsockets = true;
};
};
};
};
octoprint = {
enable = true;
port = 8080;
# extraConfig.webcam = {
# snapshot = "http://localhost:3020?action=snapshot";
# stream = "https://drkkr.hq.c3d2.de/cam/stream";
# };
};
};
system.stateVersion = "22.11";
users.users = lib.optionalAttrs config.services.octoprint.enable {
# Allow access to printer serial port and GPIO
"${config.services.octoprint.user}".extraGroups = [ "dialout" ];
};
}