add sternchen computer
This commit is contained in:
parent
a3be1e769a
commit
6f793e7e38
19 changed files with 444 additions and 22 deletions
14
assets/tinc/sternchen_host_file
Normal file
14
assets/tinc/sternchen_host_file
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Ed25519PublicKey = Z567IKl00Kw5JFBNwMvjL33QYe2hRoNtQcNIDFRPReB
|
||||||
|
-----BEGIN RSA PUBLIC KEY-----
|
||||||
|
MIICCgKCAgEA1vhCFsFK0QSYDlXSS6ngpZbilplYtaPBzbxWYGAxa5vNtwoaO2Tz
|
||||||
|
BZ4ptvE26TR2+Jygvlk5xdoNYAL/yhNI9p86vs/pA+sJmBlsYAWOA5qAnXoIL2u4
|
||||||
|
1CBB9t+uMnQKhyPoBoDq6QXmM1HlFhxtkKVlLyEHxARxu7g/inFtghPqYD/HyjVJ
|
||||||
|
V6h9OdKEgY+wcn6GGLXGjrSMAsIZP2w8fPQfS45UAtjK+cFODFKElxGZrjqgJP1w
|
||||||
|
/Jw6nB03yKMGsMHNkiwC2BJbK3+pT92JfyqXRg3REw0hVMZghcsoNtWfBoNYLvFY
|
||||||
|
qwk+bvf5bVdLxLMEv33+B3F8SScXuwMUpBwCeMi58ltt+OuOVhh8PLA9ncA6tGa9
|
||||||
|
tzyUo7i8qjGTremSilWIdRYqOexriPKCdnYcJcw/L9Vl2H3QbIj7uVxbszQbqDGS
|
||||||
|
KM43U5cXgpMIYI9CwxnWB8np7n/IXZFG5E+9afd4kYTLShzaObzu2I1yom0O4Ks7
|
||||||
|
HsdvlsBgv4iT6ctquHtU6IFsa/Wfm4ntDiAcczoQEXs0F2v839FH62TPTY70xzyd
|
||||||
|
wQhAdCegb6MYVmVmQL9jv8QDfxwUxtsohbW3ncBDYrdy2rmeiZDGaRJVEbyf6MKI
|
||||||
|
OfaobRGXY0NnOURX9/fkXSydDKd3rIhOMubfUq0+Smm3YrsHWeZVvNMCAwEAAQ==
|
||||||
|
-----END RSA PUBLIC KEY-----
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, lib, ... }: {
|
||||||
|
|
||||||
networking.firewall.interfaces."tinc.insecure".allowedTCPPorts = [ 8384 ];
|
networking.firewall.interfaces."tinc.secure".allowedTCPPorts = [ 8384 ];
|
||||||
|
|
||||||
custom.samba-share = {
|
custom.samba-share = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
guiAddress = lib.mkForce "${config.networking.hostName}.insecure:8384";
|
guiAddress = lib.mkForce "${config.networking.hostName}.secret:8384";
|
||||||
enable = true;
|
enable = true;
|
||||||
openDefaultPorts = true;
|
openDefaultPorts = true;
|
||||||
declarative = {
|
declarative = {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# openPort = true;
|
# openPort = true;
|
||||||
# connectTo = [ "sputnik" ];
|
# connectTo = [ "sputnik" ];
|
||||||
#};
|
#};
|
||||||
"insecure" = {
|
"secure" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openPort = true;
|
openPort = true;
|
||||||
connectTo = [ "sputnik" ];
|
connectTo = [ "sputnik" ];
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
openPort = true;
|
openPort = true;
|
||||||
};
|
};
|
||||||
"insecure" = {
|
"secret" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openPort = true;
|
openPort = true;
|
||||||
};
|
};
|
||||||
|
|
81
configs/sternchen/configuration.nix
Normal file
81
configs/sternchen/configuration.nix
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
{ config, pkgs, lib, ... }: {
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
|
||||||
|
<system/desktop>
|
||||||
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
./packages.nix
|
||||||
|
#./syncthing.nix
|
||||||
|
./tinc.nix
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.hostName = "sternchen";
|
||||||
|
|
||||||
|
system.custom.mainUser.userName = "tina";
|
||||||
|
|
||||||
|
system.custom.wifi.interfaces = [ "wlp3s0" ];
|
||||||
|
|
||||||
|
security.wrappers = {
|
||||||
|
pmount.source = "${pkgs.pmount}/bin/pmount";
|
||||||
|
pumount.source = "${pkgs.pmount}/bin/pumount";
|
||||||
|
};
|
||||||
|
|
||||||
|
# keybase
|
||||||
|
services.keybase.enable = false;
|
||||||
|
services.kbfs.enable = false;
|
||||||
|
|
||||||
|
programs.custom.steam.enable = false;
|
||||||
|
programs.custom.video.enable = false;
|
||||||
|
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
# fonts
|
||||||
|
# -----
|
||||||
|
programs.custom.urxvt.fontSize = 12;
|
||||||
|
programs.custom.xterm.fontSize = 12;
|
||||||
|
system.custom.fonts.dpi = 100;
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
docker.enable = false;
|
||||||
|
|
||||||
|
virtualbox = {
|
||||||
|
host.enable = false;
|
||||||
|
guest.x11 = false;
|
||||||
|
guest.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
configuration.desktop = {
|
||||||
|
width = 1366;
|
||||||
|
height = 768;
|
||||||
|
};
|
||||||
|
|
||||||
|
custom.samba-share = {
|
||||||
|
enable = false;
|
||||||
|
folders = {
|
||||||
|
#public = "/home/palo/movies";
|
||||||
|
share = "/home/share";
|
||||||
|
#syncthing = "/mnt/syncthing";
|
||||||
|
#movies = "/mnt/syncthing/movies";
|
||||||
|
#series = "/mnt/syncthing/series";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# enable this to use sidequest
|
||||||
|
programs.adb.enable = false;
|
||||||
|
users.users.mainUser.extraGroups = [ "adbusers" "video" ];
|
||||||
|
|
||||||
|
# for congress and streaming
|
||||||
|
hardware.opengl = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = [ pkgs.vaapiIntel ];
|
||||||
|
driSupport32Bit = true;
|
||||||
|
};
|
||||||
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
79
configs/sternchen/hardware-configuration.nix
Normal file
79
configs/sternchen/hardware-configuration.nix
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
# 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, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
imports = [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> ];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules =
|
||||||
|
[ "ehci_pci" "ahci" "xhci_pci" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||||
|
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
# Use the systemd-boot EFI boot loader, not grub
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
zramSwap = {
|
||||||
|
enable = true;
|
||||||
|
numDevices = 2;
|
||||||
|
swapDevices = 1;
|
||||||
|
memoryPercent = 50;
|
||||||
|
};
|
||||||
|
|
||||||
|
#fileSystems."/share/" = {
|
||||||
|
# device = "/dev/ram1";
|
||||||
|
# fsType = "tmpfs";
|
||||||
|
#};
|
||||||
|
|
||||||
|
#fileSystems."/browsers/" = {
|
||||||
|
# #device = "/dev/ram2";
|
||||||
|
# #fsType = "tmpfs";
|
||||||
|
# options = [ "noatime" "nodiratime" "discard" ];
|
||||||
|
# device = "/dev/vg/browser";
|
||||||
|
# fsType = "ext4";
|
||||||
|
#};
|
||||||
|
|
||||||
|
nix.maxJobs = lib.mkDefault 4;
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
|
||||||
|
# lvm volume group
|
||||||
|
# ----------------
|
||||||
|
boot.initrd.luks.devices = {
|
||||||
|
vg = {
|
||||||
|
device = "/dev/sda2";
|
||||||
|
preLVM = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# NTFS support
|
||||||
|
# ------------
|
||||||
|
environment.systemPackages = [ pkgs.ntfs3g ];
|
||||||
|
|
||||||
|
# root
|
||||||
|
# ----
|
||||||
|
fileSystems."/" = {
|
||||||
|
options = [ "noatime" "nodiratime" "discard" ];
|
||||||
|
device = "/dev/vg/root";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
# home
|
||||||
|
# ----
|
||||||
|
fileSystems."/home" = {
|
||||||
|
options = [ "noatime" "nodiratime" "discard" ];
|
||||||
|
device = "/dev/vg/home";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
# boot
|
||||||
|
# ----
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/sda1";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
13
configs/sternchen/packages.nix
Normal file
13
configs/sternchen/packages.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let unstable = import <nixpkgs-unstable> { };
|
||||||
|
in {
|
||||||
|
|
||||||
|
# overlay included
|
||||||
|
#nixpkgs.overlays = [ (import <mozilla-overlay/rust-overlay.nix>) ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
darktable
|
||||||
|
keepass
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
77
configs/sternchen/syncthing.nix
Normal file
77
configs/sternchen/syncthing.nix
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
{ config, pkgs, lib, ... }: {
|
||||||
|
|
||||||
|
services.syncthing = {
|
||||||
|
enable = true;
|
||||||
|
openDefaultPorts = false;
|
||||||
|
user = "palo";
|
||||||
|
dataDir = "/home/palo/.syncthing";
|
||||||
|
configDir = "/home/palo/.syncthing";
|
||||||
|
declarative = {
|
||||||
|
cert = toString <secrets/syncthing/cert.pem>;
|
||||||
|
key = toString <secrets/syncthing/key.pem>;
|
||||||
|
overrideFolders = true;
|
||||||
|
folders = {
|
||||||
|
|
||||||
|
# on encrypted drive
|
||||||
|
# ------------------
|
||||||
|
private = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/private";
|
||||||
|
};
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/desktop";
|
||||||
|
};
|
||||||
|
finance = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/finance";
|
||||||
|
};
|
||||||
|
fotos = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/fotos";
|
||||||
|
};
|
||||||
|
samples = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/samples";
|
||||||
|
};
|
||||||
|
zettlr = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/zettlr";
|
||||||
|
};
|
||||||
|
programs = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/programs";
|
||||||
|
};
|
||||||
|
|
||||||
|
# no need to be encrypted
|
||||||
|
# -----------------------
|
||||||
|
books = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/books";
|
||||||
|
};
|
||||||
|
music-library = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/music-library";
|
||||||
|
};
|
||||||
|
music-projects = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/music-projects";
|
||||||
|
};
|
||||||
|
smartphone-folder = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/smartphone-folder";
|
||||||
|
};
|
||||||
|
processing = {
|
||||||
|
enable = true;
|
||||||
|
path = "/home/palo/sketchbook";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.permown."/home/palo/music-library" = {
|
||||||
|
owner = "palo";
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
|
}
|
24
configs/sternchen/tinc.nix
Normal file
24
configs/sternchen/tinc.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
module.cluster.services.tinc = {
|
||||||
|
#"private" = {
|
||||||
|
# enable = true;
|
||||||
|
# openPort = true;
|
||||||
|
# connectTo = [ "sputnik" ];
|
||||||
|
#};
|
||||||
|
#"retiolum" = {
|
||||||
|
# enable = true;
|
||||||
|
# openPort = true;
|
||||||
|
#};
|
||||||
|
"secret" = {
|
||||||
|
enable = true;
|
||||||
|
openPort = true;
|
||||||
|
connectTo = [ "sputnik" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
84
configs/sternchen/wifi-access-point.nix
Normal file
84
configs/sternchen/wifi-access-point.nix
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
wifi = "wlp0s29u1u2";
|
||||||
|
ipAddress = "10.123.145.1";
|
||||||
|
prefixLength = 24;
|
||||||
|
servedAddressRange = "10.123.145.2,10.123.145.150,12h";
|
||||||
|
ssid = "bumbumbum";
|
||||||
|
wifiPassword = lib.fileContents <secrets/wifi-access-point>;
|
||||||
|
|
||||||
|
in {
|
||||||
|
# todo only open needed ports
|
||||||
|
networking.firewall.trustedInterfaces = [ wifi ];
|
||||||
|
|
||||||
|
networking.networkmanager.unmanaged = [ wifi ];
|
||||||
|
networking.dhcpcd.denyInterfaces = [ wifi ];
|
||||||
|
|
||||||
|
networking.interfaces."${wifi}".ipv4.addresses = [{
|
||||||
|
address = ipAddress;
|
||||||
|
prefixLength = prefixLength;
|
||||||
|
}];
|
||||||
|
|
||||||
|
# forward traffic coming in trough the access point => provide internet and vpn network access
|
||||||
|
# todo : forward to own servers
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"net.ipv4.conf.${wifi}.forwarding" = true;
|
||||||
|
"net.ipv6.conf.${wifi}.forwarding" = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.hostapd = {
|
||||||
|
description = "hostapd wireless AP";
|
||||||
|
path = [ pkgs.hostapd ];
|
||||||
|
|
||||||
|
# start manual
|
||||||
|
# wantedBy = [ "network.target" ];
|
||||||
|
|
||||||
|
after = [
|
||||||
|
"${wifi}-cfg.service"
|
||||||
|
"nat.service"
|
||||||
|
"bind.service"
|
||||||
|
"dhcpd.service"
|
||||||
|
"sys-subsystem-net-devices-${wifi}.device"
|
||||||
|
];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.hostapd}/bin/hostapd ${
|
||||||
|
pkgs.writeText "hostapd.conf" ''
|
||||||
|
interface=${wifi}
|
||||||
|
hw_mode=g
|
||||||
|
channel=10
|
||||||
|
ieee80211d=1
|
||||||
|
country_code=DE
|
||||||
|
ieee80211n=1
|
||||||
|
wmm_enabled=1
|
||||||
|
|
||||||
|
ssid=${ssid}
|
||||||
|
auth_algs=1
|
||||||
|
wpa=2
|
||||||
|
wpa_key_mgmt=WPA-PSK
|
||||||
|
rsn_pairwise=CCMP
|
||||||
|
wpa_passphrase=${wifiPassword}
|
||||||
|
''
|
||||||
|
}";
|
||||||
|
Restart = "always";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.dnsmasq = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
# Only listen to routers' LAN NIC. Doing so opens up tcp/udp port 53 to
|
||||||
|
# localhost and udp port 67 to world:
|
||||||
|
interface=${wifi}
|
||||||
|
|
||||||
|
# Explicitly specify the address to listen on
|
||||||
|
listen-address=${ipAddress}
|
||||||
|
|
||||||
|
# Dynamic range of IPs to make available to LAN PC and the lease time.
|
||||||
|
# Ideally set the lease time to 5m only at first to test everything works okay before you set long-lasting records.
|
||||||
|
dhcp-range=${servedAddressRange}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
45
configs/sternchen/wireshark.nix
Normal file
45
configs/sternchen/wireshark.nix
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
{ pkgs, config, ... }: {
|
||||||
|
|
||||||
|
users.users.mainUser.extraGroups = [ "wireshark" ];
|
||||||
|
programs.wireshark.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
|
||||||
|
pkgs.wireshark
|
||||||
|
|
||||||
|
# alternative packet analyzer (only works with elasticsearch)
|
||||||
|
pkgs.packetbeat7
|
||||||
|
];
|
||||||
|
|
||||||
|
# elastic search is good for analysing stuff
|
||||||
|
# https://www.elastic.co/blog/analyzing-network-packets-with-wireshark-elasticsearch-and-kibana
|
||||||
|
services.elasticsearch.enable = true;
|
||||||
|
services.elasticsearch.listenAddress =
|
||||||
|
"${config.networking.hostName}.private";
|
||||||
|
services.kibana.enable = true;
|
||||||
|
services.kibana.elasticsearch.hosts =
|
||||||
|
[ "http://${config.networking.hostName}.private:9200" ];
|
||||||
|
services.kibana.listenAddress = "${config.networking.hostName}.private";
|
||||||
|
services.kibana.port = 5601;
|
||||||
|
|
||||||
|
# using tshark with elastic search
|
||||||
|
# --------------------------------
|
||||||
|
# tshark -r file.pcap -T ek > packages.json
|
||||||
|
# curl -XPOST "sterni.private:9200/packets/doc/_bulk" -H 'Content-Type: application/json' --data-binary "@packets.json"
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
statusPage = true;
|
||||||
|
virtualHosts = {
|
||||||
|
"kibana.${config.networking.hostName}.private" = {
|
||||||
|
serverAliases = [ ];
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://${config.networking.hostName}.private:${
|
||||||
|
toString config.services.kibana.port
|
||||||
|
}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -14,7 +14,7 @@ with lib;
|
||||||
enable = true;
|
enable = true;
|
||||||
openPort = true;
|
openPort = true;
|
||||||
};
|
};
|
||||||
"insecure" = {
|
"secret" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openPort = true;
|
openPort = true;
|
||||||
connectTo = [ "sputnik" ];
|
connectTo = [ "sputnik" ];
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
openPort = true;
|
openPort = true;
|
||||||
};
|
};
|
||||||
"insecure" = {
|
"secret" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openPort = true;
|
openPort = true;
|
||||||
connectTo = [ "sputnik" ];
|
connectTo = [ "sputnik" ];
|
||||||
|
|
|
@ -2,7 +2,7 @@ let
|
||||||
|
|
||||||
# host used to install stuff. (can be an onion id if you use torify)
|
# host used to install stuff. (can be an onion id if you use torify)
|
||||||
#installHost = "localhost";
|
#installHost = "localhost";
|
||||||
installHost = "adsf.onion";
|
installHost = "mobi.private";
|
||||||
|
|
||||||
#ops = import ../plops ;
|
#ops = import ../plops ;
|
||||||
ops = import ((import <nixpkgs> { }).fetchgit {
|
ops = import ((import <nixpkgs> { }).fetchgit {
|
||||||
|
@ -132,7 +132,7 @@ let
|
||||||
|
|
||||||
hostPattern = name:
|
hostPattern = name:
|
||||||
if name == "porani" then
|
if name == "porani" then
|
||||||
"${name}.insecure"
|
"${name}.secret"
|
||||||
else if name == "dummy" then
|
else if name == "dummy" then
|
||||||
"95.217.223.75"
|
"95.217.223.75"
|
||||||
else
|
else
|
||||||
|
@ -233,7 +233,7 @@ in pkgs.mkShell {
|
||||||
|
|
||||||
buildInputs = with pkgs;
|
buildInputs = with pkgs;
|
||||||
(servers [ "workhorse" "sputnik" "porani" "dummy" ])
|
(servers [ "workhorse" "sputnik" "porani" "dummy" ])
|
||||||
++ (desktops [ "pepe" "workout" "sterni" "mobi" ]) ++ [
|
++ (desktops [ "pepe" "workout" "sterni" "mobi" "sternchen" ]) ++ [
|
||||||
(pkgs.writers.writeBashBin "reformat" ''
|
(pkgs.writers.writeBashBin "reformat" ''
|
||||||
find ${
|
find ${
|
||||||
toString ./.
|
toString ./.
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
"sterni.private" = {
|
"sterni.private" = {
|
||||||
hostNames = [
|
hostNames = [
|
||||||
"sterni.private"
|
"sterni.private"
|
||||||
"sterni.insecure"
|
"sterni.secret"
|
||||||
config.module.cluster.services.tinc.private.hosts.sterni.tincIp
|
config.module.cluster.services.tinc.private.hosts.sterni.tincIp
|
||||||
config.module.cluster.services.tinc.insecure.hosts.sterni.tincIp
|
config.module.cluster.services.tinc.secret.hosts.sterni.tincIp
|
||||||
];
|
];
|
||||||
publicKey =
|
publicKey =
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDyHmHJy2Va45p9mn+Hj3DyaY5yxnQIKvXeACHjzgSKt";
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDyHmHJy2Va45p9mn+Hj3DyaY5yxnQIKvXeACHjzgSKt";
|
||||||
|
@ -24,9 +24,9 @@
|
||||||
"sputnik.private" = {
|
"sputnik.private" = {
|
||||||
hostNames = [
|
hostNames = [
|
||||||
"sputnik.private"
|
"sputnik.private"
|
||||||
"sputnik.insecure"
|
"sputnik.secret"
|
||||||
config.module.cluster.services.tinc.private.hosts.sputnik.tincIp
|
config.module.cluster.services.tinc.private.hosts.sputnik.tincIp
|
||||||
config.module.cluster.services.tinc.insecure.hosts.sputnik.tincIp
|
config.module.cluster.services.tinc.secret.hosts.sputnik.tincIp
|
||||||
];
|
];
|
||||||
publicKey =
|
publicKey =
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICTLXDTqUtl0BQgzH1O7CRulGCRN1P4KU8imL/wjYFh8";
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICTLXDTqUtl0BQgzH1O7CRulGCRN1P4KU8imL/wjYFh8";
|
||||||
|
@ -34,17 +34,17 @@
|
||||||
"workhorse.private" = {
|
"workhorse.private" = {
|
||||||
hostNames = [
|
hostNames = [
|
||||||
"workhorse.private"
|
"workhorse.private"
|
||||||
"workhorse.insecure"
|
"workhorse.secret"
|
||||||
config.module.cluster.services.tinc.private.hosts.workhorse.tincIp
|
config.module.cluster.services.tinc.private.hosts.workhorse.tincIp
|
||||||
config.module.cluster.services.tinc.insecure.hosts.workhorse.tincIp
|
config.module.cluster.services.tinc.secret.hosts.workhorse.tincIp
|
||||||
];
|
];
|
||||||
publicKey =
|
publicKey =
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaK0Vv33TuGQa/B5p54sGilgpYvfKkBaBGlEBpIk1QB";
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaK0Vv33TuGQa/B5p54sGilgpYvfKkBaBGlEBpIk1QB";
|
||||||
};
|
};
|
||||||
"porani.insecure" = {
|
"porani.secret" = {
|
||||||
hostNames = [
|
hostNames = [
|
||||||
"porani.insecure"
|
"porani.secret"
|
||||||
config.module.cluster.services.tinc.insecure.hosts.porani.tincIp
|
config.module.cluster.services.tinc.secret.hosts.porani.tincIp
|
||||||
];
|
];
|
||||||
publicKey =
|
publicKey =
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOKNtRWVrqADgAMtTSWgnpp8gRKUtn4QUMFzQ78fC+aK";
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOKNtRWVrqADgAMtTSWgnpp8gRKUtn4QUMFzQ78fC+aK";
|
||||||
|
|
|
@ -27,7 +27,7 @@ with lib; {
|
||||||
id =
|
id =
|
||||||
"6YOIA4E-X52ZD5Z-FPNWPRS-77QIMMU-VDIXVZB-6BPQN7A-FFJDU4W-EXEGFAI";
|
"6YOIA4E-X52ZD5Z-FPNWPRS-77QIMMU-VDIXVZB-6BPQN7A-FFJDU4W-EXEGFAI";
|
||||||
addresses =
|
addresses =
|
||||||
[ "tcp://porani.insecure:22000" "tcp://porani.insecure:21027" ];
|
[ "tcp://porani.secret:22000" "tcp://porani.secret:21027" ];
|
||||||
};
|
};
|
||||||
} // {
|
} // {
|
||||||
smartphone = {
|
smartphone = {
|
||||||
|
|
|
@ -44,7 +44,7 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# nix-shell -p tinc_pre --run "tinc --config . generate-keys 4096"
|
# nix-shell -p tinc_pre --run "tinc --config . generate-keys 4096"
|
||||||
"insecure" = {
|
"secret" = {
|
||||||
networkSubnet = "10.123.42.0/24";
|
networkSubnet = "10.123.42.0/24";
|
||||||
port = 721;
|
port = 721;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
@ -54,6 +54,11 @@ in {
|
||||||
privateEd25519KeyFile = toString <secrets/tinc/ed25519_key>;
|
privateEd25519KeyFile = toString <secrets/tinc/ed25519_key>;
|
||||||
privateRsaKeyFile = toString <secrets/tinc/rsa_key>;
|
privateRsaKeyFile = toString <secrets/tinc/rsa_key>;
|
||||||
hosts = {
|
hosts = {
|
||||||
|
sternchen = {
|
||||||
|
tincIp = "10.123.42.25";
|
||||||
|
# publicKey = lib.fileContents <assets/tinc/sterni_host_file>;
|
||||||
|
publicKey = lib.fileContents <assets/tinc/sternchen_host_file>;
|
||||||
|
};
|
||||||
sterni = {
|
sterni = {
|
||||||
tincIp = "10.123.42.24";
|
tincIp = "10.123.42.24";
|
||||||
# publicKey = lib.fileContents <assets/tinc/sterni_host_file>;
|
# publicKey = lib.fileContents <assets/tinc/sterni_host_file>;
|
||||||
|
|
|
@ -15,7 +15,7 @@ with lib; {
|
||||||
identitiesOnly = true;
|
identitiesOnly = true;
|
||||||
user = "root";
|
user = "root";
|
||||||
};
|
};
|
||||||
"*.insecure" = {
|
"*.secret" = {
|
||||||
identityFile = "~/.ssh/card_rsa.pub";
|
identityFile = "~/.ssh/card_rsa.pub";
|
||||||
identitiesOnly = true;
|
identitiesOnly = true;
|
||||||
user = "root";
|
user = "root";
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
system.custom.mainUser = {
|
system.custom.mainUser = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "palo";
|
userName = lib.mkDefault "palo";
|
||||||
authorizedKeyFiles =
|
authorizedKeyFiles =
|
||||||
config.users.users.root.openssh.authorizedKeys.keyFiles;
|
config.users.users.root.openssh.authorizedKeys.keyFiles;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue