diff --git a/.gitignore b/.gitignore index e6d1938..b689d66 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Local Server Settings +.local + # Prerequisites *.d .DS_Store @@ -143,6 +146,7 @@ web_modules/ .env .env.* !.env.example +!docs/examples/.env.telemost.server.example # parcel-bundler cache (https://parceljs.org/) .cache diff --git a/docs/docker.md b/docs/docker.md new file mode 100644 index 0000000..f92f6e6 --- /dev/null +++ b/docs/docker.md @@ -0,0 +1,104 @@ +# Локальная настройка Docker + +Здесь описан один из способов запуска сервера olcrtc с локальной конфигурацией Docker. + +## Идея + +- держать изменяемые Docker-файлы в скрытой папке `.local` +- хранить конфигурационные файлы вне Git, в папке `.local` +- позволять пользователям обновлять репозиторий обычным `git pull` + +## 1. Клонирование репозитория + +```bash +git clone https://github.com/openlibrecommunity/olcrtc.git +cd olcrtc +``` + +## 2. Обновление до последней версии + +Чтобы получить новую версию из upstream, выполните команду ниже: + +```bash +git pull https://github.com/openlibrecommunity/olcrtc.git -recurse-submodules +``` + +## 3. Папка для локальных конфигураций + +Создайте директорию `.local` в корне репозитория: + +```bash +mkdir -p .local +``` + +Эта папка должна содержать файлы, которые будут использоваться только на вашей сервере. + +## 4. Скопируйте docker-compose.yml в `.local` + +Скопируйте файл ``docker-compose.yml`` (есть в репозитории), чтобы ваша локальная версия не перезаписывалась при следующем обноволении репозитория через ``git pull``: + +```bash +cp docker-compose.server.yml .local/docker-compose.server.yml +``` + +Если файл `docker-compose.yml` позже изменится, скопируйте его снова этой же командой после `git pull`. + +## 5. Создайте локальный файл окружения + +Создайте `.local/.env` и заполните значения выполнения в соответствии с выбранным типом подключения. + +Пример можно найти в `docs/examples/.env.telemost.server.example`. + +## 6. Запуск OLCRTC + +Запуск контейнеризированного сервера используя ``docker-compose.server.yml`` и локальный ``.env``: + +```bash +docker compose -f .local/docker-compose.server.yml --env-file .local/.env up -d +``` + +Проверка состояния контейнера: + +```bash +docker compose -f .local/docker-compose.server.yml --env-file .local/.env ps +``` + + Просмотр логов контейнера: + +```bash +docker compose -f .local/docker-compose.server.yml --env-file .local/.env logs -f +docker logs olcrtc-server +``` + +## 7. Обновление контейнера + +Запустить команду ниже для получения новой версии репозитория из облака: + +```bash +git pull https://github.com/openlibrecommunity/olcrtc.git +``` + +После каждого обновления сравните новый и старый файл: + +```bash +diff -wy .local/docker-compose.yml docker-compose.server.yml +``` + +Если есть отличия скопируйте файл из корня в папку ``.local``: + +```bash +cp docker-compose.server.yml .local/docker-compose.server.yml +``` + +Затем перезапустите контейнер командами ниже: + +```bash +docker compose -f .local/docker-compose.server.yml down +docker compose -f .local/docker-compose.server.yml --env-file .local/.env up -d +``` + +## Примечания + +- Храните все локальные Docker-файлы внутри отдельной папки `.local`. +- Не добавляйте `.local` в репозиторий (она должна быть в файле ``.gitignore``) +- Держите общую документацию в `docs/`, а специфичные настройки в `.local`. diff --git a/docs/examples/.env.telemost.server.example b/docs/examples/.env.telemost.server.example new file mode 100644 index 0000000..fc3e57e --- /dev/null +++ b/docs/examples/.env.telemost.server.example @@ -0,0 +1,37 @@ +OLCRTC_MODE=srv +OLCRTC_CARRIER=telemost +OLCRTC_TRANSPORT=vp8channel + +# Telemost-specific session values. +OLCRTC_ROOM_ID=12345678901234 +OLCRTC_CLIENT_ID=default +OLCRTC_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef +OLCRTC_KEY_FILE=/var/lib/olcrtc/key.hex + +# Network and runtime defaults used by the server compose. +OLCRTC_DNS=8.8.8.8:53 +OLCRTC_SOCKS_PROXY= +OLCRTC_SOCKS_PROXY_PORT=1080 +OLCRTC_DEBUG=false + +# Video-channel settings accepted by docker-compose.server.yml. +OLCRTC_VIDEO_W=0 +OLCRTC_VIDEO_H=0 +OLCRTC_VIDEO_FPS=0 +OLCRTC_VIDEO_BITRATE= +OLCRTC_VIDEO_HW=none +OLCRTC_VIDEO_CODEC=qrcode +OLCRTC_VIDEO_QR_SIZE=0 +OLCRTC_VIDEO_QR_RECOVERY=low +OLCRTC_VIDEO_TILE_MODULE=0 +OLCRTC_VIDEO_TILE_RS=0 + +# VP8 transport settings. +OLCRTC_VP8_FPS=60 +OLCRTC_VP8_BATCH=64 + +# SEI transport settings. +OLCRTC_SEI_FPS=0 +OLCRTC_SEI_BATCH=0 +OLCRTC_SEI_FRAG=0 +OLCRTC_SEI_ACK=0 diff --git a/readme.md b/readme.md index d2a9945..7771234 100644 --- a/readme.md +++ b/readme.md @@ -37,6 +37,8 @@ Community ui client: [alananisimov/olcbox](https://github.com/alananisimov/olcbo [More info](docs/about.md) +[Docker setup](docs/docker.md) + [Client URI format](docs/uri.md) [Client subscription format](docs/sub.md)