Полностью готовая сборка Nextcloud с поддержкой HTTPS (Let's Encrypt) и настроенным TURN-сервером (Coturn) для аудио/видео звонков. Разворачивается через Docker Compose.
- OS: Ubuntu 20.04 / 22.04 (или любой Linux с Docker).
- Домен: Обязательно наличие домена (A-запись), направленного на IP сервера.
- Docker: Установленные Docker Engine и Docker Compose plugin.
Для корректной работы веб-интерфейса и звонков, в панели управления облаком (например, Cloud.ru Evolution -> Security Groups) необходимо открыть следующие входящие порты (Inbound Rules):
| Сервис | Порт | Протокол | Описание |
|---|---|---|---|
| SSH | 22 |
TCP | Управление сервером |
| Web (HTTP) | 80 |
TCP | Получение SSL сертификатов и редирект |
| Web (HTTPS) | 443 |
TCP | Основной доступ к Nextcloud |
| TURN Signalling | 3478 |
TCP & UDP | Соединение для звонков (Talk) |
| TURN Media | 49152-49160 |
UDP | Передача голоса и видео (RTP) |
⚠️ Важно: Убедитесь, что для порта3478открыты оба протокола (TCP и UDP), а диапазон49152-49160открыт именно по UDP.
Создайте папку проекта, поместите туда docker-compose.yml и создайте файл .env:
cp .env.example .env
nano .envЗаполните .env своими данными (домен, пароли).
Создайте файл конфигурации для загрузки больших файлов:
echo "client_max_body_size 10G;" > upload_size.confСоздайте файл turnserver.conf.
Внимание: В этом файле переменные из .env не подставляются автоматически. Впишите домен и секрет вручную.
nano turnserver.confВставьте содержимое:
listening-port=3478
fingerprint
use-auth-secret
# Вставьте то же значение, что и в .env (TURN_SECRET)
static-auth-secret=ВАШ_СЕКРЕТ_ИЗ_ENV
# Вставьте ваш домен
realm=ВАШ.ДОМЕН.RU
total-quota=100
bps-capacity=0
stale-nonce
no-multicast-peers
log-file=stdout
min-port=49152
max-port=49160docker compose up -d- Зайдите на сайт
https://ваш-домен.ru. - Завершите установку Nextcloud (создайте админа).
- Установите приложение Talk (звонки) из магазина приложений.
- Перейдите в Настройки администрирования -> Talk.
- В блоке TURN servers добавьте новый сервер:
- Server:
ваш-домен.ru - Port:
3478 - Turn secret: (Ваш секрет из
.env) - Protocols:
UDP and TCP
- Server:
- Нажмите Сохранить. Если появилась зеленая галочка — всё работает.
Посмотреть логи получения сертификатов:
docker logs -f nginx-proxy-acmeПерезапустить контейнеры (применив изменения):
docker compose up -d --force-recreateОстановить всё:
docker compose down