58 lines
1.9 KiB
Bash
58 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# FarmBox — скрипт установки на Mini PC / Raspberry Pi
|
|
# Запускать: curl -fsSL https://to.zeroday.su/install.sh | bash
|
|
# Или: chmod +x install.sh && ./install.sh
|
|
|
|
set -e
|
|
|
|
echo "╔══════════════════════════════════════════╗"
|
|
echo "║ FarmBox — Установка ║"
|
|
echo "╚══════════════════════════════════════════╝"
|
|
|
|
# Проверка Docker
|
|
if ! command -v docker &> /dev/null; then
|
|
echo "Установка Docker..."
|
|
curl -fsSL https://get.docker.com | sh
|
|
sudo usermod -aG docker $USER
|
|
fi
|
|
|
|
if ! command -v docker-compose &> /dev/null; then
|
|
echo "Установка Docker Compose..."
|
|
sudo apt-get install -y docker-compose-plugin
|
|
fi
|
|
|
|
# Запрос данных фермы
|
|
echo ""
|
|
read -p "Название фермы (пример: ООО Молоко): " FARM_NAME
|
|
read -p "ID фермы (пример: farm_001): " FARM_ID
|
|
read -p "Токен синхронизации (получить у поставщика): " SYNC_TOKEN
|
|
|
|
# Создаём .env
|
|
cat > .env << EOF
|
|
FARM_ID=${FARM_ID}
|
|
FARM_NAME=${FARM_NAME}
|
|
SYNC_TOKEN=${SYNC_TOKEN}
|
|
IOT_TOKEN=farmbox-iot-$(openssl rand -hex 8)
|
|
TZ=Europe/Moscow
|
|
EOF
|
|
|
|
echo ".env создан"
|
|
|
|
# Устанавливаем зависимости iot-bridge
|
|
cd iot-bridge && npm install --production && cd ..
|
|
cd sync-agent && npm install --production && cd ..
|
|
|
|
# Запускаем стек
|
|
docker compose up -d
|
|
|
|
echo ""
|
|
echo "✅ FarmBox запущен!"
|
|
echo ""
|
|
echo "Доступные сервисы:"
|
|
echo " farm-cmms: http://localhost:3005"
|
|
echo " Grafana: http://localhost:3001 (admin / farm2024)"
|
|
echo " Node-RED: http://localhost:1880"
|
|
echo " MQTT: localhost:1883"
|
|
echo ""
|
|
echo "Для просмотра логов: docker compose logs -f"
|