nixos/nixos/laser-cutter/default.nix
2024-11-09 18:23:13 +01:00

66 lines
No EOL
1.2 KiB
Nix

{ config, ... }:
let
laserweb_pkgs = import (builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/380be19.tar.gz") # 22.05
{
config.permittedInsecurePackages = [
"nodejs-12.22.12"
];
system = config.nixpkgs.system;
};
laserweb = laserweb_pkgs.callPackage ./laserweb { };
in
{
environment.systemPackages = [
laserweb
];
# networking.hostName = "laser";
# LaserWeb service
systemd.services.laserweb = {
description = "LaserWeb";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${laserweb}/bin/laserweb";
Restart = "always";
RestartSec = 10;
WorkingDirectory = "/var/lib/laserweb";
Environment = [
"NODE_ENV=production"
"PORT=8000"
];
DynamicUser = true;
SupplementaryGroups = "dialout";
StateDirectory = "laserweb";
};
};
# Reverse-proxy to expose LaseWeb UI
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
virtualHosts."laser" = {
default = true;
locations."/" = {
proxyPass = "http://127.0.0.2:8000/";
proxyWebsockets = true;
};
};
};
}