added docker, removed cam net isolation

This commit is contained in:
Bryan Ramos 2026-03-18 19:25:25 -04:00
parent 8f97be72f0
commit 3a57d7a9f5
7 changed files with 50 additions and 14 deletions

View file

@ -10,6 +10,7 @@
../../../user ../../../user
../../keys ../../keys
../../modules/sops ../../modules/sops
../../modules/docker
./hardware.nix ./hardware.nix
./system.nix ./system.nix
]; ];

View file

@ -66,6 +66,7 @@ with lib;
nvidiaSettings = true; nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
}; };
nvidia-container-toolkit.enable = true;
graphics = { graphics = {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;

View file

@ -5,10 +5,13 @@ let
(user: user.modules.user.security.gpg.enable or false) (user: user.modules.user.security.gpg.enable or false)
(lib.attrValues config.home-manager.users); (lib.attrValues config.home-manager.users);
sysModules = config.modules.system;
in in
{ system.stateVersion = "23.11"; { system.stateVersion = "23.11";
modules.system.sops.enable = true; modules.system.sops.enable = true;
modules.system.docker.enable = true;
# WiFi secrets # WiFi secrets
sops.secrets = let wifi = { sopsFile = ../../../secrets/system/wifi.yaml; }; in { sops.secrets = let wifi = { sopsFile = ../../../secrets/system/wifi.yaml; }; in {

View file

@ -108,9 +108,16 @@
console.font = "Lat2-Terminus16"; console.font = "Lat2-Terminus16";
boot.kernel.sysctl."net.ipv4.ip_forward" = 1;
networking = { networking = {
hostName = "server"; hostName = "server";
useDHCP = false; useDHCP = false;
nat = {
enable = true;
internalInterfaces = [ "enp2s0f1" ];
externalInterface = "enp2s0f0";
};
interfaces.enp2s0f0 = { interfaces.enp2s0f0 = {
ipv4.addresses = [{ ipv4.addresses = [{
address = "192.168.0.154"; address = "192.168.0.154";
@ -130,17 +137,17 @@
enable = true; enable = true;
allowedTCPPorts = [ 22 ]; allowedTCPPorts = [ 22 ];
allowedUDPPorts = [ 53 67 ]; # DNS + DHCP allowedUDPPorts = [ 53 67 ]; # DNS + DHCP
extraCommands = '' # extraCommands = ''
# Block camera MACs from forwarding (instant DROP, no timeouts) # # Block camera MACs from forwarding (instant DROP, no timeouts)
iptables -A FORWARD -m mac --mac-source 00:1f:54:c2:d1:b1 -j DROP # cam4 # iptables -A FORWARD -m mac --mac-source 00:1f:54:c2:d1:b1 -j DROP # cam4
iptables -A FORWARD -m mac --mac-source 00:1f:54:b2:9b:1d -j DROP # cam2/cam3 # iptables -A FORWARD -m mac --mac-source 00:1f:54:b2:9b:1d -j DROP # cam2/cam3
iptables -A FORWARD -m mac --mac-source 00:1f:54:a9:81:d1 -j DROP # cam1 # iptables -A FORWARD -m mac --mac-source 00:1f:54:a9:81:d1 -j DROP # cam1
''; # '';
extraStopCommands = '' # extraStopCommands = ''
iptables -D FORWARD -m mac --mac-source 00:1f:54:c2:d1:b1 -j DROP || true # iptables -D FORWARD -m mac --mac-source 00:1f:54:c2:d1:b1 -j DROP || true
iptables -D FORWARD -m mac --mac-source 00:1f:54:b2:9b:1d -j DROP || true # iptables -D FORWARD -m mac --mac-source 00:1f:54:b2:9b:1d -j DROP || true
iptables -D FORWARD -m mac --mac-source 00:1f:54:a9:81:d1 -j DROP || true # iptables -D FORWARD -m mac --mac-source 00:1f:54:a9:81:d1 -j DROP || true
''; # '';
}; };
}; };

View file

@ -0,0 +1,27 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.modules.system.docker;
in
{
options.modules.system.docker = { enable = mkEnableOption "Enable Docker"; };
config = mkIf cfg.enable {
virtualisation.docker = {
enable = true;
# Explicit storage driver for ext4/xfs filesystems
storageDriver = "overlay2";
};
# Add docker package to system packages
environment.systemPackages = with pkgs; [
docker
docker-compose
];
# Add user to docker group
users.users.${config.user.name}.extraGroups = [ "docker" ];
};
}

View file

@ -7,7 +7,6 @@ let
in in
{ {
options.modules.system.sops = { enable = mkEnableOption "Enable sops-nix"; }; options.modules.system.sops = { enable = mkEnableOption "Enable sops-nix"; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
# Smartcard daemon for Yubikey (GPG, etc.) # Smartcard daemon for Yubikey (GPG, etc.)
services.pcscd.enable = true; services.pcscd.enable = true;

View file

@ -17,8 +17,6 @@ in
pkg-config pkg-config
qrencode qrencode
docker
# Network/system tools # Network/system tools
fping fping
wireguard-tools wireguard-tools