Compare commits
No commits in common. "73ff7e32399522a6f6316c832ccca0606f64a062" and "b2256f245906c1c2c61d9dd888e10a8cebd6cfc2" have entirely different histories.
73ff7e3239
...
b2256f2459
|
@ -3,15 +3,10 @@
|
|||
globals,
|
||||
nodes,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.persistence."/persist".directories = [
|
||||
{
|
||||
directory = "/var/lib/private/esphome";
|
||||
mode = "0700";
|
||||
}
|
||||
{
|
||||
directory = config.services.home-assistant.configDir;
|
||||
user = "hass";
|
||||
|
@ -19,21 +14,9 @@
|
|||
mode = "0700";
|
||||
}
|
||||
];
|
||||
|
||||
services.esphome = {
|
||||
enable = true;
|
||||
address = "0.0.0.0";
|
||||
port = 3001;
|
||||
#allowedDevices = lib.mkForce ["/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0"];
|
||||
# TODO instead deny the zigbee device
|
||||
};
|
||||
|
||||
wireguard.services = {
|
||||
client.via = "nucnix";
|
||||
firewallRuleForNode.${globals.services.nginx.host}.allowedTCPPorts = [
|
||||
3000
|
||||
3001
|
||||
];
|
||||
firewallRuleForNode.nucnix-nginx.allowedTCPPorts = [ 3000 ];
|
||||
};
|
||||
services.home-assistant = {
|
||||
enable = true;
|
||||
|
@ -49,12 +32,6 @@
|
|||
"esphome"
|
||||
#"zha"
|
||||
"mqtt"
|
||||
"ollama"
|
||||
"solaredge"
|
||||
];
|
||||
customComponents = with pkgs.home-assistant-custom-components; [
|
||||
homematicip_local
|
||||
pkgs.havartastorage
|
||||
];
|
||||
config = {
|
||||
http = {
|
||||
|
@ -103,23 +80,15 @@
|
|||
gtts
|
||||
fritzconnection
|
||||
adguardhome
|
||||
aiosolaredge
|
||||
zlib-ng
|
||||
stringcase
|
||||
hahomematic
|
||||
pymodbus
|
||||
];
|
||||
};
|
||||
networking.hosts = {
|
||||
"${nodes.${globals.services.adguardhome.host}.config.wireguard.services.ipv4}" = [
|
||||
"adguardhome.internal"
|
||||
];
|
||||
"${nodes.${globals.services.ollama.host}.config.wireguard.services.ipv4}" = [
|
||||
"ollama.internal"
|
||||
];
|
||||
};
|
||||
age.secrets."home-assistant-secrets.yaml" = {
|
||||
rekeyFile = config.node.secretsDir + "/secrets.yaml.age";
|
||||
rekeyFile = "${config.node.secretsDir}/secrets.yaml.age";
|
||||
owner = "hass";
|
||||
};
|
||||
systemd.services.home-assistant = {
|
||||
|
|
|
@ -148,7 +148,6 @@
|
|||
groups."adguardhome.access" = { };
|
||||
groups."octoprint.access" = { };
|
||||
groups."invidious.access" = { };
|
||||
groups."esphome.access" = { };
|
||||
|
||||
systems.oauth2.oauth2-proxy = {
|
||||
displayName = "Oauth2-Proxy";
|
||||
|
@ -185,11 +184,6 @@
|
|||
"email"
|
||||
"profile"
|
||||
];
|
||||
scopeMaps."esphome.access" = [
|
||||
"openid"
|
||||
"email"
|
||||
"profile"
|
||||
];
|
||||
preferShortUsername = true;
|
||||
claimMaps.groups = {
|
||||
joinType = "array";
|
||||
|
@ -199,7 +193,6 @@
|
|||
valuesByGroup."ollama.access" = [ "ollama_access" ];
|
||||
valuesByGroup."octoprint.access" = [ "octoprint_access" ];
|
||||
valuesByGroup."invidious.access" = [ "invidious_access" ];
|
||||
valuesByGroup."esphome.access" = [ "esphome_access" ];
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ in
|
|||
recommendedSetup = true;
|
||||
virtualHosts."${globals.services.netbird.domain}".useACMEHost = "web";
|
||||
upstreams.fritz = {
|
||||
servers."${lib.net.cidr.host 1 "10.99.2.0/24"}:443" = { };
|
||||
servers."${lib.net.cidr.host 1 "10.99.2.0/24"}" = { };
|
||||
extraConfig = ''
|
||||
zone fritz 64k ;
|
||||
keepalive 5 ;
|
||||
|
@ -159,7 +159,6 @@ in
|
|||
(blockOf "homebox" { })
|
||||
(blockOf "homeassistant" { })
|
||||
(proxyProtect "ollama" { })
|
||||
(proxyProtect "esphome" { port = 3001; })
|
||||
(proxyProtect "firefly" { port = 80; })
|
||||
(blockOf "apispotify" {
|
||||
port = 3000;
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
{ config, globals, ... }:
|
||||
{ config, ... }:
|
||||
{
|
||||
wireguard.services = {
|
||||
client.via = "nucnix";
|
||||
firewallRuleForNode.${globals.services.nginx.host}.allowedTCPPorts = [
|
||||
config.services.open-webui.port
|
||||
];
|
||||
firewallRuleForNode.${globals.services.homeassistant.host}.allowedTCPPorts = [
|
||||
config.services.ollama.port
|
||||
];
|
||||
firewallRuleForNode.nucnix-nginx.allowedTCPPorts = [ config.services.open-webui.port ];
|
||||
};
|
||||
services.ollama = {
|
||||
host = "0.0.0.0";
|
||||
host = "localhost";
|
||||
port = 3001;
|
||||
enable = true;
|
||||
};
|
||||
|
@ -39,8 +34,6 @@
|
|||
directory = "/var/lib/private/open-webui";
|
||||
mode = "0700";
|
||||
}
|
||||
];
|
||||
environment.persistence."/renaultft".directories = [
|
||||
{
|
||||
directory = "/var/lib/private/ollama";
|
||||
mode = "0700";
|
||||
|
|
|
@ -33,7 +33,6 @@ in
|
|||
id = 30;
|
||||
cidrv4 = "10.99.${toString id}.0/24";
|
||||
cidrv6 = "fd${toString id}::/64";
|
||||
dns = false;
|
||||
};
|
||||
iot = rec {
|
||||
id = 40;
|
||||
|
@ -152,10 +151,6 @@ in
|
|||
domain = "hs.${globals.domains.web}";
|
||||
host = "elisabeth-homeassistant";
|
||||
};
|
||||
esphome = {
|
||||
domain = "esp.${globals.domains.web}";
|
||||
host = "elisabeth-homeassistant";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -115,9 +115,7 @@
|
|||
// mkContainer "oauth2-proxy" { }
|
||||
// mkContainer "vaultwarden" { }
|
||||
// mkContainer "ddclient" { }
|
||||
// mkContainer "ollama" {
|
||||
enableRenaultFT = true;
|
||||
}
|
||||
// mkContainer "ollama" { }
|
||||
// mkContainer "murmur" { }
|
||||
// mkContainer "homebox" { }
|
||||
// mkContainer "invidious" { }
|
||||
|
|
Binary file not shown.
|
@ -39,23 +39,24 @@ in
|
|||
id,
|
||||
cidrv4,
|
||||
internet,
|
||||
dns,
|
||||
...
|
||||
}:
|
||||
rec {
|
||||
inherit id;
|
||||
interface = "lan-${name}";
|
||||
subnet = cidrv4;
|
||||
subnet = "10.99.${toString id}.0/24";
|
||||
pools = [
|
||||
{
|
||||
pool = "${net.cidr.host 50 subnet} - ${net.cidr.host (-6) subnet}";
|
||||
}
|
||||
];
|
||||
option-data =
|
||||
lib.optional dns {
|
||||
name = "domain-name-servers";
|
||||
data = "${net.cidr.host globals.services.adguardhome.ip globals.net.vlans.services.cidrv4}";
|
||||
}
|
||||
[
|
||||
{
|
||||
name = "domain-name-servers";
|
||||
data = "${net.cidr.host globals.services.adguardhome.ip globals.net.vlans.services.cidrv4}";
|
||||
}
|
||||
]
|
||||
++ lib.optional internet {
|
||||
name = "routers";
|
||||
data = "${net.cidr.host 1 subnet}";
|
||||
|
@ -76,11 +77,6 @@ in
|
|||
hw-address = "48:9e:bd:5c:31:ac";
|
||||
ip-address = net.cidr.host 32 subnet;
|
||||
}
|
||||
{
|
||||
# varta
|
||||
hw-address = "00:0c:c6:06:7a:70";
|
||||
ip-address = net.cidr.host 20 subnet;
|
||||
}
|
||||
];
|
||||
}
|
||||
);
|
||||
|
|
|
@ -114,11 +114,6 @@ in
|
|||
default = true;
|
||||
description = "Whether this vlan is connected to the internet";
|
||||
};
|
||||
dns = mkOption {
|
||||
type = types.bool;
|
||||
default = vlanNetSubmod.config.internet;
|
||||
description = "Whether this vlan should utilize the internal dns server";
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
description = "The name of this VLAN";
|
||||
|
|
|
@ -9,7 +9,6 @@ _inputs: [
|
|||
mongodb-bin = prev.callPackage ./mongodb-bin.nix { };
|
||||
disneyplus = prev.callPackage ./disney.nix { };
|
||||
awakened-poe-trade = prev.callPackage ./awakened-poe-trade.nix { };
|
||||
havartastorage = prev.callPackage ./havartastorage.nix { };
|
||||
neovim-clean = prev.neovim-unwrapped.overrideAttrs (
|
||||
_neovimFinal: neovimPrev: {
|
||||
nativeBuildInputs = (neovimPrev.nativeBuildInputs or [ ]) ++ [ prev.makeWrapper ];
|
||||
|
@ -20,11 +19,6 @@ _inputs: [
|
|||
'';
|
||||
}
|
||||
);
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(_pythonFinal: _pythonPrev: {
|
||||
vartastorage = prev.callPackage ./pyvartastorage.nix { };
|
||||
})
|
||||
];
|
||||
|
||||
path-of-building = prev.path-of-building.overrideAttrs (old: {
|
||||
postFixup =
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildHomeAssistantComponent,
|
||||
python3Packages,
|
||||
}:
|
||||
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "Vip0r";
|
||||
domain = "varta_storage";
|
||||
version = "2025-1-9-unstable";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit owner;
|
||||
repo = "varta_storage";
|
||||
rev = "592cfd8692b24b131cadaa8c6280660fdc262886";
|
||||
hash = "sha256-u5VneR7s3V+NjoTnDYPAO2aJeqpDQwPu5Eko5CZQXTw=";
|
||||
};
|
||||
|
||||
dependencies = [
|
||||
python3Packages.vartastorage
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Send notifications with ntfy.sh and selfhosted ntfy-servers";
|
||||
homepage = "https://github.com/hbrennhaeuser/homeassistant_integration_ntfy";
|
||||
maintainers = with maintainers; [ koral ];
|
||||
license = licenses.gpl3;
|
||||
};
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "vartastorage";
|
||||
version = "2025.1.9";
|
||||
|
||||
disabled = python3Packages.pythonOlder "3.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Vip0r";
|
||||
repo = "vartastorage";
|
||||
rev = "5e24b25dbafeabceefd513001f3b8b6a598463a1";
|
||||
hash = "sha256-8eZOTQUbv7ing05aIYYJcP3zfLc91plC7QNqM7a3ZZQ=";
|
||||
};
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
build-system = [ ];
|
||||
|
||||
dependencies = [
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python module to interact with HomeMatic devices";
|
||||
homepage = "https://github.com/SukramJ/hahomematic";
|
||||
changelog = "https://github.com/SukramJ/hahomematic/blob/${src.tag}/changelog.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [
|
||||
dotlambda
|
||||
fab
|
||||
];
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue