Ниже — полная инструкция, основанная на всех нюансах, с которыми вы столкнулись при установке Docker в непривилегированном контейнере Incus и развёртывании ONLYOFFICE Workspace.
️ Часть 1: Починка Docker в непривилегированном контейнере Incus
Все команды в этом разделе выполняются на хосте (Debian 13), если не указано иное.
1.1. Разрешение вложенности и проброс FUSE
# Разрешаем вложенные контейнеры (nesting)
incus config set ooffice security.nesting=true
# Пробрасываем устройство FUSE (нужно для fuse-overlayfs, но может пригодиться)
incus config set ooffice linux.kernel_modules=fuse
incus config device add ooffice fuse unix-char path=/dev/fuse
# Перезапускаем контейнер для применения настроек
incus restart ooffice
1.2. Увеличение лимитов keyring (исправляет disk quota exceeded)
Ошибка unable to join session keyring: disk quota exceeded возникает из-за того, что дефолтный лимит в 200 ключей слишком мал для работы Docker внутри контейнера .
# Временное увеличение (действует до перезагрузки)
sudo sysctl -w kernel.keys.maxkeys=20000
sudo sysctl -w kernel.keys.maxbytes=500000
# Постоянное увеличение
sudo tee /etc/sysctl.d/99-docker-keyring.conf <<'EOF'
kernel.keys.maxkeys = 20000
kernel.keys.maxbytes = 500000
EOF
sudo sysctl -p /etc/sysctl.d/99-docker-keyring.conf
1.3. Исправление доступа к net.ipv4.ip_unprivileged_port_start
Ошибка reopen fd 8: permission denied — это известный баг взаимодействия runc и AppArmor в LXC/Incus . Обходной путь — предустановить sysctl через Incus.
incus config set ooffice linux.sysctl.net.ipv4.ip_unprivileged_port_start=0
incus restart ooffice
1.4. Проверка работы Docker
incus exec ooffice -- bash
docker run hello-world
Если видите сообщение «Hello from Docker!» — Docker работает.
Часть 2: Развёртывание ONLYOFFICE Workspace через Docker Compose
Все команды в этом разделе выполняются внутри контейнера ooffice.
2.1. Установка Docker Compose и клонирование репозитория
apt update && apt install -y docker-compose-plugin git
cd /opt
git clone https://github.com/ONLYOFFICE/Docker-CommunityServer
cd Docker-CommunityServer
2.2. Настройка docker-compose.workspace.yml
В официальной инструкции для Debian 11+ указано, что нужно раскомментировать строку cgroup . Однако, как показала ваша практика, mail-server не работает на новых ядрах (ошибка Segmentation Fault, код 139). Поэтому его нужно полностью исключить из конфига.
Откройте файл:
nano docker-compose.workspace.yml
Внесите следующие изменения:
- Удалите секцию
onlyoffice-mail-serverцеликом. - В секции
onlyoffice-community-server:- Уберите
onlyoffice-mail-serverизdepends_on. - Уберите все переменные
MAIL_SERVER_*изenvironment. - Важно: Добавьте переменную
MAIL_SERVER_API_HOST=127.0.0.1(не пустую). Это необходимо, чтобы скрипт инициализации не падал с ошибкойMAIL_SERVER_API_HOST not correct.
- Уберите
- В секции
onlyoffice-elasticsearch:- Удалите блок
ulimitsсmemlock: -1. Это исправляет ошибкуerror setting rlimit type 8: operation not permitted. - Убедитесь, что в
environmentустановленоbootstrap.memory_lock=false.
- Удалите блок
2.3. Увеличение vm.max_map_count для Elasticsearch
Выполните на хосте:
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count = 262144" | sudo tee /etc/sysctl.d/99-elasticsearch.conf
2.4. Запуск Workspace
# Внутри контейнера ooffice
cd /opt/Docker-CommunityServer
docker compose -f docker-compose.workspace.yml up -d
Первый запуск может занять 5–15 минут — Community Server инициализирует базу данных . Дождитесь, пока все контейнеры перейдут в статус Up (без циклов перезапуска).
Часть 3: Настройка Nginx на хосте (обратный прокси)
3.1. Конфиг Nginx с HTTPS
Создайте файл /etc/nginx/sites-available/onlyoffice-workspace на хосте:
# Редирект HTTP -> HTTPS
server {
listen 80;
listen [::]:80;
server_name office.example.com;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
# HTTPS
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name office.example.com;
ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
add_header Strict-Transport-Security "max-age=31536000" always;
client_max_body_size 512M;
location / {
# ЗАМЕНИТЕ на реальный IP вашего контейнера ooffice
proxy_pass http://10.214.97.7:80;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
# WebSocket для совместного редактирования
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 60s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
# Подмена внутренних ссылок на внешний HTTPS
proxy_set_header Accept-Encoding "";
gzip off;
sub_filter 'http://127.0.0.1' 'https://office.example.com';
sub_filter 'http://localhost' 'https://office.example.com';
sub_filter_once off;
sub_filter_types text/html application/javascript application/json;
}
}
3.2. Активация
sudo ln -s /etc/nginx/sites-available/onlyoffice-workspace /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Часть 4: Первичная настройка в веб-интерфейсе
- Откройте браузер и перейдите на
https://office.example.com. - Если видите страницу «We are working on it» — обновите её один раз (Ctrl+F5). Если не помогло, откройте в режиме инкогнито.
- Должна появиться страница «Welcome to Your ONLYOFFICE Portal» (
/Wizard.aspx). - Заполните поля:
- Password / Confirm password: придумайте пароль для администратора (минимум 8 символов).
- Your portal is registered from the following email: введите email (будет логином).
- Language: выберите Russian.
- Time Zone: выберите свой часовой пояс.
- Поставьте галочку «By checking this box you accept the terms of the License Agreements» (обязательно).
- Нажмите Continue.
- После этого вы попадёте на страницу входа. Войдите с указанным email и паролем.
Готово — вы в личном кабинете ONLYOFFICE Workspace с возможностью создавать документы, таблицы и презентации.