<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Установка ONLYOFFICE Workspace]]></title><description><![CDATA[<p dir="auto">Ниже — полная инструкция, основанная на всех нюансах, с которыми вы столкнулись при установке Docker в непривилегированном контейнере Incus и развёртывании ONLYOFFICE Workspace.</p>
<h3><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f6e0.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-hammer_and_wrench-style-height-23px-width-auto-vertical-align-middle-title-alt-часть-1-починка-docker-в-непривилегированном-контейнере-incus"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f6e0.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--hammer_and_wrench" style="height:23px;width:auto;vertical-align:middle" title="🛠" alt="🛠" />️ Часть 1: Починка Docker в непривилегированном контейнере Incus</h3>
<p dir="auto">Все команды в этом разделе выполняются <strong>на хосте</strong> (Debian 13), если не указано иное.</p>
<p dir="auto"><strong>1.1. Разрешение вложенности и проброс FUSE</strong></p>
<pre><code class="language-bash"># Разрешаем вложенные контейнеры (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
</code></pre>
<p dir="auto"><strong>1.2. Увеличение лимитов keyring (исправляет <code>disk quota exceeded</code>)</strong></p>
<p dir="auto">Ошибка <code>unable to join session keyring: disk quota exceeded</code> возникает из-за того, что дефолтный лимит в 200 ключей слишком мал для работы Docker внутри контейнера .</p>
<pre><code class="language-bash"># Временное увеличение (действует до перезагрузки)
sudo sysctl -w kernel.keys.maxkeys=20000
sudo sysctl -w kernel.keys.maxbytes=500000

# Постоянное увеличение
sudo tee /etc/sysctl.d/99-docker-keyring.conf &lt;&lt;'EOF'
kernel.keys.maxkeys = 20000
kernel.keys.maxbytes = 500000
EOF
sudo sysctl -p /etc/sysctl.d/99-docker-keyring.conf
</code></pre>
<p dir="auto"><strong>1.3. Исправление доступа к <code>net.ipv4.ip_unprivileged_port_start</code></strong></p>
<p dir="auto">Ошибка <code>reopen fd 8: permission denied</code> — это известный баг взаимодействия <code>runc</code> и AppArmor в LXC/Incus . Обходной путь — предустановить sysctl через Incus.</p>
<pre><code class="language-bash">incus config set ooffice linux.sysctl.net.ipv4.ip_unprivileged_port_start=0
incus restart ooffice
</code></pre>
<p dir="auto"><strong>1.4. Проверка работы Docker</strong></p>
<pre><code class="language-bash">incus exec ooffice -- bash
docker run hello-world
</code></pre>
<p dir="auto">Если видите сообщение «Hello from Docker!» — Docker работает.</p>
<hr />
<h3><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f4e6.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-package-style-height-23px-width-auto-vertical-align-middle-title-alt-часть-2-развёртывание-onlyoffice-workspace-через-docker-compose"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4e6.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--package" style="height:23px;width:auto;vertical-align:middle" title="📦" alt="📦" /> Часть 2: Развёртывание ONLYOFFICE Workspace через Docker Compose</h3>
<p dir="auto">Все команды в этом разделе выполняются <strong>внутри контейнера <code>ooffice</code></strong>.</p>
<p dir="auto"><strong>2.1. Установка Docker Compose и клонирование репозитория</strong></p>
<pre><code class="language-bash">apt update &amp;&amp; apt install -y docker-compose-plugin git

cd /opt
git clone https://github.com/ONLYOFFICE/Docker-CommunityServer
cd Docker-CommunityServer
</code></pre>
<p dir="auto"><strong>2.2. Настройка <code>docker-compose.workspace.yml</code></strong></p>
<p dir="auto">В официальной инструкции для Debian 11+ указано, что нужно раскомментировать строку <code>cgroup</code> . Однако, как показала ваша практика, <strong>mail-server не работает</strong> на новых ядрах (ошибка Segmentation Fault, код 139). Поэтому его нужно <strong>полностью исключить</strong> из конфига.</p>
<p dir="auto">Откройте файл:</p>
<pre><code class="language-bash">nano docker-compose.workspace.yml
</code></pre>
<p dir="auto">Внесите следующие изменения:</p>
<ol>
<li><strong>Удалите секцию <code>onlyoffice-mail-server</code> целиком.</strong></li>
<li><strong>В секции <code>onlyoffice-community-server</code>:</strong>
<ul>
<li>Уберите <code>onlyoffice-mail-server</code> из <code>depends_on</code>.</li>
<li>Уберите все переменные <code>MAIL_SERVER_*</code> из <code>environment</code>.</li>
<li><strong>Важно:</strong> Добавьте переменную <code>MAIL_SERVER_API_HOST=127.0.0.1</code> (не пустую). Это необходимо, чтобы скрипт инициализации не падал с ошибкой <code>MAIL_SERVER_API_HOST not correct</code>.</li>
</ul>
</li>
<li><strong>В секции <code>onlyoffice-elasticsearch</code>:</strong>
<ul>
<li><strong>Удалите блок <code>ulimits</code> с <code>memlock: -1</code></strong>. Это исправляет ошибку <code>error setting rlimit type 8: operation not permitted</code> .</li>
<li>Убедитесь, что в <code>environment</code> установлено <code>bootstrap.memory_lock=false</code>.</li>
</ul>
</li>
</ol>
<p dir="auto"><strong>2.3. Увеличение <code>vm.max_map_count</code> для Elasticsearch</strong></p>
<p dir="auto">Выполните <strong>на хосте</strong>:</p>
<pre><code class="language-bash">sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count = 262144" | sudo tee /etc/sysctl.d/99-elasticsearch.conf
</code></pre>
<p dir="auto"><strong>2.4. Запуск Workspace</strong></p>
<pre><code class="language-bash"># Внутри контейнера ooffice
cd /opt/Docker-CommunityServer
docker compose -f docker-compose.workspace.yml up -d
</code></pre>
<p dir="auto">Первый запуск может занять <strong>5–15 минут</strong> — Community Server инициализирует базу данных . Дождитесь, пока все контейнеры перейдут в статус <code>Up</code> (без циклов перезапуска).</p>
<hr />
<h3><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f310.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-globe_with_meridians-style-height-23px-width-auto-vertical-align-middle-title-alt-часть-3-настройка-nginx-на-хосте-обратный-прокси"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f310.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--globe_with_meridians" style="height:23px;width:auto;vertical-align:middle" title="🌐" alt="🌐" /> Часть 3: Настройка Nginx на хосте (обратный прокси)</h3>
<p dir="auto"><strong>3.1. Конфиг Nginx с HTTPS</strong></p>
<p dir="auto">Создайте файл <code>/etc/nginx/sites-available/onlyoffice-workspace</code> на <strong>хосте</strong>:</p>
<pre><code class="language-nginx"># Редирект HTTP -&gt; 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;
    }
}
</code></pre>
<p dir="auto"><strong>3.2. Активация</strong></p>
<pre><code class="language-bash">sudo ln -s /etc/nginx/sites-available/onlyoffice-workspace /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
</code></pre>
<hr />
<h3><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-2705.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-white_check_mark-style-height-23px-width-auto-vertical-align-middle-title-alt-часть-4-первичная-настройка-в-веб-интерфейсе"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Часть 4: Первичная настройка в веб-интерфейсе</h3>
<ol>
<li>Откройте браузер и перейдите на <code>https://office.example.com</code>.</li>
<li>Если видите страницу «We are working on it» — <strong>обновите её один раз (Ctrl+F5)</strong>. Если не помогло, откройте в режиме инкогнито.</li>
<li>Должна появиться страница <strong>«Welcome to Your ONLYOFFICE Portal»</strong> (<code>/Wizard.aspx</code>).</li>
<li>Заполните поля:
<ul>
<li><strong>Password / Confirm password</strong>: придумайте пароль для администратора (минимум 8 символов).</li>
<li><strong>Your portal is registered from the following email</strong>: введите email (будет логином).</li>
<li><strong>Language</strong>: выберите Russian.</li>
<li><strong>Time Zone</strong>: выберите свой часовой пояс.</li>
<li>Поставьте галочку <strong>«By checking this box you accept the terms of the License Agreements»</strong> (обязательно).</li>
</ul>
</li>
<li>Нажмите <strong>Continue</strong>.</li>
<li>После этого вы попадёте на страницу входа. Войдите с указанным email и паролем.</li>
</ol>
<p dir="auto">Готово — вы в личном кабинете ONLYOFFICE Workspace с возможностью создавать документы, таблицы и презентации.</p>
<hr />
]]></description><link>https://baseinfo.nbics.net/topic/302/установка-onlyoffice-workspace</link><generator>RSS for Node</generator><lastBuildDate>Sat, 24 Oct 2026 05:19:15 GMT</lastBuildDate><atom:link href="https://baseinfo.nbics.net/topic/302.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Oct 2026 19:26:34 GMT</pubDate><ttl>60</ttl></channel></rss>