From 96f1ace9ad267f99f8e23391e16e1cf47de9f08b Mon Sep 17 00:00:00 2001 From: Yuriy Samorodov Date: Sat, 23 May 2026 19:39:42 +0200 Subject: [PATCH 1/2] (feat) Local Docker instructions --- .gitignore | 4 + docs/docker.md | 94 ++++++++++++++++++++++ docs/examples/.env.telemost.server.example | 37 +++++++++ readme.md | 2 + 4 files changed, 137 insertions(+) create mode 100644 docs/docker.md create mode 100644 docs/examples/.env.telemost.server.example 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..cc7f706 --- /dev/null +++ b/docs/docker.md @@ -0,0 +1,94 @@ +# Docker Local Setup + +This guide shows one way to run OLCRTC with a local-only Docker setup. + +## Main idea + +- keep the editable Docker files in a hidden `.local` folder +- keep config files out of Git in the `.local` folder +- allow users to update repository normally with `git pull` + +## 1. Clone the repository + +```bash +git clone https://github.com/openlibrecommunity/olcrtc.git +cd olcrtc +``` + +## 2. Update to the latest version + +When you want to get a newer version from upstream, run: + +```bash +git pull https://github.com/openlibrecommunity/olcrtc.git +``` + +If you use submodules in your environment, you can keep the same pull flow and add `--recurse-submodules`. + +## 3. Create the local folder + +Create a `.local` directory in the repository root: + +```bash +mkdir -p .local +``` + +This folder should contain files that belong only to your machine. + +## 4. Copy the server compose file into `.local` + +Copy the server compose file so your local version does not get overwritten by the next pull: + +```bash +cp docker-compose.server.yml .local/docker-compose.server.yml +``` + +If the upstream compose file changes later, copy it again after pulling updates. + +## 5. Create the local env file + +Create `.local/.env` and fill in the runtime values according to the connection type of your choice. + +An example can be found in `docs/examples/.env.telemost.server.example`. + +## 6. Start OLCRTC + +Run Docker Compose with the local compose file and env file: + +```bash +docker compose -f .local/docker-compose.server.yml --env-file .local/.env up -d +``` + +Check the container status: + +```bash +docker compose -f .local/docker-compose.server.yml --env-file .local/.env ps +``` + +Follow the logs if you need to debug startup: + +```bash +docker compose -f .local/docker-compose.server.yml --env-file .local/.env logs -f +``` + +## 7. Update the local setup later + +After a new upstream pull, copy the current server compose file again: + +```bash +git pull https://github.com/openlibrecommunity/olcrtc.git +cp docker-compose.server.yml .local/docker-compose.server.yml +``` + +Then restart the container with the same command: + +```bash +docker compose -f .local/docker-compose.server.yml --env-file .local/.env.telemost.server up -d +``` + +## Notes + +- Keep all local Docker files inside `.local`. +- Do not commit `.local` to the repository. +- Keep shared documentation in `docs/` and server-specific values in `.local`. +- If you change the upstream compose file, refresh the local copy before starting the container again. 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) From 08889e59fd339b2de53f5c9c5edb1ec05a65c25c Mon Sep 17 00:00:00 2001 From: Yuriy Samorodov Date: Sun, 24 May 2026 05:09:55 +0400 Subject: [PATCH 2/2] (feat) docker.md in Russian --- docs/docker.md | 80 ++++++++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/docs/docker.md b/docs/docker.md index cc7f706..f92f6e6 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -1,94 +1,104 @@ -# Docker Local Setup +# Локальная настройка Docker -This guide shows one way to run OLCRTC with a local-only Docker setup. +Здесь описан один из способов запуска сервера olcrtc с локальной конфигурацией Docker. -## Main idea - -- keep the editable Docker files in a hidden `.local` folder -- keep config files out of Git in the `.local` folder -- allow users to update repository normally with `git pull` +## Идея -## 1. Clone the repository +- держать изменяемые Docker-файлы в скрытой папке `.local` +- хранить конфигурационные файлы вне Git, в папке `.local` +- позволять пользователям обновлять репозиторий обычным `git pull` + +## 1. Клонирование репозитория ```bash git clone https://github.com/openlibrecommunity/olcrtc.git cd olcrtc ``` -## 2. Update to the latest version +## 2. Обновление до последней версии -When you want to get a newer version from upstream, run: +Чтобы получить новую версию из upstream, выполните команду ниже: ```bash -git pull https://github.com/openlibrecommunity/olcrtc.git +git pull https://github.com/openlibrecommunity/olcrtc.git -recurse-submodules ``` -If you use submodules in your environment, you can keep the same pull flow and add `--recurse-submodules`. +## 3. Папка для локальных конфигураций -## 3. Create the local folder - -Create a `.local` directory in the repository root: +Создайте директорию `.local` в корне репозитория: ```bash mkdir -p .local ``` -This folder should contain files that belong only to your machine. +Эта папка должна содержать файлы, которые будут использоваться только на вашей сервере. -## 4. Copy the server compose file into `.local` +## 4. Скопируйте docker-compose.yml в `.local` -Copy the server compose file so your local version does not get overwritten by the next pull: +Скопируйте файл ``docker-compose.yml`` (есть в репозитории), чтобы ваша локальная версия не перезаписывалась при следующем обноволении репозитория через ``git pull``: ```bash cp docker-compose.server.yml .local/docker-compose.server.yml ``` -If the upstream compose file changes later, copy it again after pulling updates. +Если файл `docker-compose.yml` позже изменится, скопируйте его снова этой же командой после `git pull`. -## 5. Create the local env file +## 5. Создайте локальный файл окружения -Create `.local/.env` and fill in the runtime values according to the connection type of your choice. +Создайте `.local/.env` и заполните значения выполнения в соответствии с выбранным типом подключения. -An example can be found in `docs/examples/.env.telemost.server.example`. +Пример можно найти в `docs/examples/.env.telemost.server.example`. -## 6. Start OLCRTC +## 6. Запуск OLCRTC -Run Docker Compose with the local compose file and env file: +Запуск контейнеризированного сервера используя ``docker-compose.server.yml`` и локальный ``.env``: ```bash docker compose -f .local/docker-compose.server.yml --env-file .local/.env up -d ``` -Check the container status: +Проверка состояния контейнера: ```bash docker compose -f .local/docker-compose.server.yml --env-file .local/.env ps ``` -Follow the logs if you need to debug startup: + Просмотр логов контейнера: ```bash docker compose -f .local/docker-compose.server.yml --env-file .local/.env logs -f +docker logs olcrtc-server ``` -## 7. Update the local setup later +## 7. Обновление контейнера -After a new upstream pull, copy the current server compose file again: +Запустить команду ниже для получения новой версии репозитория из облака: ```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 ``` -Then restart the container with the same command: +Затем перезапустите контейнер командами ниже: ```bash -docker compose -f .local/docker-compose.server.yml --env-file .local/.env.telemost.server up -d +docker compose -f .local/docker-compose.server.yml down +docker compose -f .local/docker-compose.server.yml --env-file .local/.env up -d ``` -## Notes +## Примечания -- Keep all local Docker files inside `.local`. -- Do not commit `.local` to the repository. -- Keep shared documentation in `docs/` and server-specific values in `.local`. -- If you change the upstream compose file, refresh the local copy before starting the container again. +- Храните все локальные Docker-файлы внутри отдельной папки `.local`. +- Не добавляйте `.local` в репозиторий (она должна быть в файле ``.gitignore``) +- Держите общую документацию в `docs/`, а специфичные настройки в `.local`.