# System Stats Daemon An Elixir application that runs as a systemd daemon to: 1. Publish system stats to MQTT every 30 seconds 2. Listen for commands over MQTT and log them to syslog ## Configuration Edit `config/config.exs` to configure MQTT connection: ```elixir config :system_stats_daemon, SystemStatsDaemon.MqttClient, host: "localhost", port: 1883, client_id: "system_stats_daemon", username: nil, password: nil, stats_topic: "system/stats", command_topic: "system/commands", publish_interval: 30_000 ``` ## Building ```bash mix deps.get mix compile ``` ## Running ```bash # Development mix run --no-halt # Production release MIX_ENV=prod mix release _build/prod/rel/system_stats_daemon/bin/system_stats_daemon start ``` ## Systemd Installation 1. Build production release 2. Copy binary to `/usr/local/bin/` 3. Copy `system_stats_daemon.service` to `/etc/systemd/system/` 4. Enable and start: ```bash sudo systemctl enable system_stats_daemon sudo systemctl start system_stats_daemon ``` ## Features - Publishes "Hello world" stats every 30 seconds to `system/stats` topic - Listens on `system/commands` topic and logs received messages - Configurable MQTT connection settings - Runs as systemd daemon with auto-restart - Logs to system journal