- Move Elixir code to server/ subdirectory for monorepo structure - Update flake.nix to provide packages and apps outputs for nix run support - Update nix/package.nix to accept src parameter instead of fetchgit - Add NixOS module export for easy consumption Now supports: nix run, nix build, and nix develop from git repo 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
19 lines
817 B
Elixir
19 lines
817 B
Elixir
import Config
|
|
|
|
# Get hostname for topic construction
|
|
hostname = case :inet.gethostname() do
|
|
{:ok, hostname} -> List.to_string(hostname)
|
|
_ -> "unknown"
|
|
end
|
|
|
|
# Runtime configuration that can use environment variables
|
|
config :systant, Systant.MqttClient,
|
|
host: System.get_env("SYSTANT_MQTT_HOST", "mqtt.home"),
|
|
port: String.to_integer(System.get_env("SYSTANT_MQTT_PORT", "1883")),
|
|
client_id: System.get_env("SYSTANT_CLIENT_ID", "systant"),
|
|
username: System.get_env("SYSTANT_MQTT_USERNAME"),
|
|
password: System.get_env("SYSTANT_MQTT_PASSWORD"),
|
|
stats_topic: System.get_env("SYSTANT_STATS_TOPIC", "systant/#{hostname}/stats"),
|
|
command_topic: System.get_env("SYSTANT_COMMAND_TOPIC", "systant/#{hostname}/commands"),
|
|
publish_interval: String.to_integer(System.get_env("SYSTANT_PUBLISH_INTERVAL", "30000"))
|