58 lines
1.9 KiB
Nix
58 lines
1.9 KiB
Nix
{ config, containerCfg, pkgs, lib, builder, name,... }:
|
|
let
|
|
serverCfg = config.syscfg.server;
|
|
version = "5.1.4";
|
|
|
|
in {
|
|
sops = false;
|
|
db = false;
|
|
paths = [
|
|
{ path="${serverCfg.configPath}/openhab/conf"; owner="9001:9001"; mode = "0755"; }
|
|
{ path="${serverCfg.configPath}/openhab/userdata"; owner="9001:9001"; mode = "0755"; }
|
|
{ path="${serverCfg.configPath}/openhab/addons"; owner="9001:9001"; mode = "0755"; }
|
|
];
|
|
|
|
containers = {
|
|
server = builder.mkContainer {
|
|
subdomain = containerCfg.subdomain;
|
|
image = "openhab/openhab:${version}";
|
|
port = 8080;
|
|
extraEnv = {
|
|
# USER_ID = "1000";
|
|
# GROUP_ID = "1000";
|
|
# CRYPTO_POLICY = "unlimited";
|
|
OPENHAB_HTTP_PORT = "8080";
|
|
};
|
|
extraOptions = [
|
|
# "--network=host"
|
|
];
|
|
overrides = {
|
|
volumes = [
|
|
"${serverCfg.configPath}/openhab/conf:/openhab/conf"
|
|
"${serverCfg.configPath}/openhab/userdata:/openhab/userdata"
|
|
"${serverCfg.configPath}/openhab/addons:/opt/openhab/addons"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
setup = {
|
|
trigger = "server";
|
|
script = pkgs.writeShellScript "setup" ''
|
|
# Pre-generate openHAB directories on the host
|
|
OHAB="${pkgs.podman}/bin/podman --events-backend=none exec openhab-server /openhab/runtime/bin/client -u openhab -p habopen"
|
|
sleep 20
|
|
exit 0
|
|
$OHAB feature:list
|
|
#TODO: Install DB (influx, mapdb,...)
|
|
#TODO: Install! telegram, matter, mqtt, bluetooth, chromecast, PublicTransportSwitzerland, zigbee, OpenMeteoWeatherForecast
|
|
|
|
#IF APPLE DEVICE: HomeKit (siri/apple bridge)
|
|
#IF UBIQUITY NET: Unifi + UnifiProtect (net/cam bridge)
|
|
#IF YAMAHA+EPSON: EpsonProjector + Yamaha (projector and sound)
|
|
#IF BAMBULAB DEVICE: BambuLab (notify print state)
|
|
#IF GARDENA DEVICE: Gardena (smart watering)
|
|
#IF AndroidTV/Jellyfin: Bind with lights + more
|
|
'';
|
|
};
|
|
} |