Installation
homectl can be installed either as a standalone binary on your workstation or as a dedicated system service on a local server.
Prerequisites
Section titled “Prerequisites”- Operating System: Linux (Ubuntu/Debian, Arch, Fedora) or macOS (Darwin arm64/amd64).
- Go: 1.25+ (for building from source).
- Node.js: 20+ and
npm(to build the Web UI). - FFmpeg: Optional; required only for RTSP camera transcoding.
Method 1: Building from Source
Section titled “Method 1: Building from Source”To compile the latest binary on your local machine:
git clone https://github.com/ghchinoy/homectl.gitcd homectl
# Build the binarygo build -o homectl .
# Move to a system pathsudo mv homectl /usr/local/bin/Verify your installation:
homectl --helpMethod 2: Systemd Daemon Installation (Linux)
Section titled “Method 2: Systemd Daemon Installation (Linux)”For dedicated Linux hosts (such as a Raspberry Pi or home server), homectl provides an automated installer script:
./scripts/install.shWhat the installer does:
Section titled “What the installer does:”- Compiles the Go binary
homectl. - Installs npm dependencies and builds the production Web UI (
ui/dist/). - Installs the executable to
/usr/local/bin/homectl. - Copies web assets to
/usr/local/share/homectl/ui. - Creates, enables, and starts a
systemduser service:[Unit]Description=homectl Smart Home API ServerAfter=network.target[Service]ExecStart=/usr/local/bin/homectl serve --port 8086 --ui /usr/local/share/homectl/uiRestart=alwaysUser=<your-user>Environment=XDG_CONFIG_HOME=/home/<your-user>/.config[Install]WantedBy=multi-user.target
Managing the Service
Section titled “Managing the Service”# Check running statussystemctl status homectl
# Restart or stop the servicesudo systemctl restart homectlsudo systemctl stop homectl
# Stream real-time logsjournalctl -u homectl -fTo upgrade an existing installation after pulling git updates, rerun ./scripts/install.sh.