headscale
This commit is contained in:
parent
26b5a32ab1
commit
3daa817aad
6 changed files with 120 additions and 38 deletions
|
|
@ -59,6 +59,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
./host/roam
|
./host/roam
|
||||||
mod.shared.all
|
mod.shared.all
|
||||||
|
mod.server.all
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
networking.networkmanager.wifi.macAddress = "random";
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
|
systemd.services.NetworkManager-wait-online.enable = false;
|
||||||
|
|
||||||
services.tailscale = {
|
services.tailscale = {
|
||||||
enable = true;
|
enable = true;
|
||||||
useRoutingFeatures = "client";
|
useRoutingFeatures = "client";
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.NetworkManager-wait-online.enable = false;
|
networking = {
|
||||||
|
enableIPv6 = true;
|
||||||
networking.networkmanager.ensureProfiles.profiles = {
|
networkmanager.enable = true;
|
||||||
|
networkmanager.wifi.macAddress = "random";
|
||||||
|
networkmanager.ensureProfiles.profiles = {
|
||||||
"tuda-vpn" = {
|
"tuda-vpn" = {
|
||||||
connection = {
|
connection = {
|
||||||
autoconnect = "false";
|
autoconnect = "false";
|
||||||
|
|
@ -49,4 +49,5 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
8
mod/server/all.nix
Normal file
8
mod/server/all.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{ mod, ... }:
|
||||||
|
{
|
||||||
|
imports = with mod.server; [
|
||||||
|
services
|
||||||
|
networking
|
||||||
|
security
|
||||||
|
];
|
||||||
|
}
|
||||||
28
mod/server/networking.nix
Normal file
28
mod/server/networking.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
enableIPv6 = true;
|
||||||
|
|
||||||
|
interfaces = {
|
||||||
|
"ens3".ipv6.addresses = [
|
||||||
|
{
|
||||||
|
address = "2a03:4000:3b:f99::";
|
||||||
|
prefixLength = 64;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultGateway6 = {
|
||||||
|
address = "fe80::1";
|
||||||
|
interface = "ens3";
|
||||||
|
};
|
||||||
|
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [
|
||||||
|
80
|
||||||
|
443
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
9
mod/server/security.nix
Normal file
9
mod/server/security.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
security = {
|
||||||
|
acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = "acme@henri-dohmen.de";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
35
mod/server/services.nix
Normal file
35
mod/server/services.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{ config, ... }:
|
||||||
|
let
|
||||||
|
headscale-domain = "headscale.hdohmen.de";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
# TODO: maybe just use wireguard...
|
||||||
|
headscale = {
|
||||||
|
enable = true;
|
||||||
|
address = "127.0.0.1";
|
||||||
|
port = 8080;
|
||||||
|
settings = {
|
||||||
|
server_url = "https://${headscale-domain}";
|
||||||
|
prefixes.v4 = "100.10.11.0/24";
|
||||||
|
prefixes.v6 = "fd7a:115c:1011::/48";
|
||||||
|
dns = {
|
||||||
|
magic_dns = true;
|
||||||
|
base_domain = "net.hdohmen.de";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nginx = {
|
||||||
|
enable = true;
|
||||||
|
virtualHosts.${headscale-domain} = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${toString config.services.headscale.port}";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue