├── config.json ├── README.md └── install.sh /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "bridge": { 3 | "name": "HomeBridge", 4 | "username": "CC:22:3D:E3:CE:30", 5 | "port": 51826, 6 | "pin": "031-45-154" 7 | }, 8 | "accessories": [ 9 | ], 10 | "platforms": [ 11 | { 12 | "platform": "config", 13 | "name": "Config", 14 | "port": 8080, 15 | "sudo": true, 16 | "temp": "/sys/class/thermal/thermal_zone0/temp", 17 | "standalone": true, 18 | "restart": "sudo -n systemctl restart homebridge homebridge-config-ui-x", 19 | "log": { 20 | "method": "systemd", 21 | "service": "homebridge" 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Homebridge setup script 2 | 3 | Итак, что же делает этот скрипт? 4 | 5 | * Добавляет репозиторий nodejs 11.x 6 | * Ставит `nodejs` и `libavahi-compat-libdnssd-dev` 7 | * Через npm ставит `homebridge` 8 | * Создает папку `.homebridge` в домашнем каталоге текущего пользователя 9 | * Кладет туда файл конфигурации с данными для запуска веб-интерфейса 10 | * Ставит сам плагин веб-морды - `homebridge-config-ui-x` 11 | * Создает `homebridge.service` и запускает его 12 | * Создает отдельный `homebridge-config-ui-x.service` и запускает его 13 | 14 | Теперь даже при перезагрузке homebridge с кривым конфигом, Вы сможете восстановить его работоспособность используя веб-интерфейс. 15 | 16 | Процесс установки займет минут 10, в итоге Вы получите работоспособный homebridge и его веб-морду на порту `8080`. -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash - 4 | sudo apt install -y nodejs libavahi-compat-libdnssd-dev 5 | [ ! -d ~/.homebridge ] && mkdir ~/.homebridge && cp config.json ~/.homebridge 6 | 7 | sudo npm i -g --unsafe-perm homebridge homebridge-config-ui-x 8 | 9 | sudo bash -c "cat > /etc/systemd/system/homebridge-config-ui-x.service" << EOL 10 | [Unit] 11 | Description=Homebridge Config UI X 12 | After=syslog.target network-online.target 13 | 14 | [Service] 15 | Type=simple 16 | User=$USER 17 | ExecStart=$(which homebridge-config-ui-x) -U $HOME/.homebridge -I 18 | Restart=on-failure 19 | RestartSec=3 20 | KillMode=process 21 | CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_CHOWN CAP_FOWNER CAP_DAC_OVERRIDE CAP_AUDIT_WRITE CAP_SYS_ADMIN 22 | AmbientCapabilities=CAP_NET_RAW 23 | 24 | [Install] 25 | WantedBy=multi-user.target 26 | EOL 27 | 28 | sudo bash -c "cat > /etc/systemd/system/homebridge.service" << EOL 29 | [Unit] 30 | Description=Node.js HomeKit Server 31 | After=syslog.target network-online.target 32 | 33 | [Service] 34 | Type=simple 35 | User=$USER 36 | ExecStart=$(which homebridge) -U $HOME/.homebridge -I 37 | Restart=on-failure 38 | RestartSec=3 39 | KillMode=process 40 | 41 | [Install] 42 | WantedBy=multi-user.target 43 | EOL 44 | 45 | sudo systemctl daemon-reload 46 | sudo systemctl enable homebridge 47 | sudo systemctl start homebridge 48 | sudo systemctl enable homebridge-config-ui-x 49 | sudo systemctl start homebridge-config-ui-x 50 | --------------------------------------------------------------------------------