Локальное развертывание Docker

WARNING

Обратите внимание: Локальное развертывание позволяет испытать все функции VoceSpace, но недоступно в публичной сети. Если вам нужно публичное развертывание, обратитесь к:

  1. Docker + Nginx
  2. Docker + Caddy

1. Установка Docker (Docker Engine|Desktop)

INFO

Для получения подробной информации об установке Docker или при возникновении проблем обратитесь к:

  1. Docker Engine Install
  2. Docker Desktop Install

Если вы новичок и не знакомы с командной строкой, мы рекомендуем установить Docker Desktop.

В приведенной ниже установке, если вы используете macOS или Windows, мы проведем вас через установку Docker Desktop.

2. Получение образа VoceSpace

VoceSpace имеет два типа образов:

  • amd: privoce/vocespace:latest
  • arm: privoce/vocespace:latest_arm

Поэтому вам нужно знать архитектуру вашего сервера для выбора, см.: help-просмотр архитектуры linux

1# amd
2docker pull privoce/vocespace:latest
3# arm
4docker pull privoce/vocespace:latest_arm

3. Копирование базовой конфигурации

Ниже приведена базовая конфигурация VoceSpace. Перед запуском контейнера вам нужно скопировать эту конфигурацию и указать её при запуске

1{
2  "livekit": {
3    "key": "devkey",
4    "secret": "secret",
5    "url": "wss://your.server.name" // modify ⚠️
6  },
7  "codec": "vp9",
8  "resolution": "1080p",
9  "maxBitrate": 3000000,
10  "maxFramerate": 30,
11  "priority": "medium",
12  "redis": { 
13    "enabled": true, 
14    "host": "your.ip",  // modify ⚠️
15    "port": 6379, 
16    "password": "vocespace", 
17    "db": 0 
18  },
19  "serverUrl": "your.server.name", // modify ⚠️
20  "hostToken": "vocespace",
21  "license": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6ImhhbkBwcml2b2NlLmNvbSIsImV4cGlyZXNfYXQiOjQ4OTEzMzQ0MDAsImNyZWF0ZWRfYXQiOjE3MzU2NjA4MDAsImRvbWFpbnMiOiIqIiwibGltaXQiOiJmcmVlIiwiaWQiOiI2NGUyMjYwZS0xMzQwLTQxNjQtOWNmZC0zMGUwMjhlYTg0ZWQifQ.T0vIHUCxv9j75lb92RDDaegpPO9W9hxWEXqZVidwL0E"
22}
WARNING

your.ip: IP-адрес хост-машины пользователя, можно просмотреть с помощью ifconfig | grep inet

1inet 127.0.0.1 netmask 0xff000000
2inet 192.168.31.138 netmask 0xffffff00 broadcast 192.168.31.255

В этом примере 192.168.31.138 — это IP вашего хоста, для redis можно использовать localhost

4. Запуск контейнера

1docker run -d \
2-p 3000:3000 \
3-v ${PWD}/vocespace.conf.json:/app/vocespace.conf.json \
4--name vocespace \
5privoce/vocespace:latest
NOTE

⚠️-v ${PWD}/vocespace.json:/app/vocespace.conf.json: Монтирование конфигурации

Вывод

  1. Docker CE: Если вы используете Linux, можете использовать docker ps для просмотра процессов, затем в браузере перейти к your_ip:3000 для просмотра запущенного приложения, затем использовать docker logs <container_id> для просмотра логов

  2. Docker Desktop: После запуска контейнера наблюдайте за выводом. Когда появится Ready on http://ip:3000, это означает, что локальное развертывание завершено

12025-05-29 02:44:09 ✅ Socket.IO установка завершена
22025-05-29 02:44:15 Конфигурация переменных окружения:
32025-05-29 02:44:15 LIVEKIT_API_KEY=devkey
42025-05-29 02:44:15 LIVEKIT_API_SECRET=secret
52025-05-29 02:44:15 LIVEKIT_URL=ws://localhost:7880
62025-05-29 02:44:15 NEXT_PUBLIC_BASE_PATH=
72025-05-29 02:44:15 PORT=3000
82025-05-29 02:44:15 HOST=0.0.0.0
92025-05-29 02:44:15 TURN_CREDENTIAL=
102025-05-29 02:44:15 TURN_URL=
112025-05-29 02:44:15 TURN_USERNAME=
122025-05-29 02:44:15 WEBHOOK=
132025-05-29 02:44:15 === 启动应用 ===
142025-05-29 02:44:16 > Ready on http://0.0.0.0:3000

4. Запуск livekit-server

VoceSpace требует livekit-server для сборки WebRTC и других связанных сервисов.

Скачать livekit-server

Macos
Windows
Linux
1brew update && brew install livekit

Запуск livekit-server

livekit-server --dev --bind 0.0.0.0

5. Загрузка и запуск Redis

Macos
Windows
Linux
1brew install redis
2brew services start redis -- --requirepass "vocespace" --bind 0.0.0.0 --protected-mode no --daemonize yes

Примечания для облачных серверов

Настройка группы безопасности/брандмауэра

При использовании облачных серверов, таких как Alibaba Cloud, Tencent Cloud, Google Cloud и т.д., вам необходимо настроить группу безопасности/брандмауэр сервера

port type ingress/egress allow ip
3000 tcp ingress 0.0.0.0/0 Ipv4
3000 tcp egress 0.0.0.0/0 Ipv4
7880 tcp ingress 0.0.0.0/0 Ipv4
7881 tcp ingress 0.0.0.0/0 Ipv4
80 tcp ingress 0.0.0.0/0 Ipv4
443 tcp ingress 0.0.0.0/0 Ipv4
50000~60000 udp ingress 0.0.0.0/0 Ipv4
6379 tcp ingress 0.0.0.0/0 Ipv4