parent
cecbc8f708
commit
eca1792a70
25 changed files with 1 additions and 152 deletions
flake.lockflake.nix
machines
cherry
chungus
configuration.nixhass-mqtt.nixhass-zigbee2mqtt.nixhass.nixmedia-audiobookshelf.nixmedia-jellyfin.nixmedia-navidrome.nixmedia-share.nixmedia-syncthing.nixnetwork-tinc-retiolum.nixservice-atuin.nixservice-forgejo.nixservice-paperless-healthchecks.nixservice-s3.nixservice-taskwarrior.nixservice-vault.nixtopology.nixzerotier-controller.nix
usbstick/hardware-configuration
nix/topology
system/all
16
flake.lock
generated
16
flake.lock
generated
|
@ -1165,21 +1165,6 @@
|
||||||
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git"
|
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"retiolum": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737987273,
|
|
||||||
"narHash": "sha256-WQCLoDbthUO5PcdYDBxZZQgpQbEXab50EcwChkukxN4=",
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "retiolum",
|
|
||||||
"rev": "514fe96610f745435b89355822691b1961dc4857",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "retiolum",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"clan-core": "clan-core",
|
"clan-core": "clan-core",
|
||||||
|
@ -1198,7 +1183,6 @@
|
||||||
"permown": "permown",
|
"permown": "permown",
|
||||||
"polygon-art": "polygon-art",
|
"polygon-art": "polygon-art",
|
||||||
"private-parts": "private-parts",
|
"private-parts": "private-parts",
|
||||||
"retiolum": "retiolum",
|
|
||||||
"share-http": "share-http",
|
"share-http": "share-http",
|
||||||
"srvos": "srvos",
|
"srvos": "srvos",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
private-parts.inputs.nixpkgs.follows = "nixpkgs"; # only private input
|
private-parts.inputs.nixpkgs.follows = "nixpkgs"; # only private input
|
||||||
private-parts.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git?ref=main";
|
private-parts.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git?ref=main";
|
||||||
#private-parts.url = "git+file:///home/palo/dev/nixos/nixos-private-parts";
|
#private-parts.url = "git+file:///home/palo/dev/nixos/nixos-private-parts";
|
||||||
retiolum.url = "github:Mic92/retiolum";
|
|
||||||
share-http.inputs.nixpkgs.follows = "nixpkgs"; # only private input
|
share-http.inputs.nixpkgs.follows = "nixpkgs"; # only private input
|
||||||
share-http.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/share-host.git?ref=main";
|
share-http.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/share-host.git?ref=main";
|
||||||
srvos.url = "github:nix-community/srvos";
|
srvos.url = "github:nix-community/srvos";
|
||||||
|
@ -72,7 +71,6 @@
|
||||||
permown,
|
permown,
|
||||||
polygon-art,
|
polygon-art,
|
||||||
private-parts,
|
private-parts,
|
||||||
retiolum,
|
|
||||||
self,
|
self,
|
||||||
share-http,
|
share-http,
|
||||||
srvos,
|
srvos,
|
||||||
|
@ -275,7 +273,6 @@
|
||||||
# inputs.stylix.nixosModules.stylix # fixme: not working
|
# inputs.stylix.nixosModules.stylix # fixme: not working
|
||||||
permown.nixosModules.permown
|
permown.nixosModules.permown
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
# retiolum.nixosModules.retiolum # fixme: not working
|
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.loader.systemd-boot.configurationLimit = lib.mkDefault 10;
|
boot.loader.systemd-boot.configurationLimit = lib.mkDefault 10;
|
||||||
|
@ -413,7 +410,6 @@
|
||||||
healthchecks.nixosModules.default
|
healthchecks.nixosModules.default
|
||||||
zerotierModules
|
zerotierModules
|
||||||
nixos-hardware.nixosModules.framework-13th-gen-intel
|
nixos-hardware.nixosModules.framework-13th-gen-intel
|
||||||
retiolum.nixosModules.retiolum
|
|
||||||
private-parts.nixosModules.cherry
|
private-parts.nixosModules.cherry
|
||||||
homeManagerModules
|
homeManagerModules
|
||||||
stylixModules
|
stylixModules
|
||||||
|
@ -446,7 +442,6 @@
|
||||||
zerotierControllerModule
|
zerotierControllerModule
|
||||||
homeManagerModules
|
homeManagerModules
|
||||||
stylixModules
|
stylixModules
|
||||||
retiolum.nixosModules.retiolum
|
|
||||||
private-parts.nixosModules.chungus
|
private-parts.nixosModules.chungus
|
||||||
{
|
{
|
||||||
home-manager.users.mainUser = import ./homes/palo;
|
home-manager.users.mainUser = import ./homes/palo;
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
|
|
||||||
./network-tinc.nix
|
./network-tinc.nix
|
||||||
./network-tinc_retiolum.nix
|
|
||||||
./network-wireguard-wg0.nix
|
./network-wireguard-wg0.nix
|
||||||
./network-wireguard-wg1.nix
|
./network-wireguard-wg1.nix
|
||||||
|
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
factsGenerator,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
|
|
||||||
clan.core.facts.services.tinc_retiolum = factsGenerator.tinc { name = "retiolum"; };
|
|
||||||
|
|
||||||
networking.retiolum.port = 720;
|
|
||||||
networking.retiolum.nodename = "cherry";
|
|
||||||
|
|
||||||
healthchecks.localCommands.ping-retiolum = pkgs.writers.writeBash "ping-retiolum" ''
|
|
||||||
ping -c 1 -W 5 ${config.networking.retiolum.nodename}.r
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.tinc.networks.retiolum = {
|
|
||||||
ed25519PrivateKeyFile =
|
|
||||||
config.clan.core.facts.services.tinc_retiolum.secret."tinc.retiolum.ed25519_key.priv".path;
|
|
||||||
rsaPrivateKeyFile =
|
|
||||||
config.clan.core.facts.services.tinc_retiolum.secret."tinc.retiolum.rsa_key.priv".path;
|
|
||||||
};
|
|
||||||
|
|
||||||
#fileSystems."/retiolum/sicily" = {
|
|
||||||
# device = "//sicily.r/tonne";
|
|
||||||
# fsType = "cifs";
|
|
||||||
# options = [
|
|
||||||
# "guest"
|
|
||||||
# "nofail"
|
|
||||||
# "noauto"
|
|
||||||
# "ro"
|
|
||||||
# "rsize=16777216"
|
|
||||||
# "cache=loose"
|
|
||||||
# "x-systemd.after=network.target"
|
|
||||||
# ];
|
|
||||||
#};
|
|
||||||
}
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
./packages.nix
|
./packages.nix
|
||||||
|
|
||||||
./network-tinc-retiolum.nix # make sure no service is open for this vpn!
|
|
||||||
./network-tinc.nix
|
./network-tinc.nix
|
||||||
./network-wireguard.nix
|
./network-wireguard.nix
|
||||||
|
|
||||||
|
@ -77,7 +76,6 @@
|
||||||
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 4317 ];
|
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 4317 ];
|
||||||
|
|
||||||
healthchecks.closed.wg0.host = "10.100.0.2";
|
healthchecks.closed.wg0.host = "10.100.0.2";
|
||||||
healthchecks.closed.retiolum.host = "centauri.r";
|
|
||||||
|
|
||||||
services.printing.enable = false;
|
services.printing.enable = false;
|
||||||
|
|
||||||
|
|
|
@ -16,5 +16,4 @@
|
||||||
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [ 1883 ];
|
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [ 1883 ];
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 1883 ];
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 1883 ];
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.mqtt = [ 1883 ];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,11 +8,6 @@
|
||||||
{
|
{
|
||||||
imports = [ ./hass-mqtt.nix ];
|
imports = [ ./hass-mqtt.nix ];
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.zigbee2mqtt = [
|
|
||||||
1337
|
|
||||||
9666
|
|
||||||
];
|
|
||||||
|
|
||||||
services.zigbee2mqtt = {
|
services.zigbee2mqtt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dataDir = "/srv2/zigbee2mqtt";
|
dataDir = "/srv2/zigbee2mqtt";
|
||||||
|
|
|
@ -18,6 +18,4 @@
|
||||||
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 8123 ];
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 8123 ];
|
||||||
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 8123 ];
|
networking.firewall.interfaces.wg0.allowedUDPPorts = [ 8123 ];
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.hass = [ 8123 ];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,10 +15,6 @@ in
|
||||||
group = group;
|
group = group;
|
||||||
};
|
};
|
||||||
|
|
||||||
# make available in retiolum
|
|
||||||
#networking.firewall.interfaces."tinc.retiolum".allowedTCPPorts = [ port ];
|
|
||||||
#networking.firewall.interfaces."tinc.retiolum".allowedUDPPorts = [ port ];
|
|
||||||
|
|
||||||
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [ port ];
|
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [ port ];
|
||||||
networking.firewall.interfaces.enp0s31f6.allowedUDPPorts = [ port ];
|
networking.firewall.interfaces.enp0s31f6.allowedUDPPorts = [ port ];
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
{
|
{
|
||||||
services.jellyfin = {
|
services.jellyfin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true; # todo: will open for retiolum as well
|
openFirewall = true;
|
||||||
group = "media";
|
group = "media";
|
||||||
user = "media";
|
user = "media";
|
||||||
};
|
};
|
||||||
|
@ -15,7 +15,6 @@
|
||||||
healthchecks.http.jellyfin = {
|
healthchecks.http.jellyfin = {
|
||||||
url = "flix.${config.networking.hostName}.private";
|
url = "flix.${config.networking.hostName}.private";
|
||||||
};
|
};
|
||||||
healthchecks.closed.retiolum.ports.jellyfin = [ 8096 ];
|
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -11,8 +11,6 @@
|
||||||
expectedContent = "Navidrome";
|
expectedContent = "Navidrome";
|
||||||
};
|
};
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.navidrome = [ config.services.navidrome.settings.Port ];
|
|
||||||
|
|
||||||
services.navidrome = {
|
services.navidrome = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
|
|
@ -1,12 +1,6 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.share = [
|
|
||||||
137
|
|
||||||
138
|
|
||||||
139
|
|
||||||
445
|
|
||||||
];
|
|
||||||
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [
|
networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [
|
||||||
445
|
445
|
||||||
139
|
139
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
url = config.services.syncthing.guiAddress;
|
url = config.services.syncthing.guiAddress;
|
||||||
expectedContent = "syncthing";
|
expectedContent = "syncthing";
|
||||||
};
|
};
|
||||||
healthchecks.closed.retiolum.ports.syncthing-gui = [ 8384 ];
|
|
||||||
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
factsGenerator,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
clan.core.facts.services.tinc_retiolum = factsGenerator.tinc { name = "retiolum"; };
|
|
||||||
|
|
||||||
networking.retiolum.port = 720;
|
|
||||||
networking.retiolum.nodename = "chungus";
|
|
||||||
|
|
||||||
healthchecks.localCommands.ping-retiolum = pkgs.writers.writeBash "ping-retiolum" ''
|
|
||||||
ping -c 1 -W 5 ${config.networking.retiolum.nodename}.r
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.tinc.networks.retiolum = {
|
|
||||||
ed25519PrivateKeyFile =
|
|
||||||
config.clan.core.facts.services.tinc_retiolum.secret."tinc.retiolum.ed25519_key.priv".path;
|
|
||||||
rsaPrivateKeyFile =
|
|
||||||
config.clan.core.facts.services.tinc_retiolum.secret."tinc.retiolum.rsa_key.priv".path;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -6,8 +6,6 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.atuin = [ config.services.atuin.port ];
|
|
||||||
|
|
||||||
services.atuin = {
|
services.atuin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
host = "0.0.0.0";
|
host = "0.0.0.0";
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
expectedContent = "nixinate";
|
expectedContent = "nixinate";
|
||||||
};
|
};
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.forgejo = [ config.services.forgejo.settings.server.HTTP_PORT ];
|
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
statusPage = true;
|
statusPage = true;
|
||||||
|
|
|
@ -11,6 +11,5 @@
|
||||||
url = "http://paperless.chungus.private/accounts/login/?next=/";
|
url = "http://paperless.chungus.private/accounts/login/?next=/";
|
||||||
expectedContent = "paperless.chungus.private";
|
expectedContent = "paperless.chungus.private";
|
||||||
};
|
};
|
||||||
healthchecks.closed.retiolum.ports.paperless = [ config.services.paperless.port ];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
{ config, factsGenerator, ... }:
|
{ config, factsGenerator, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.s3 = [
|
|
||||||
9000
|
|
||||||
9001
|
|
||||||
];
|
|
||||||
|
|
||||||
healthchecks.http.s3 = {
|
healthchecks.http.s3 = {
|
||||||
url = "http://s3.chungus.private:9001/login";
|
url = "http://s3.chungus.private:9001/login";
|
||||||
expectedContent = "minio";
|
expectedContent = "minio";
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.taskwarrior-webui = [ 8080 ];
|
|
||||||
|
|
||||||
virtualisation.oci-containers = {
|
virtualisation.oci-containers = {
|
||||||
containers.taskwarrior-webui = {
|
containers.taskwarrior-webui = {
|
||||||
volumes = [
|
volumes = [
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.vault = [ 8200 ];
|
|
||||||
|
|
||||||
services.vault = {
|
services.vault = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#adress = "chungus.private:8200";
|
#adress = "chungus.private:8200";
|
||||||
|
|
|
@ -22,11 +22,5 @@ with config.lib.topology;
|
||||||
# type = "tinc";
|
# type = "tinc";
|
||||||
virtual = true;
|
virtual = true;
|
||||||
};
|
};
|
||||||
interfaces."tinc.retiolum" = {
|
|
||||||
network = "tinc.retiolum";
|
|
||||||
# type = "tinc";
|
|
||||||
virtual = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,8 +22,6 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
healthchecks.closed.retiolum.ports.vault = [ 9993 ];
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(zerotierCommand "zerotier-script-members" ''
|
(zerotierCommand "zerotier-script-members" ''
|
||||||
curl "http://localhost:9993/controller/network/''${NWID}/member" -H "X-ZT1-AUTH: ''${TOKEN}" | gojq
|
curl "http://localhost:9993/controller/network/''${NWID}/member" -H "X-ZT1-AUTH: ''${TOKEN}" | gojq
|
||||||
|
|
|
@ -50,7 +50,6 @@
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
|
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.tinc.private.useDHCP = lib.mkDefault true;
|
# networking.interfaces.tinc.private.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.tinc.retiolum.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.tinc.secret.useDHCP = lib.mkDefault true;
|
# networking.interfaces.tinc.secret.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.virbr0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.virbr0.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
|
@ -20,8 +20,4 @@ with config.lib.topology;
|
||||||
cidrv4 = "10.23.42.0/24";
|
cidrv4 = "10.23.42.0/24";
|
||||||
};
|
};
|
||||||
|
|
||||||
networks."tinc.retiolum" = {
|
|
||||||
name = "tinc retiolum";
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
#on-failure = {
|
|
||||||
# enable = true;
|
|
||||||
# plans = {
|
|
||||||
# tinc_private.name = "tinc.private";
|
|
||||||
# tinc_retiolum.name = "tinc.retiolum";
|
|
||||||
# sshd.name = "sshd";
|
|
||||||
# tor.name = "tor";
|
|
||||||
# dnsmasq.name = "dnsmasq";
|
|
||||||
# #backup_on_workhorse.name = "backup.on-workhorse.private";
|
|
||||||
# #backup_on_workout.name = "backup.on-workout.private";
|
|
||||||
# #backup_on_porani.name = "backup.on-porani.private";
|
|
||||||
# syncthing.name = "syncthing";
|
|
||||||
# };
|
|
||||||
#};
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue