Развёртывание Docker в один клик
Разверните open-source версию FastBee с помощью Docker Compose — полное окружение готово за 10 минут. По сравнению с системным развёртыванием (на кит.) способ Docker не требует ручной установки компонентов и подходит большинству пользователей; если нужен тонкий контроль над каждым компонентом, выберите системное развёртывание.
Обзор страницы
Предварительные требования
- Linux / macOS / Windows (рекомендуется Linux-сервер)
- Docker 20.10+
- Docker Compose 2.0+
- Минимум 2 ядра CPU и 4 ГБ ОЗУ
- Не менее 10 ГБ свободного дискового пространства (для образов и томов данных)
- Порты 80, 443, 8080, 1883, 8083, 5061 (UDP), 8082 и др. не заняты; полное описание портов см. в разделе Установка и развёртывание (на кит.)
Перед развёртыванием можно проверить окружение Docker:
docker --version
docker-compose --versionУстановка в один клик
sudo wget -c https://hub.fastbee.cn/resource/install.sh && bash ./install.shВ ответ на запрос выберите open-source версию — скрипт автоматически загрузит и запустит все сервисы. После завершения установки выполните docker-compose ps, чтобы проверить состояние контейнеров, и запишите адреса доступа, выведенные скриптом.
Ручное развёртывание
Если скрипт в один клик недоступен или требуется собственная оркестрация, выполните развёртывание вручную по этому разделу.
1. Подготовка каталогов
mkdir -p /var/data/{mysql,redis,java,nginx,zlmedia}При ручном развёртывании нужно самостоятельно подготовить следующие монтируемые файлы; их можно получить из репозитория исходного кода и собрать по инструкции Системное развёртывание (на кит.):
| Путь | Содержимое |
|---|---|
/var/data/java/fastbee-admin.jar | jar-пакет backend-сервиса |
/var/data/nginx/vue | Собранный frontend (vue/dist) |
/var/data/nginx/nginx.conf | Конфигурация Nginx |
/var/data/mysql/mysql.cnf | Конфигурация MySQL |
/var/data/zlmedia/conf/config.ini | Конфигурация ZLMediaKit |
2. docker-compose.yml
version: '2'
networks:
network:
ipam:
driver: default
config:
- subnet: '177.7.0.0/16'
services:
mysql:
image: mysql:5.7
container_name: mysql
ports:
- 3306:3306
networks:
network:
ipv4_address: 177.7.0.11
volumes:
- /var/data/mysql/mysql:/var/lib/mysql
- /var/data/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
- /var/data/mysql/initdb:/docker-entrypoint-initdb.d
environment:
MYSQL_DATABASE: fastbee
MYSQL_ROOT_PASSWORD: iot@admin123
command:
['mysqld','--character-set-server=utf8','--collation-server=utf8_unicode_ci',
'--default-time-zone=+8:00','--lower-case-table-names=1']
redis:
image: redis:7.0.0
container_name: redis
ports:
- 6379:6379
networks:
network:
ipv4_address: 177.7.0.10
volumes:
- /var/data/redis:/usr/local/etc/redis
- /var/data/redis/data:/data
command: ['-- requirepass iot@admin123','-- appendonly yes']
java:
image: openjdk:8-jre
container_name: java
ports:
- 8080:8080
- 1883:1883
- 8083:8083
- 5061:5061/udp
depends_on:
- redis
- mysql
- zlmedia
volumes:
- /var/data/java/fastbee-admin.jar:/server.jar
- /var/data/java/uploadPath:/uploadPath
- /var/data/java/logs:/logs
entrypoint: java -jar /server.jar
nginx:
image: nginx:stable
container_name: nginx
ports:
- 80:80
- 443:443
depends_on:
- java
volumes:
- /var/data/nginx/vue:/usr/share/nginx/html
- /var/data/nginx/nginx.conf:/etc/nginx/nginx.conf
zlmedia:
image: zlmediakit/zlmediakit:master
container_name: zlmedia
ports:
- 8082:80
- 554:554
- 1935:1935
volumes:
- /var/data/zlmedia/conf/config.ini:/opt/media/conf/config.ini3. Запуск сервисов
docker-compose up -d
docker-compose ps # проверка состояния контейнеров4. Импорт базы данных
Импортируйте springboot/sql/fastbee.sql в MySQL.
docker exec -i mysql mysql -uroot -piot@admin123 fastbee < fastbee.sqlДоступ к системе
После завершения развёртывания откройте в браузере:
http://server-ip:80- Логин:
admin - Пароль:
admin123
Напоминание о безопасности
Сразу после первого входа измените пароль по умолчанию; пароли базы данных и Redis по умолчанию предназначены только для локального тестирования и в производственной среде должны быть заменены.
Проверка развёртывания
- В выводе
docker-compose psконтейнеры mysql, redis, java, nginx и zlmedia находятся в состоянии Up. - В браузере откройте
http://server-ipи войдите в консоль с учётными даннымиadmin/admin123. - Подключитесь клиентом MQTTX или аналогичным к порту
1883, чтобы проверить канал подключения устройств; параметры подключения и шаги тестирования см. в Подключение по MQTT.
Часто задаваемые вопросы
Q: Что делать, если порт занят? Измените сопоставление портов в docker-compose.yml, например - 8080:8080 на - 9090:8080.
Q: Как посмотреть журналы?
docker logs -f java # журнал backend-сервиса
docker logs -f mysql # журнал базы данныхQ: Что делать, если контейнер постоянно перезапускается? Сначала выполните docker logs <имя-контейнера> и посмотрите причину завершения. Типичные причины: конфликт портов, нехватка памяти или отсутствие смонтированных конфигурационных файлов; при ручном развёртывании особенно проверьте, что все файлы из шага 1 на месте.
Q: Страница не открывается или ошибка 502? Убедитесь, что контейнеры nginx и java запущены. При первом запуске backend выполняет инициализацию — дождитесь её завершения по docker logs -f java, затем открывайте страницу.
Q: Backend сообщает об ошибке подключения к базе данных? Убедитесь, что контейнер mysql работает нормально и пароль root совпадает с конфигурацией backend; при ручном развёртывании проверьте, что выполнен шаг 4 — импорт fastbee.sql.
Q: Как выполнить обновление? Замените /var/data/java/fastbee-admin.jar и перезапустите контейнер:
docker restart java

