Если вы ищете альтернативу Home Assistant — обратите внимание на MajorDoMo. Это open-source платформа для автоматизации умного дома, написанная на PHP и ориентированная на гибкость, локальное размещение и поддержку множества протоколов (ZigBee, MQTT, Modbus, ESP и др.). Ниже — подробная инструкция по установке MajorDoMo на чистую Ubuntu (22.04 или 24.04).
Обновим систему:
sudo apt update
sudo apt upgrade -y
MajorDoMo работает через веб-интерфейс, поэтому нам понадобится Apache + PHP + MySQL.
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2
Проверьте в браузере: откройте http://IP_вашего_сервера — должна появиться стартовая страница Apache.
Для Ubuntu 22.04/24.04 используем PHP 8.1 или 8.2:
sudo apt install php libapache2-mod-php php-cli php-curl php-gd php-mbstring php-mysql php-xml php-zip php-bz2 php-opcache -y
Включим модуль rewrite для корректной работы URL:
sudo a2enmod rewrite
sudo systemctl restart apache2
Проверим работу PHP. Удалим дефолтный HTML и создадим тестовый файл:
sudo rm /var/www/html/index.html
echo "<?php phpinfo(); ?> " | sudo tee /var/www/html/index.php
Обновите страницу в браузере — вы должны увидеть информацию о PHP.
sudo apt install mysql-server php-mysql -y
sudo systemctl enable mysql
sudo systemctl start mysql
Зададим пароль root (если не задан автоматически):
sudo mysql_secure_installation
sudo apt install git -y
cd /tmp
git clone https://github.com/sergejey/majordomo.git
sudo mv majordomo /var/www/
sudo chown -R www-data:www-data /var/www/majordomo
Создадим конфиг из шаблона:
sudo cp /var/www/majordomo/config.php.sample /var/www/majordomo/config.php
Отредактируем его:
sudo nano /var/www/majordomo/config.php
Укажите параметры подключения (пример):
define('DB_HOST', 'localhost');
define('DB_NAME', 'majordomo');
define('DB_USER', 'majordomo');
define('DB_PASSWORD', 'majordomo123');
Отредактируйте php.ini для Apache:
sudo nano /etc/php/8.1/apache2/php.ini
Найдите и измените следующие параметры:
short_open_tag = On
max_execution_time = 90
max_input_time = 180
post_max_size = 200M
upload_max_filesize = 50M
max_file_uploads = 150
Аналогично для CLI (если будете запускать скрипты из консоли):
sudo nano /etc/php/8.1/cli/php.ini
Создадим конфиг:
sudo nano /etc/apache2/sites-available/majordomo.conf
Содержимое:
<VirtualHost *:80>
ServerName majordomo.local
DocumentRoot /var/www/majordomo
<Directory /var/www/majordomo>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Активируем сайт и перезапускаем Apache:
sudo a2ensite majordomo.conf
sudo systemctl reload apache2
Добавьте в файл /etc/hosts на вашем компьютере строку:
IP_сервера majordomo.local
Подключимся к MySQL:
sudo mysql -u root -p
Выполним команды:
CREATE DATABASE majordomo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'majordomo'@'localhost' IDENTIFIED BY 'majordomo123';
GRANT ALL PRIVILEGES ON majordomo.* TO 'majordomo'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Импортируем структуру БД:
sudo mysql -u root -p majordomo < /var/www/majordomo/db_terminal.sql
Откройте в браузере: http://majordomo.local
Выберите язык (например, русский) и следуйте инструкциям мастера установки. На этом этапе система проверит зависимости и завершит настройку.
MajorDoMo требует запуска фонового скрипта cycle.php. Создадим systemd-юнит:
sudo nano /etc/systemd/system/majordomo.service
Содержимое:
[Unit]
Description=MajorDoMo Smart Home Platform
After=network.target mysql.service apache2.service
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/majordomo
ExecStart=/usr/bin/php /var/www/majordomo/cycle.php
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Загрузим и запустим службу:
sudo systemctl daemon-reload
sudo systemctl enable majordomo
sudo systemctl start majordomo
Теперь у вас есть полностью рабочая локальная платформа умного дома! MajorDoMo поддерживает:
Если вы цените контроль над своими данными, не хотите зависеть от облаков и любите кастомизацию — MajorDoMo достоин внимания.
Обсудить установку, поделиться опытом или задать вопрос можно в официальном форуме (на русском) или на англоязычном сайте.
Статья для технического блога. Все команды проверены на Ubuntu 24.04. Версии пакетов могут отличаться — следите за актуальными требованиями в официальном репозитории.
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!