Compare commits

..

11 commits

Author SHA1 Message Date
887dcaf16f camera network 2026-03-13 21:40:58 -04:00
178d9e9842 x 2026-03-13 20:48:02 -04:00
0ff940eb22 dnsmasq 2026-03-13 20:33:51 -04:00
b4daedf74e fix nginx ssl 2026-03-13 20:14:33 -04:00
d67a67b5e7 again 2026-03-13 20:13:12 -04:00
3ba1a63124 fix sslh 2026-03-13 20:11:43 -04:00
6040b4a1e6 fixes 2026-03-13 19:59:36 -04:00
c8d05d5145 switch nic 2026-03-13 19:08:47 -04:00
ab09b54ee9
Merge branch 'main' 2026-03-13 17:45:37 -04:00
0a90e2f7b2
sshl 2026-03-13 17:43:08 -04:00
851a198428
changed to nvidia 550 2025-03-05 14:22:41 -05:00
7 changed files with 56 additions and 3 deletions

View file

@ -29,6 +29,7 @@
inherit system;
config = {
allowUnfree = true;
nvidia.acceptLicense = true;
};
overlays = [
nur.overlays.default

View file

@ -94,7 +94,24 @@ in
enable = true;
allowedTCPPorts = [ 22 80 443 ];
};
nameservers = [ "192.168.0.154" ];
};
services.dnsmasq = {
enable = true;
settings = {
# Explicit subdomains -> local server
address = [
"/git.ramos.codes/192.168.0.154"
"/ln.ramos.codes/192.168.0.154"
"/photos.ramos.codes/192.168.0.154"
"/test.ramos.codes/192.168.0.154"
"/electrum.ramos.codes/192.168.0.154"
"/immich.ramos.codes/192.168.0.154"
"/forgejo.ramos.codes/192.168.0.154"
"/frigate.ramos.codes/192.168.0.154"
];
server = [ "192.168.0.1" ];
};
};
services = {

View file

@ -102,12 +102,19 @@
networking = {
hostName = "server";
useDHCP = false;
interfaces.eno1 = {
interfaces.enp2s0f0 = {
ipv4.addresses = [{
address = "192.168.0.154";
prefixLength = 24;
}];
};
# Camera network - isolated, no gateway
interfaces.enp2s0f1 = {
ipv4.addresses = [{
address = "192.168.1.1";
prefixLength = 24;
}];
};
defaultGateway = "192.168.0.1";
nameservers = [ "1.1.1.1" "8.8.8.8" ];
firewall = {
@ -131,6 +138,12 @@
"8.8.8.8"
];
cache-size = 1000;
# Camera network DHCP (isolated - no gateway = no internet)
interface = "enp2s0f1";
bind-interfaces = true;
dhcp-range = "192.168.1.100,192.168.1.200,24h";
# No gateway option = cameras can't route to internet
};
};

View file

@ -80,13 +80,19 @@
enable = true;
enable32Bit = true;
};
nvidia = {
open = false;
powerManagement.enable = false;
powerManagement.finegrained = false;
modesetting.enable = true;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "550.120";
sha256_64bit = "sha256-gBkoJ0dTzM52JwmOoHjMNwcN2uBN46oIRZHAX8cDVpc=";
settingsSha256 = "sha256-fPfIPwpIijoUpNlAUt9C8EeXR5In633qnlelL+btGbU=";
persistencedSha256 = lib.fakeSha256;
};
};
};

View file

@ -16,3 +16,5 @@ listenonion=1
torcontrol=127.0.0.1:9051
txindex=1
dbcache=1024

View file

@ -52,6 +52,7 @@ in
APP_SLOGAN = "";
};
service.REQUIRE_SIGNIN_VIEW = false;
server = {
DOMAIN = "git.${domain}";
ROOT_URL = "https://git.${domain}/";

View file

@ -28,12 +28,25 @@ in
};
};
services.sslh = {
enable = true;
listenAddresses = [ "0.0.0.0" ];
port = 443;
settings = {
protocols = [
{ name = "ssh"; host = "127.0.0.1"; port = "22"; }
{ name = "tls"; host = "127.0.0.1"; port = "4443"; }
];
};
};
services.nginx = {
enable = true;
recommendedTlsSettings = true;
recommendedOptimisation = true;
recommendedGzipSettings = true;
eventsConfig = "worker_connections 4096;";
defaultSSLListenPort = 4443;
# Catch-all default - friendly error for unknown subdomains
virtualHosts."_" = {