remove all grammars and fix pkgs with new setup
This commit is contained in:
@@ -1,23 +1,27 @@
|
|||||||
{ config, lib, pkgs, stable_pkgs, unstable_pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
let
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
stable_pkgs,
|
||||||
|
unstable_pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
vpsip4 = "100.100.1.10";
|
vpsip4 = "100.100.1.10";
|
||||||
homelabipv4 = "10.10.0.10";
|
homelabipv4 = "10.10.0.10";
|
||||||
homelab = config.homelab;
|
homelab = config.homelab;
|
||||||
in
|
in {
|
||||||
{
|
imports = [
|
||||||
imports =
|
./hardware-configuration.nix
|
||||||
[
|
../../nixos
|
||||||
./hardware-configuration.nix
|
../../../users/blake
|
||||||
../../nixos
|
../../../modules/system
|
||||||
../../../users/blake
|
../../../modules/homelab
|
||||||
../../../modules/system
|
#../../../modules/holocron
|
||||||
../../../modules/homelab
|
];
|
||||||
#../../../modules/holocron
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager.users.blake.imports = [
|
home-manager.users.blake.imports = [
|
||||||
../../../users/blake/hosts/vaniville.nix
|
../../../users/blake/hosts/vaniville.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
@@ -37,7 +41,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
loader = {
|
loader = {
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
grub = {
|
grub = {
|
||||||
@@ -72,50 +76,50 @@ in
|
|||||||
# the proper way to forward ports on nixos, need to figure it out locally then try to get it working over vps
|
# the proper way to forward ports on nixos, need to figure it out locally then try to get it working over vps
|
||||||
nat = {
|
nat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
externalInterface = "eth0"; # your PUBLIC_IF
|
externalInterface = "eth0"; # your PUBLIC_IF
|
||||||
internalInterfaces = [ "tailscale0" ];
|
internalInterfaces = ["tailscale0"];
|
||||||
# maybe one day i will figure out the forward ports proper
|
# maybe one day i will figure out the forward ports proper
|
||||||
forwardPorts = [
|
forwardPorts = [
|
||||||
# { sourcePort = 80; destination = "10.10.0.10:80"; proto = "tcp"; } # http
|
# { sourcePort = 80; destination = "10.10.0.10:80"; proto = "tcp"; } # http
|
||||||
# { sourcePort = 443; destination = "10.10.0.10:443"; proto = "tcp"; } # https
|
# { sourcePort = 443; destination = "10.10.0.10:443"; proto = "tcp"; } # https
|
||||||
# { sourcePort = 25777; destination = "10.10.0.10:25777"; proto = "tcp"; } # minecraft
|
# { sourcePort = 25777; destination = "10.10.0.10:25777"; proto = "tcp"; } # minecraft
|
||||||
# { sourcePort = 25777; destination = "10.10.0.10:25777"; proto = "udp"; } # minecraft
|
# { sourcePort = 25777; destination = "10.10.0.10:25777"; proto = "udp"; } # minecraft
|
||||||
# { sourcePort = 7567; destination = "10.10.0.10:7567"; proto = "tcp"; } # git
|
# { sourcePort = 7567; destination = "10.10.0.10:7567"; proto = "tcp"; } # git
|
||||||
|
|
||||||
# Rustdesk ports
|
# Rustdesk ports
|
||||||
# { sourcePort = 21115; destination = "10.10.0.10:21115"; proto = "tcp"; }
|
# { sourcePort = 21115; destination = "10.10.0.10:21115"; proto = "tcp"; }
|
||||||
# { sourcePort = 21116; destination = "10.10.0.10:21116"; proto = "tcp"; }
|
# { sourcePort = 21116; destination = "10.10.0.10:21116"; proto = "tcp"; }
|
||||||
# { sourcePort = 21116; destination = "10.10.0.10:21116"; proto = "udp"; }
|
# { sourcePort = 21116; destination = "10.10.0.10:21116"; proto = "udp"; }
|
||||||
# { sourcePort = 21118; destination = "10.10.0.10:21118"; proto = "tcp"; }
|
# { sourcePort = 21118; destination = "10.10.0.10:21118"; proto = "tcp"; }
|
||||||
# { sourcePort = 21117; destination = "10.10.0.10:21117"; proto = "tcp"; }
|
# { sourcePort = 21117; destination = "10.10.0.10:21117"; proto = "tcp"; }
|
||||||
# { sourcePort = 21119; destination = "10.10.0.10:21119"; proto = "tcp"; }
|
# { sourcePort = 21119; destination = "10.10.0.10:21119"; proto = "tcp"; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# what actually does the forwarding
|
# what actually does the forwarding
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
allowedTCPPorts = [ 22 80 443 25777 7567 21115 21116 21117 21118 21119 ];
|
allowedTCPPorts = [22 80 443 25777 7567 21115 21116 21117 21118 21119];
|
||||||
# tailscale will also need its UDP port open:
|
# tailscale will also need its UDP port open:
|
||||||
allowedUDPPorts = [ config.services.tailscale.port 25777 21116 ];
|
allowedUDPPorts = [config.services.tailscale.port 25777 21116];
|
||||||
trustedInterfaces = [ "tailscale0" ];
|
trustedInterfaces = ["tailscale0"];
|
||||||
/*
|
/*
|
||||||
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination ${homelabipv4}:80 # http
|
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination ${homelabipv4}:80 # http
|
||||||
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination ${homelabipv4}:443 # https
|
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination ${homelabipv4}:443 # https
|
||||||
|
|
||||||
iptables -t nat -A POSTROUTING -o tailscale0 -p tcp --dport 80 -d ${homelabipv4}/32 -j SNAT --to-source ${vpsip4} # http
|
iptables -t nat -A POSTROUTING -o tailscale0 -p tcp --dport 80 -d ${homelabipv4}/32 -j SNAT --to-source ${vpsip4} # http
|
||||||
iptables -t nat -A POSTROUTING -o tailscale0 -p tcp --dport 443 -d ${homelabipv4}/32 -j SNAT --to-source ${vpsip4} # https
|
iptables -t nat -A POSTROUTING -o tailscale0 -p tcp --dport 443 -d ${homelabipv4}/32 -j SNAT --to-source ${vpsip4} # https
|
||||||
*/
|
*/
|
||||||
extraCommands = ''
|
extraCommands = ''
|
||||||
# Clear any previous rules if you are iterating
|
# Clear any previous rules if you are iterating
|
||||||
iptables -t nat -F
|
iptables -t nat -F
|
||||||
|
|
||||||
# DNAT: internet -> homelab over tailscale
|
# DNAT: internet -> homelab over tailscale
|
||||||
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 7567 -j DNAT --to-destination ${homelabipv4}:7567 # gitea ssh
|
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 7567 -j DNAT --to-destination ${homelabipv4}:7567 # gitea ssh
|
||||||
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25777 -j DNAT --to-destination ${homelabipv4}:25777 # recpro mc
|
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25777 -j DNAT --to-destination ${homelabipv4}:25777 # recpro mc
|
||||||
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 25777 -j DNAT --to-destination ${homelabipv4}:25777 # recpro mc
|
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 25777 -j DNAT --to-destination ${homelabipv4}:25777 # recpro mc
|
||||||
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25778 -j DNAT --to-destination ${homelabipv4}:25778 # cbblemon mc
|
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25778 -j DNAT --to-destination ${homelabipv4}:25778 # cbblemon mc
|
||||||
|
|
||||||
# SNAT: ensure replies go back through VPS tailscale IP
|
# SNAT: ensure replies go back through VPS tailscale IP
|
||||||
iptables -t nat -A POSTROUTING -o tailscale0 -p tcp --dport 7567 -d ${homelabipv4}/32 -j SNAT --to-source ${vpsip4} # gitea ssh
|
iptables -t nat -A POSTROUTING -o tailscale0 -p tcp --dport 7567 -d ${homelabipv4}/32 -j SNAT --to-source ${vpsip4} # gitea ssh
|
||||||
iptables -t nat -A POSTROUTING -o tailscale0 -p tcp --dport 25777 -d ${homelabipv4}/32 -j SNAT --to-source ${vpsip4} # recpro mc
|
iptables -t nat -A POSTROUTING -o tailscale0 -p tcp --dport 25777 -d ${homelabipv4}/32 -j SNAT --to-source ${vpsip4} # recpro mc
|
||||||
@@ -142,7 +146,7 @@ in
|
|||||||
reverse_proxy 127.0.0.1:7901
|
reverse_proxy 127.0.0.1:7901
|
||||||
'';
|
'';
|
||||||
# below is basically just manually reverse proxying everything in the homelab
|
# below is basically just manually reverse proxying everything in the homelab
|
||||||
# this is instead of forwarding all 80 & 443 traffic to have more explicit
|
# this is instead of forwarding all 80 & 443 traffic to have more explicit
|
||||||
# publishing things to the open web
|
# publishing things to the open web
|
||||||
"media.${homelab.public_domain}".extraConfig = ''
|
"media.${homelab.public_domain}".extraConfig = ''
|
||||||
reverse_proxy 10.10.0.10:7100
|
reverse_proxy 10.10.0.10:7100
|
||||||
@@ -163,7 +167,4 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "25.05"; # Did you read the comment?
|
system.stateVersion = "25.05"; # Did you read the comment?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user