forked from Drift/pvv-nixos-config
Compare commits
11 Commits
replace-kn
...
main
Author | SHA1 | Date |
---|---|---|
Jon Martinus Rodtang | 0c816068fe | |
Daniel Lovbrotte Olsen | d8031ecca1 | |
Daniel Lovbrotte Olsen | 28e3f5672c | |
Oystein Kristoffer Tveit | 8ced91a285 | |
Daniel Lovbrotte Olsen | 1ef033c754 | |
Felix Albrigtsen | d900dc1b1b | |
Oystein Kristoffer Tveit | d5985e02f3 | |
Daniel Lovbrotte Olsen | 2c42b120a6 | |
Daniel Lovbrotte Olsen | 27ba3f7a7f | |
Daniel Lovbrotte Olsen | c1c58122ea | |
Oystein Kristoffer Tveit | 7ac960c5ff |
31
flake.lock
31
flake.lock
|
@ -7,11 +7,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1699099781,
|
"lastModified": 1700927249,
|
||||||
"narHash": "sha256-2WAs839yL6xmIPBLNVwbft46BDh0/RAjq1bAKNRqeR4=",
|
"narHash": "sha256-iqmIWiEng890/ru7ZBf4nUezFPyRm2fjRTvuwwxqk2o=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "548962c50b8afad7b8c820c1d6e21dc8394d6e65",
|
"rev": "3cb78c93e6a02f494aaf6aeb37481c27a2e2ee22",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -75,16 +75,17 @@
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "dali99",
|
"owner": "dali99",
|
||||||
"repo": "nixos-matrix-modules",
|
"repo": "nixos-matrix-modules",
|
||||||
|
"rev": "e09814657187c8ed1a5fe1646df6d8da1eb2dee9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1699110214,
|
"lastModified": 1701362232,
|
||||||
"narHash": "sha256-L2TU4RgtiqF69W8Gacg2jEkEYJrW+Kp0Mp4plwQh5b8=",
|
"narHash": "sha256-GVdzxL0lhEadqs3hfRLuj+L1OJFGiL/L7gCcelgBlsw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "78f3a4ae19f0e99d5323dd2e3853916b8ee4afee",
|
"rev": "d2332963662edffacfddfad59ff4f709dde80ffe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -110,11 +111,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1699110214,
|
"lastModified": 1700905716,
|
||||||
"narHash": "sha256-L2TU4RgtiqF69W8Gacg2jEkEYJrW+Kp0Mp4plwQh5b8=",
|
"narHash": "sha256-w1vHn2MbGfdC+CrP3xLZ3scsI06N0iQLU7eTHIVEFGw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "78f3a4ae19f0e99d5323dd2e3853916b8ee4afee",
|
"rev": "dfb95385d21475da10b63da74ae96d89ab352431",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -126,11 +127,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1699128932,
|
"lastModified": 1701368325,
|
||||||
"narHash": "sha256-4Hn/fpR/FRucpXQqMI0OSgxiu2ImowmR0dThAycPt/4=",
|
"narHash": "sha256-3OqZyi2EdopJxpxwrySPyCTuCvfBY4oXTLVgQ4B6qDg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0d2d729bf7091df906a78b69f90620f933ea963f",
|
"rev": "3934dbde4f4a0e266825348bc4ad1bdd00a8d6a3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -179,11 +180,11 @@
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1699153251,
|
"lastModified": 1701127353,
|
||||||
"narHash": "sha256-CGx98mbAy9svKTa1dzlrVmkJwgGSXpAQUdMh7U0szts=",
|
"narHash": "sha256-qVNX0wOl0b7+I35aRu78xUphOyELh+mtUp1KBx89K1Q=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "5bc2cde6e53241e7df0e8f5df5872223983efa72",
|
"rev": "b1edbf5c0464b4cced90a3ba6f999e671f0af631",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
pvv-calendar-bot.url = "git+https://git.pvv.ntnu.no/Projects/calendar-bot.git";
|
pvv-calendar-bot.url = "git+https://git.pvv.ntnu.no/Projects/calendar-bot.git";
|
||||||
pvv-calendar-bot.inputs.nixpkgs.follows = "nixpkgs";
|
pvv-calendar-bot.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
matrix-next.url = "github:dali99/nixos-matrix-modules";
|
# Last release compatible with 23.05
|
||||||
|
matrix-next.url = "github:dali99/nixos-matrix-modules/e09814657187c8ed1a5fe1646df6d8da1eb2dee9";
|
||||||
|
|
||||||
grzegorz.url = "github:Programvareverkstedet/grzegorz";
|
grzegorz.url = "github:Programvareverkstedet/grzegorz";
|
||||||
grzegorz.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
grzegorz.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
@ -111,6 +112,12 @@
|
||||||
inputs.grzegorz-clients.nixosModules.grzegorz-webui
|
inputs.grzegorz-clients.nixosModules.grzegorz-webui
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
buskerud = stableNixosConfig "buskerud" {
|
||||||
|
modules = [
|
||||||
|
./hosts/buskerud/configuration.nix
|
||||||
|
sops-nix.nixosModules.sops
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells = forAllSystems (system: {
|
devShells = forAllSystems (system: {
|
||||||
|
|
|
@ -6,8 +6,10 @@
|
||||||
addSSL = true;
|
addSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
|
|
||||||
locations = let
|
locations = {
|
||||||
proxy_tom = ''
|
# Proxy home directories
|
||||||
|
"/~" = {
|
||||||
|
extraConfig = ''
|
||||||
proxy_redirect off;
|
proxy_redirect off;
|
||||||
proxy_pass https://tom.pvv.ntnu.no;
|
proxy_pass https://tom.pvv.ntnu.no;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
|
@ -15,12 +17,10 @@
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
'';
|
'';
|
||||||
in {
|
};
|
||||||
# Proxy home directories
|
|
||||||
"/~".extraConfig = proxy_tom;
|
|
||||||
|
|
||||||
# Redirect old wiki entries - TODO: Move these to the main website
|
# Redirect old wiki entries
|
||||||
"= /disk".return = "301 https://www.pvv.ntnu.no/pvv/Diskkjøp";
|
"/disk".return = "301 https://www.pvv.ntnu.no/pvv/Diskkjøp";
|
||||||
"/dok/boker.php".return = "301 https://www.pvv.ntnu.no/pvv/Bokhyllen";
|
"/dok/boker.php".return = "301 https://www.pvv.ntnu.no/pvv/Bokhyllen";
|
||||||
"/styret/lover/".return = "301 https://www.pvv.ntnu.no/pvv/Lover";
|
"/styret/lover/".return = "301 https://www.pvv.ntnu.no/pvv/Lover";
|
||||||
"/styret/".return = "301 https://www.pvv.ntnu.no/pvv/Styret";
|
"/styret/".return = "301 https://www.pvv.ntnu.no/pvv/Styret";
|
||||||
|
@ -29,17 +29,25 @@
|
||||||
"/medlemssider/meldinn.php".return = "301 https://www.pvv.ntnu.no/pvv/Medlemskontingent";
|
"/medlemssider/meldinn.php".return = "301 https://www.pvv.ntnu.no/pvv/Medlemskontingent";
|
||||||
"/diverse/medlems-sider.php".return = "301 https://www.pvv.ntnu.no/pvv/Medlemssider";
|
"/diverse/medlems-sider.php".return = "301 https://www.pvv.ntnu.no/pvv/Medlemssider";
|
||||||
"/cert/".return = "301 https://www.pvv.ntnu.no/pvv/CERT";
|
"/cert/".return = "301 https://www.pvv.ntnu.no/pvv/CERT";
|
||||||
"= /drift".return = "301 https://www.pvv.ntnu.no/pvv/Drift";
|
"/drift".return = "301 https://www.pvv.ntnu.no/pvv/Drift";
|
||||||
"/diverse/abuse.php".return = "301 https://www.pvv.ntnu.no/pvv/CERT/Abuse";
|
"/diverse/abuse.php".return = "301 https://www.pvv.ntnu.no/pvv/CERT/Abuse";
|
||||||
"/nerds/".return = "301 https://www.pvv.ntnu.no/pvv/Nerdepizza";
|
"/nerds/".return = "301 https://www.pvv.ntnu.no/pvv/Nerdepizza";
|
||||||
"/pvvmud/".extraConfig = proxy_tom;
|
|
||||||
"= /pvvmud".return = "301 $request_uri/";
|
|
||||||
|
|
||||||
# TODO: Redirect webmail
|
# TODO: Redirect webmail
|
||||||
"/webmail".return = "301 https://webmail.pvv.ntnu.no/squirrelmail";
|
"/webmail".return = "301 https://webmail.pvv.ntnu.no/squirrelmail";
|
||||||
|
|
||||||
# Redirect everything else to the main website
|
# Redirect everything else to the main website
|
||||||
"/".return = "301 https://www.pvv.ntnu.no$request_uri";
|
"/".return = "301 https://www.pvv.ntnu.no$request_uri";
|
||||||
|
|
||||||
|
# Proxy the matrix well-known files
|
||||||
|
# Host has be set before proxy_pass
|
||||||
|
# The header must be set so nginx on the other side routes it to the right place
|
||||||
|
"/.well-known/matrix/" = {
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_set_header Host matrix.pvv.ntnu.no;
|
||||||
|
proxy_pass https://matrix.pvv.ntnu.no/.well-known/matrix/;
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,6 +5,7 @@ from smtplib import SMTP_SSL as SMTP
|
||||||
import synapse
|
import synapse
|
||||||
from synapse import module_api
|
from synapse import module_api
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
class SMTPAuthProvider:
|
class SMTPAuthProvider:
|
||||||
def __init__(self, config: dict, api: module_api):
|
def __init__(self, config: dict, api: module_api):
|
||||||
|
@ -27,6 +28,10 @@ class SMTPAuthProvider:
|
||||||
if login_type != "m.login.password":
|
if login_type != "m.login.password":
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
# Convert `@username:server` to `username`
|
||||||
|
match = re.match(r'^@([\da-z\-\.=_\/\+]+):[\w\d\.:\[\]]+$', username)
|
||||||
|
username = match.group(1) if match else username
|
||||||
|
|
||||||
result = False
|
result = False
|
||||||
with SMTP(self.config["smtp_host"]) as smtp:
|
with SMTP(self.config["smtp_host"]) as smtp:
|
||||||
password = login_dict.get("password")
|
password = login_dict.get("password")
|
||||||
|
|
|
@ -216,7 +216,19 @@ in {
|
||||||
|
|
||||||
services.redis.servers."".enable = true;
|
services.redis.servers."".enable = true;
|
||||||
|
|
||||||
services.nginx.virtualHosts."matrix.pvv.ntnu.no" = lib.mkMerge [({
|
services.nginx.virtualHosts."matrix.pvv.ntnu.no" = lib.mkMerge [
|
||||||
|
({
|
||||||
|
locations."/.well-known/matrix/server" = {
|
||||||
|
return = ''
|
||||||
|
200 '{"m.server": "matrix.pvv.ntnu.no:443"}'
|
||||||
|
'';
|
||||||
|
extraConfig = ''
|
||||||
|
default_type application/json;
|
||||||
|
add_header Access-Control-Allow-Origin *;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
({
|
||||||
locations = let
|
locations = let
|
||||||
connectionInfo = w: matrix-lib.workerConnectionResource "metrics" w;
|
connectionInfo = w: matrix-lib.workerConnectionResource "metrics" w;
|
||||||
socketAddress = w: let c = connectionInfo w; in "${c.host}:${toString (c.port)}";
|
socketAddress = w: let c = connectionInfo w; in "${c.host}:${toString (c.port)}";
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
{ config, pkgs, values, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
../../base.nix
|
||||||
|
../../misc/metrics-exporters.nix
|
||||||
|
|
||||||
|
./services/openvpn-client.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# buskerud does not support efi?
|
||||||
|
# boot.loader.systemd-boot.enable = true;
|
||||||
|
# boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
boot.loader.grub.enable = true;
|
||||||
|
boot.loader.grub.device = "/dev/sda";
|
||||||
|
|
||||||
|
networking.hostName = "buskerud";
|
||||||
|
networking.search = [ "pvv.ntnu.no" "pvv.org" ];
|
||||||
|
networking.nameservers = [ "129.241.0.200" "129.241.0.201" ];
|
||||||
|
networking.tempAddresses = "disabled";
|
||||||
|
|
||||||
|
systemd.network.networks."enp3s0f0" = values.defaultNetworkConfig // {
|
||||||
|
matchConfig.Name = "enp3s0f0";
|
||||||
|
address = with values.hosts.buskerud; [ (ipv4 + "/25") (ipv6 + "/64") ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Buskerud should use the default gateway received from DHCP
|
||||||
|
networking.interfaces.enp14s0f1.useDHCP = true;
|
||||||
|
|
||||||
|
# networking.interfaces.tun = {
|
||||||
|
# virtual = true;
|
||||||
|
# ipv4.adresses = [ {address="129.241.210.252"; prefixLength=25; } ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# List packages installed in system profile
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
];
|
||||||
|
|
||||||
|
# List services that you want to enable:
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ata_piix" "hpsa" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/ed9654fe-575a-4fb3-b6ff-1b059479acff";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp14s0f0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp14s0f1.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp3s0f0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp3s0f1.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp4s0f0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp4s0f1.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
{ lib, values, ... }:
|
||||||
|
{
|
||||||
|
services.openvpn.servers."ov-tunnel" = {
|
||||||
|
config = let
|
||||||
|
conf = {
|
||||||
|
# TODO: use aliases
|
||||||
|
client = true;
|
||||||
|
dev = "tap";
|
||||||
|
proto = "udp";
|
||||||
|
#remote = "129.241.210.253 1194";
|
||||||
|
remote = "129.241.210.191 1194";
|
||||||
|
|
||||||
|
resolv-retry = "infinite";
|
||||||
|
nobind = true;
|
||||||
|
|
||||||
|
ca = "/etc/openvpn/ca.pem";
|
||||||
|
cert = "/etc/openvpn/crt.pem";
|
||||||
|
key = "/etc/openvpn/key.pem";
|
||||||
|
remote-cert-tls = "server";
|
||||||
|
cipher = "none";
|
||||||
|
|
||||||
|
user = "nobody";
|
||||||
|
group = "nobody";
|
||||||
|
|
||||||
|
status = "/var/log/openvpn-status.log";
|
||||||
|
|
||||||
|
persist-key = true;
|
||||||
|
persist-tun = true;
|
||||||
|
|
||||||
|
verb = 5;
|
||||||
|
|
||||||
|
# script-security = 2;
|
||||||
|
# up = "systemctl restart rwhod";
|
||||||
|
};
|
||||||
|
in lib.pipe conf [
|
||||||
|
(lib.filterAttrs (_: value: !(builtins.isNull value || value == false)))
|
||||||
|
(builtins.mapAttrs (_: value:
|
||||||
|
if builtins.isList value then builtins.concatStringsSep " " (map toString value)
|
||||||
|
else if value == true then value
|
||||||
|
else if builtins.any (f: f value) [
|
||||||
|
builtins.isString
|
||||||
|
builtins.isInt
|
||||||
|
builtins.isFloat
|
||||||
|
lib.isPath
|
||||||
|
lib.isDerivation
|
||||||
|
] then toString value
|
||||||
|
else throw "Unknown value in buskerud openvpn config, deading now\n${value}"
|
||||||
|
))
|
||||||
|
(lib.mapAttrsToList (name: value: if value == true then name else "${name} ${value}"))
|
||||||
|
(builtins.concatStringsSep "\n")
|
||||||
|
(x: x + "\n\n")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."enp14s0f1" = {
|
||||||
|
matchConfig.Name = "enp14s0f1";
|
||||||
|
networkConfig = {
|
||||||
|
DefaultRouteOnDevice = true;
|
||||||
|
};
|
||||||
|
routes = [
|
||||||
|
{ routeConfig = {
|
||||||
|
Type = "unicast";
|
||||||
|
Destination = values.hosts.knutsen.ipv4 + "/32";
|
||||||
|
Metric = 50;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.netdevs."br0" = {
|
||||||
|
netdevConfig = {
|
||||||
|
Kind = "bridge";
|
||||||
|
Name = "br0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."br0" = {
|
||||||
|
matchConfig.Name = "br0";
|
||||||
|
routes = [
|
||||||
|
{ routeConfig = {
|
||||||
|
Type = "unicast";
|
||||||
|
Destination = values.ipv4-space;
|
||||||
|
Metric = 100;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."enp3s0f0" = {
|
||||||
|
matchConfig.Name = "enp3s0f0";
|
||||||
|
networkConfig.DefaultRouteOnDevice = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."enp3s0f1" = {
|
||||||
|
matchConfig.Name = "enp3s0f1";
|
||||||
|
bridge = [ "br0" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks."tap0" = {
|
||||||
|
matchConfig.Name = "tap0";
|
||||||
|
bridge = [ "br0" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
#networking.nat = {
|
||||||
|
# enable = true;
|
||||||
|
# externalInterface = "enp14s0f1";
|
||||||
|
# internalInterfaces = [ "tun" ];
|
||||||
|
#};
|
||||||
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
{
|
{
|
||||||
users.users.jonmro = {
|
users.users.jonmro = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" ];
|
extraGroups = [ "wheel" "drift" "nix-builder-users" ];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEm5PfYmfl/0fnAP/3coVlvTw3/TYNLT6r/NwJHZbLAK jonrodtang@gmail.com"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEm5PfYmfl/0fnAP/3coVlvTw3/TYNLT6r/NwJHZbLAK jonrodtang@gmail.com"
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"wheel"
|
"wheel"
|
||||||
"drift"
|
"drift"
|
||||||
|
"nix-builder-users"
|
||||||
];
|
];
|
||||||
|
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
|
|
@ -41,6 +41,9 @@ in rec {
|
||||||
ipv4 = "129.241.152.254";
|
ipv4 = "129.241.152.254";
|
||||||
# ipv6 = ;
|
# ipv6 = ;
|
||||||
};
|
};
|
||||||
|
knutsen = {
|
||||||
|
ipv4 = pvv-ipv4 191;
|
||||||
|
};
|
||||||
shark = {
|
shark = {
|
||||||
ipv4 = pvv-ipv4 196;
|
ipv4 = pvv-ipv4 196;
|
||||||
ipv6 = pvv-ipv6 196;
|
ipv6 = pvv-ipv6 196;
|
||||||
|
@ -53,6 +56,10 @@ in rec {
|
||||||
ipv4 = pvv-ipv4 204;
|
ipv4 = pvv-ipv4 204;
|
||||||
ipv6 = pvv-ipv6 "1:4f"; # Wtf øystein og daniel why
|
ipv6 = pvv-ipv6 "1:4f"; # Wtf øystein og daniel why
|
||||||
};
|
};
|
||||||
|
buskerud = {
|
||||||
|
ipv4 = pvv-ipv4 231;
|
||||||
|
ipv6 = pvv-ipv6 231;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultNetworkConfig = {
|
defaultNetworkConfig = {
|
||||||
|
|
Loading…
Reference in New Issue