many changes
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
- get age key from SSH
|
||||
```console
|
||||
curl https://raw.githubusercontent.com/elitak/nixos-infect/master/nixos-infect | PROVIDER=hetznercloud NIX_CHANNEL=nixos-24.05 bash 2>&1 | tee /tmp/infect.log
|
||||
nix-shell -p ssh-to-age --run 'ssh-keyscan example.com | ssh-to-age'
|
||||
nix-shell -p ssh-to-age --run 'ssh-keyscan install.cloonar.com | ssh-to-age'
|
||||
```
|
||||
- fix secrets files
|
||||
```console
|
||||
|
||||
@@ -16,8 +16,10 @@
|
||||
./modules/networking.nix
|
||||
./modules/setupnetwork.nix
|
||||
./modules/firewall.nix
|
||||
./modules/dhcp4.nix
|
||||
./modules/unbound.nix
|
||||
# ./modules/dhcp4.nix
|
||||
# ./modules/unbound.nix
|
||||
|
||||
./modules/dnsmasq.nix
|
||||
./modules/avahi.nix
|
||||
./modules/openconnect.nix
|
||||
./modules/wireguard.nix
|
||||
|
||||
160
hosts/fw/modules/dnsmasq.nix
Normal file
160
hosts/fw/modules/dnsmasq.nix
Normal file
@@ -0,0 +1,160 @@
|
||||
{ config, ... }: {
|
||||
services.resolved.enable = false;
|
||||
|
||||
services.dnsmasq = {
|
||||
enable = true;
|
||||
settings = {
|
||||
port = "53";
|
||||
bind-interfaces = true; # force dnsmasq to bind immediately
|
||||
expand-hosts = true;
|
||||
|
||||
log-dhcp = true;
|
||||
|
||||
server = [
|
||||
"/epicenter.works/10.50.60.1"
|
||||
"/akvorrat.at/10.50.60.1"
|
||||
"9.9.9.9"
|
||||
"149.112.112.11"
|
||||
];
|
||||
|
||||
interface = [
|
||||
"lan"
|
||||
"server"
|
||||
"infrastructure"
|
||||
"multimedia"
|
||||
"guest"
|
||||
"smart"
|
||||
];
|
||||
|
||||
domain = [
|
||||
"cloonar.com,lan"
|
||||
"cloonar.com,server"
|
||||
"cloonar.com,infrastructure"
|
||||
"cloonar.multimedia,multimedia"
|
||||
"cloonar.smart,smart"
|
||||
"cloonar.guest,guest"
|
||||
];
|
||||
|
||||
dhcp-option = [
|
||||
"lan,15,cloonar.com" # domain name
|
||||
"lan,3,${config.networkPrefix}.96.1" # Gateway
|
||||
"lan,6,${config.networkPrefix}.96.1" # DNS
|
||||
"server,15,cloonar.com"
|
||||
"server,3,${config.networkPrefix}.97.1"
|
||||
"server,6,${config.networkPrefix}.97.1"
|
||||
"infrastructure,15,cloonar.com"
|
||||
"infrastructure,3,${config.networkPrefix}.101.1"
|
||||
"infrastructure,6,${config.networkPrefix}.101.1"
|
||||
"multimedia,15,cloonar.multimedia"
|
||||
"multimedia,3,${config.networkPrefix}.99.1"
|
||||
"multimedia,6,${config.networkPrefix}.99.1"
|
||||
"smart,15,cloonar.smart"
|
||||
"smart,3,${config.networkPrefix}.100.1"
|
||||
"smart,6,${config.networkPrefix}.100.1"
|
||||
"guest,15,cloonar.guest"
|
||||
"guest,3,${config.networkPrefix}.254.1"
|
||||
"guest,6,9.9.9.9"
|
||||
];
|
||||
|
||||
dhcp-range = [
|
||||
"lan,${config.networkPrefix}.96.100,${config.networkPrefix}.96.200,24h"
|
||||
"server,${config.networkPrefix}.97.100,${config.networkPrefix}.97.200,24h"
|
||||
"infrastructure,${config.networkPrefix}.101.100,${config.networkPrefix}.101.200,24h"
|
||||
"multimedia,${config.networkPrefix}.99.100,${config.networkPrefix}.99.200,24h"
|
||||
"smart,${config.networkPrefix}.100.100,${config.networkPrefix}.100.200,24h"
|
||||
"guest,${config.networkPrefix}.254.100,${config.networkPrefix}.254.200,24h"
|
||||
];
|
||||
|
||||
dhcp-host = [
|
||||
"30:05:5c:56:62:37,${config.networkPrefix}.96.100,brn30055c566237"
|
||||
"24:df:a7:b1:1b:74,${config.networkPrefix}.96.101,rmproplus-b1-1b-74"
|
||||
|
||||
"1a:c4:04:6e:29:bd,${config.networkPrefix}.97.2,omada"
|
||||
"02:00:00:00:00:03,${config.networkPrefix}.97.5,web-02"
|
||||
"02:00:00:00:00:04,${config.networkPrefix}.97.6,matrix"
|
||||
"ea:db:d4:c1:18:ba,${config.networkPrefix}.97.50,git"
|
||||
"c2:4f:64:dd:13:0c,${config.networkPrefix}.97.20,home-assistant"
|
||||
"1a:c4:04:6e:29:02,${config.networkPrefix}.101.25,deconz"
|
||||
|
||||
"c4:a7:2b:c7:ea:30,${config.networkPrefix}.99.10,metz"
|
||||
"f0:2f:9e:d4:3b:21,${config.networkPrefix}.99.11,firetv-living"
|
||||
"e4:2a:ac:32:3f:79,${config.networkPrefix}.99.13,xbox"
|
||||
"f0:2f:9e:c1:74:72,${config.networkPrefix}.99.21,firetv-bedroom"
|
||||
"30:05:5c:56:62:37,${config.networkPrefix}.99.100,brn30055c566237"
|
||||
|
||||
"fc:ee:28:03:63:e9,${config.networkPrefix}.100.148,k1c"
|
||||
"cc:50:e3:bc:27:64,${config.networkPrefix}.100.112,Nuki_Bridge_1A753F72"
|
||||
"34:6f:24:f3:af:ad,${config.networkPrefix}.100.137,daikin86604"
|
||||
"34:6f:24:c1:f8:54,${config.networkPrefix}.100.139,daikin53800"
|
||||
];
|
||||
|
||||
address = [
|
||||
"/fw.cloonar.com/${config.networkPrefix}.97.1"
|
||||
"/omada.cloonar.com/${config.networkPrefix}.97.2"
|
||||
"/pc.cloonar.com/${config.networkPrefix}.96.5"
|
||||
"/home-assistant.cloonar.com/${config.networkPrefix}.97.20"
|
||||
"/mopidy.cloonar.com/${config.networkPrefix}.97.21"
|
||||
"/snapcast.cloonar.com/${config.networkPrefix}.97.21"
|
||||
"/git.cloonar.com/${config.networkPrefix}.97.50"
|
||||
"/feeds.cloonar.com/188.34.191.144"
|
||||
|
||||
"/stage.wsw.at/10.254.235.22"
|
||||
"/prod.wsw.at/10.254.217.23"
|
||||
"/piwik.wohnservice-wien.at/10.254.240.109"
|
||||
"/wohnberatung-wien.at/10.254.240.109"
|
||||
"/wohnpartner-wien.at/10.254.240.109"
|
||||
"/wohnservice-wien.at/10.254.240.109"
|
||||
"/mieterhilfe.at/10.254.240.109"
|
||||
"/wienbautvor.at/10.254.240.109"
|
||||
"/wienwohntbesser.at/10.254.240.109"
|
||||
"/a.stage.wohnberatung-wien.at/10.254.240.110"
|
||||
"/a.stage.wohnpartner-wien.at/10.254.240.110"
|
||||
"/a.stage.wohnservice-wien.at/10.254.240.110"
|
||||
"/a.stage.mieterhilfe.at/10.254.240.110"
|
||||
"/a.stage.wienbautvor.at/10.254.240.110"
|
||||
"/a.stage.wienwohntbesser.at/10.254.240.110"
|
||||
"/b.stage.wohnberatung-wien.at/10.254.240.110"
|
||||
"/b.stage.wohnpartner-wien.at/10.254.240.110"
|
||||
"/b.stage.wohnservice-wien.at/10.254.240.110"
|
||||
"/b.stage.mieterhilfe.at/10.254.240.110"
|
||||
"/b.stage.wienbautvor.at/10.254.240.110"
|
||||
"/b.stage.wienwohntbesser.at/10.254.240.110"
|
||||
|
||||
"/web.hilgenberg-gmbh.de/91.107.197.169"
|
||||
# gaming
|
||||
"/foundry-vtt.cloonar.com/${config.networkPrefix}.97.5"
|
||||
|
||||
"/deconz.cloonar.multimedia/${config.networkPrefix}.97.22"
|
||||
|
||||
"/ddl-warez.to/172.67.184.30"
|
||||
"/cdnjs.cloudflare.com/104.17.24.14"
|
||||
|
||||
# esphome devices
|
||||
"/livingroom-bulb-1.cloonar.smart/${config.networkPrefix}.100.11"
|
||||
"/livingroom-bulb-2.cloonar.smart/${config.networkPrefix}.100.12"
|
||||
"/livingroom-bulb-3.cloonar.smart/${config.networkPrefix}.100.13"
|
||||
"/livingroom-bulb-4.cloonar.smart/${config.networkPrefix}.100.14"
|
||||
"/livingroom-bulb-5.cloonar.smart/${config.networkPrefix}.100.15"
|
||||
"/livingroom-bulb-6.cloonar.smart/${config.networkPrefix}.100.16"
|
||||
|
||||
"/bedroom-bulb-0.cloonar.smart/${config.networkPrefix}.100.21"
|
||||
"/bedroom-bulb-0.cloonar.smart/${config.networkPrefix}.100.22"
|
||||
"/bedroom-bulb-0.cloonar.smart/${config.networkPrefix}.100.23"
|
||||
"/bedroom-bulb-0.cloonar.smart/${config.networkPrefix}.100.24"
|
||||
|
||||
"/hallway-bulb-0.cloonar.smart/${config.networkPrefix}.100.31"
|
||||
"/hallway-bulb-0.cloonar.smart/${config.networkPrefix}.100.32"
|
||||
|
||||
"/bath-bulb-0.cloonar.smart/${config.networkPrefix}.100.41"
|
||||
"/bath-bulb-0.cloonar.smart/${config.networkPrefix}.100.42"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.dnsmasq = {
|
||||
requires = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
networking.firewall.allowedUDPPorts = [ 53 67 ];
|
||||
}
|
||||
@@ -34,6 +34,7 @@
|
||||
iifname "lan" tcp dport 5931 counter accept comment "Spice"
|
||||
iifname { "server", "vserver", "vm-*", "lan", "wg_cloonar" } counter accept comment "allow trusted to router"
|
||||
iifname { "multimedia", "smart", "infrastructure", "podman0", "setup" } udp dport { 53, 5353 } counter accept comment "DNS"
|
||||
iifname { "multimedia", "smart", "infrastructure", "server", "lan", "guest" } udp dport { 67 } counter accept comment "DHCP"
|
||||
iifname { "wan", "multimedia" } icmp type { echo-request, destination-unreachable, time-exceeded } counter accept comment "Allow select ICMP"
|
||||
|
||||
# Accept mDNS for avahi reflection
|
||||
|
||||
@@ -421,21 +421,62 @@
|
||||
"light.bathroom_bulb_2"
|
||||
];
|
||||
}
|
||||
{
|
||||
platform = "switch";
|
||||
name = "Hallway Switch";
|
||||
entity_id = "switch.hallway";
|
||||
}
|
||||
{
|
||||
platform = "group";
|
||||
name = "Hallway Lights";
|
||||
all = true;
|
||||
entities = [
|
||||
"light.hallway_switch"
|
||||
"light.hallway_light_switch_mini_switch"
|
||||
"light.hallway_bulb_1"
|
||||
"light.hallway_bulb_2"
|
||||
];
|
||||
}
|
||||
{
|
||||
platform = "template";
|
||||
lights = {
|
||||
hallway_group_proxy = {
|
||||
friendly_name = "Hallway Lights (Proxy)";
|
||||
# follow the real group’s on/off state
|
||||
value_template = "{{ is_state('light.hallway_lights','on') }}";
|
||||
turn_on = {
|
||||
service = "light.turn_on";
|
||||
data = { entity_id = "light.hallway_lights"; };
|
||||
};
|
||||
turn_off = {
|
||||
service = "light.turn_off";
|
||||
data = { entity_id = "light.hallway_lights"; };
|
||||
};
|
||||
# brightness support
|
||||
set_level = {
|
||||
service = "light.turn_on";
|
||||
data_template = {
|
||||
entity_id = "light.hallway_lights";
|
||||
brightness = "{{ brightness }}";
|
||||
};
|
||||
};
|
||||
# color temperature support (if you have CT-capable bulbs)
|
||||
set_temperature = {
|
||||
service = "light.turn_on";
|
||||
data_template = {
|
||||
entity_id = "light.hallway_lights";
|
||||
color_temp = "{{ color_temp }}";
|
||||
};
|
||||
};
|
||||
# RGB color support
|
||||
set_color = {
|
||||
service = "light.turn_on";
|
||||
data_template = {
|
||||
entity_id = "light.hallway_lights";
|
||||
rgb_color = [ "{{ red }}" "{{ green }}" "{{ blue }}" ];
|
||||
};
|
||||
};
|
||||
# always report as “available”
|
||||
availability_template = "true";
|
||||
# declare which color modes you need
|
||||
supported_color_modes = [ "brightness" "color_temp" "rgb" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
{
|
||||
platform = "switch";
|
||||
name = "Toilet Switch";
|
||||
|
||||
@@ -17,6 +17,7 @@ matrix-shared-secret: ENC[AES256_GCM,data:67imd3m6WBeGP/5Msmjy8B6sP983jMyWzRIzWg
|
||||
palworld: ENC[AES256_GCM,data:rdqChPt4gSJHS1D60+HJ+4m5mg35JbC+pOmevK21Y95QyAIeyBLVGhRYlOaUcqdZM2e4atyTTSf6z4nHsm539ddCbW7J2DCdF5PQkrAGDmmdTVq+jyJAT8gTrbXXCglT1wvFYY5dbf2NKA4ASJIA8bdVNuwRZU0CtFiishzLuc9m8ZcGCNwQ/+xkMZgkUAHYRlEJAZyMpXR6KkFftiR05JRAFczD4N7GXPPe+vyvgXg7QBGtf20Qd4SGBUw0zI/SNTRmifHUuc4Z6+Fe9JHgvTc3uFcTMVnty0fEuL+a29liaVdAFq8BnqJfc5CNV401ZSUeMbG41lCn1cegP/WChs9J6HXNrhWDgiXa6ln++NoKcfOHIfZVbYOCoOxFR6+YWeBU2+sHmdwI9j5XQf5Ly2hmg12j0Ds2Cn8k4PG5aQP+HT2bedqyxwSt6fi97A0Osnh4ig7+DzYAjSNLewbYLzVdK39VdvB9hqLto+yFS3gAaeYOHwPwtqa+COI85c55lHiyKHlSwPhBqYaaiDu00lQTUzq9R5vz6F/l+T3bUjuna5RryUu8yhnk5DyK834KycTOg4ETcZTqro6prfiEBxc+Utsc9JvEtZgwFv6fsVLOu7nHxuiYuvseZ4YA8LlYdwPJboMPO2XsuhwWtT1uz/rh2orH7/vsXvzA/kF8NFemWBEMVLYA8byC5ze8doiGDYp4T5AAf10nJB1ceQ==,iv:gs78fxhvo9KlTaR5nzs12/LdgPChSFPHD2k4VQp3ARo=,tag:lpWBOi9xh2cWkS+71KD/UQ==,type:str]
|
||||
ark: ENC[AES256_GCM,data:YYGyzoVIKI9Ac1zGOr0BEpd3fgBsvp1hSwAvfO07/EQdg8ufMWUkNvqNHDKN62ZK5A1NnY3JTA1p4gyZ4ryQeAOsbwqU1GSk2YKHFyPeEnpLz/Ml82KMsv7XPGXuKRXZ4v3UcLu0R8k1Q0gQsMWo4FjCs3FF5mVtJG/YWxxbCYHoBLJ/di5p0DgjuFgJBQknYBpuLzr+yIoeqEyN7XcGYAJO53trEJuOOxLILULifkqISHjZ66i5F1fHW0iUdRbmeWV4aOAeOrsQqXYv,iv:gJwV5ip84zHqpU0l0uESfWWOtcgihMvEEdLaeI+twcU=,tag:sy8udVQsKxV/jOqwhJmWAg==,type:str]
|
||||
firefox-sync: ENC[AES256_GCM,data:uAJAdyKAuXRuqCFl8742vIejU5RnAPpUxUFCC0s0QeXZR5oH2YOrDh+3vKUmckW4V1cIhSHoe+4+I4HuU5E73DDrJThfIzBEw+spo4HXwZf5KBtu3ujgX6/fSTlPWV7pEsDDsZ0y6ziKPADBDym8yEk0bU9nRedvTBUhVryo3aolzF/c+gJvdeDvKUYa8+8=,iv:yuvE4KG7z7Rp9ZNlLiJ2rh0keed3DuvrELzsfJu4+bs=,tag:HFo1A53Eva31NJ8fRE7TlA==,type:str]
|
||||
knot-tsig-key: ENC[AES256_GCM,data:H2jEkRSVSIJl1dSolAXj9uUmzD6eEh9zPpoajZLxfuuFt7/LJF8aCEHyk+Q=,iv:9aqywuaILYtejuZGd+Cy8oErrHIoL2XhL1g9HtcUn/o=,tag:K3SnVEXGC/NhlchU7OyA6Q==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
@@ -59,8 +60,8 @@ sops:
|
||||
WXJpUUxadERyYUExRFMzNzBXaUVET3cKG9ZwWy5YvTr/BAw/i+ZJos5trwRvaW5j
|
||||
eV/SHiEteZZtCuCVFAp3iolE/mJyu97nA2yFwWaLN86h+/xkOJsdqA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-03-01T22:14:10Z"
|
||||
mac: ENC[AES256_GCM,data:UWwjvi8jLNgu4l7ldMYtkAATm3y5+BSxbCuPN/e1OC4/3ULYJndqFLfTOMpqQbj2+uHo3onelK4f0MAJuSH0oUx58CclkNBBLE0RXafxbowa7kJtTNDfTboJNqH7rFmhGhqCtHAOOpKBuowqoOUHP5BtzZfucra0Q/pIJt5lma0=,iv:iJEW/mTbizioPSN8G+WqHSipx8P6VCDrVG/Cmk+MBUc=,tag:L4OkeKec5AZdCrpUrnqcOA==,type:str]
|
||||
lastmodified: "2025-05-01T20:36:09Z"
|
||||
mac: ENC[AES256_GCM,data:ZtXJcuwDpDlBl2xdRtMF1PwwqbW00Eps2ZZG5x4C2djAq+meXJCxKS9sNazQhMYFOqphQXe3JEhChykLxnJyWivY/Er1ig2sU6Ke1uVcfSP85B1/rpzhe/7QI+GBDWrkCk1O0xGKKj8fWt+Yv2MV8gw2XctdtJ9Md4imUhcK7zo=,iv:5NFH+7Z0alBiq/b94T40XJSCar2+BGaFB20z0Kc59fU=,tag:18n0tt17RNMyyE0eECH2kQ==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.4
|
||||
|
||||
@@ -25,7 +25,7 @@ in {
|
||||
./utils/modules/nur.nix
|
||||
./modules/appimage.nix
|
||||
./modules/sway/sway.nix
|
||||
./modules/printer.nix
|
||||
# ./modules/printer.nix
|
||||
# ./modules/cyberghost.nix
|
||||
./utils/modules/autoupgrade.nix
|
||||
./modules/puppeteer.nix
|
||||
|
||||
@@ -6,8 +6,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/dpolakovics/bento.git";
|
||||
rev = "8d911a02dc9af222ffb5892bbddd4a3895893959";
|
||||
sha256 = "sha256-9R3glZcjc+t8LKvo5HOAo+HzXFQ6GOtzehJpb7GjmYM=";
|
||||
rev = "73092673b194fd734d782f5b7e83dfbb5d169372";
|
||||
sha256 = "sha256-/37RJTjo+FJa1Flt59LrQbaJIcBid/z+Hy1xfhYGXNA=";
|
||||
};
|
||||
|
||||
buildInputs = [ ];
|
||||
|
||||
Reference in New Issue
Block a user