Обновлено 17 октября 2026 г.
Базы знаний и wiki

Outline

Outline заменяет Notion и Confluence для командных инструкций и онбординга на своем сервере. Развернули 1.11.0 на Fatmetal Cloud Server, замерили ресурсы и проверили импорт, email-вход и сохранность вложений.

Notion прекратил доступ из России, а Atlassian остановила новые продажи и продления в РФ. Собственная вики позволяет сохранить инструкции без зависимости от этих облаков.

Проверено на версии v1.11.0, 16 октября 2026~12 минутFatmetal Team
Командная викиЛицензия: BUSL-1.1Статус: запущен у нас, v1.11.0

Вердикт

Разбираем бесплатную редакцию Outline Community.

Подходит
  • Техлиду, который собирает регламенты и онбординг вместо разрозненных страниц Notion.
  • Команде, которой нужны вложенные документы, поиск и редактирование инструкций в браузере.
Не подходит
  • Команде, которая переносит из Notion базы данных и автоматизации.
  • Команде, которой гости или прямой импорт Confluence нужны в бесплатной редакции: в Outline эти функции платные.
Рекомендуем: CPU2-RAM4-DISK50Сложность: mediumПервый запуск: около 3 минут до HTTPSГлавный риск: повторный вход зависит от получения email-ссылки
Документы

Как устроить инструкции команды

В Outline страница принадлежит коллекции: например, «Регламенты команды» объединяет онбординг и порядок дежурства. Внутри документа есть заголовки, списки и вложения. Ссылку на инструкцию можно оставить прямо в рабочем обсуждении.

Редактор сохраняет изменения без отдельной кнопки. На стенде текст пережил перезагрузку страницы, а вложение после остановки и запуска стека скачалось с исходным содержимым.

Для двух связанных инструкций откройте контекстное меню документа в боковой панели и выберите Open in split view. Онбординг останется слева, регламент откроется справа.

Онбординг и регламент дежурства открыты рядом
Онбординг и регламент дежурства открыты рядом. Outline 1.11.0, CPU2-RAM4-DISK50.

Это удобная замена разделу документации в Notion или Confluence: сотрудник читает порядок работы и тут же уточняет соседний документ. Коллекцию можно закрыть от остальных участников.

Изменения

Что изменилось с прошлого разбора

Прежняя статья описывала 1.9.1. В 1.10.0 появились два документа рядом, комментарии для пользователей с правом чтения и перестановка элементов боковой панели.

В 1.11.0 добавлены ручки переноса блоков и импорт Open Knowledge Format, который появился как формат экспорта в 1.10.1. В настройках импорта теперь есть отдельная строка OKF.

В новых релизах исправлялись проверки доступа к импорту, скачиванию и API. Эти записи release notes не имеют присвоенной серьезности. Они не равны опубликованным GHSA: ни один из 26 бюллетеней по указанным диапазонам не затрагивает прежнюю 1.9.1.

Установка по-прежнему требует PostgreSQL и Redis. На свежей 1.11.0 миграции выполнились при старте автоматически: прежнюю отдельную команду миграции из инструкции убрали.

Сравнение

Чем отличается от Notion и Confluence

Сравнивайте стоимость своего сервера для Community с облачными тарифами, которые включают обслуживание у вендора.

ПродуктПоказанная ценаЧто получает команда
Outline CommunityЛицензия бесплатна; сервер от 500 руб./месСвои документы и вложения, обслуживание своими силами
Outline Cloud$10/мес для 1-10 участников; $79 для 11-100Обслуживание у вендора, цена по диапазону участников
NotionFree; Plus от €9,50 за участника/месДокументы, базы данных и облачные процессы
Confluence CloudFree до 10; Standard от $5,78 за участника/месКорпоративная документация в облаке Atlassian

Цены показаны на прайсе Outline, Notion и Confluence 16 октября 2026 года. Период оплаты и состав команды меняют счет; у Notion получена EUR-версия страницы.

В своей Community платите за сервер, резервные копии и обслуживание. Считать ее равной платному облаку только по числу мест нельзя: корпоративные возможности продаются отдельно.

Устройство

Что работает на сервере

Outline на Node.js и TypeScript хранит документы, пользователей и права в PostgreSQL. Redis обслуживает очередь фоновых задач и взаимодействие процессов. Редактор использует ProseMirror и Y.js.

Outline 1.11.0PostgreSQL 16Redis 7CaddyDocker Compose

В инструкции пять контейнеров: приложение, база, Redis, Caddy и MailHog. Caddy принимает HTTPS; порт приложения доступен только на localhost. MailHog принимает тестовые письма локально, его интерфейс открывается через SSH-туннель.

Документы и вложения лежат в разных постоянных томах. Пересоздание контейнера приложения их не удаляет. Для восстановления нужны база, файлы и прежние секреты из /opt/outline/.env.

Закрытая коллекция с двумя инструкциями команды
Закрытая коллекция с двумя инструкциями команды. Outline 1.11.0, CPU2-RAM4-DISK50.
Ресурсы

Какой сервер выбрать

Наш стенд - CPU2-RAM4-DISK50: 2 vCPU, 4 ГБ RAM, 50 ГБ диска, Ubuntu 24.04.4, Docker 29.9.1. Этот тариф за 500 руб./мес вместил приложение, зависимости и проверку импорта.

Что измерилиРезультат
Память пяти контейнеров в простое350 МиБ без файлового кеша
Из них Outline304 МиБ
Пик при импорте и загрузке файла408 МиБ
Пять образов Docker2,63 ГиБ
Корневая ФС после сценария5,02 ГиБ занято
Первый запуск стека с миграциямиОколо 48 с
Повторный старт всего стека18 с
Ответ HTML входа через публичный HTTPS54 мс до наполнения; 82 мс после

Загрузили 100 регламентов общим размером 1,6 МиБ и CSV на 4,14 МиБ. База выросла с 11 до 13 МиБ; после работы стек занимал 384 МиБ.

Для такого набора CPU2-RAM4-DISK50 дает запас под ОС, кеш и обновление. Импорт завершился примерно за семь секунд. После повторного запуска документ открылся, а скачанный CSV совпал с исходным.

Проверено на версии v1.11.0, 16 октября 2026. На новых версиях результаты могут отличаться.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.

Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес

В маркетплейс →
Установка

Развертывание на Fatmetal Cloud Server

Нужны чистая Ubuntu, доступ SSH с sudo и доменное имя. Сначала запустим локальный приемник почты; затем подключим рабочий SMTP.

  1. Установите Docker

    На чистой Ubuntu 24.04 войдите по SSH и выполните sudo -i. Дальше команды идут от root в одной сессии. Подключите официальный репозиторий Docker:

    apt-get update
    apt-get install -y ca-certificates curl
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable' > /etc/apt/sources.list.d/docker.list
    apt-get update
    apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
  2. Задайте адрес и секреты

    Замените ваш-домен на имя, которое указывает на сервер. На Fatmetal подойдет его IP с дефисами вместо точек и окончанием .fatmetal.net. Откройте входящие 80/443; создайте конфигурацию:

    install -d -m 0755 /opt/outline
    cd /opt/outline
    umask 077
    DOMAIN=ваш-домен
    PG_PASSWORD=$(openssl rand -hex 16)
    cat > .env <<EOF
    NODE_ENV=production
    URL=https://$DOMAIN
    PORT=3000
    FORCE_HTTPS=false
    SECRET_KEY=$(openssl rand -hex 32)
    UTILS_SECRET=$(openssl rand -hex 32)
    PG_PASSWORD=$PG_PASSWORD
    DATABASE_URL=postgres://outline:$PG_PASSWORD@postgres:5432/outline
    PGSSLMODE=disable
    REDIS_URL=redis://redis:6379
    FILE_STORAGE=local
    FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
    DEFAULT_LANGUAGE=en_US
    SMTP_HOST=mailhog
    SMTP_PORT=1025
    SMTP_FROM_EMAIL=outline@$DOMAIN
    SMTP_SECURE=false
    EOF
    chmod 600 .env
  3. Опишите пять сервисов

    Версия приложения закреплена тегом 1.11.0. Проверки готовности не дают запустить его раньше базы и Redis. Только Caddy получает публичные порты:

    cat > compose.yaml <<'YAML'
    name: outline
    services:
      postgres:
        image: postgres:16-alpine
        environment: {POSTGRES_USER: outline, POSTGRES_DB: outline, POSTGRES_PASSWORD: "${PG_PASSWORD}"}
        volumes: ["pgdata:/var/lib/postgresql/data"]
        restart: unless-stopped
        healthcheck: {test: ["CMD-SHELL", "pg_isready -U outline -d outline"], interval: 5s, timeout: 3s, retries: 20}
      redis:
        image: redis:7-alpine
        volumes: ["redisdata:/data"]
        restart: unless-stopped
        healthcheck: {test: ["CMD", "redis-cli", "ping"], interval: 5s, timeout: 3s, retries: 20}
      mailhog:
        image: mailhog/mailhog:v1.0.1
        ports: ["127.0.0.1:8025:8025"]
        restart: unless-stopped
    YAML
  4. Добавьте приложение и TLS

    Допишите тот же compose-файл. Постоянный том сохраняет вложения, Caddy отвечает за сертификат:

    cat >> compose.yaml <<'YAML'
      outline:
        image: outlinewiki/outline:1.11.0
        env_file: .env
        ports: ["127.0.0.1:3000:3000"]
        volumes: ["storage:/var/lib/outline/data"]
        restart: unless-stopped
        depends_on:
          postgres: {condition: service_healthy}
          redis: {condition: service_healthy}
        healthcheck: {test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3000/_health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"], interval: 10s, timeout: 5s, retries: 20}
      caddy:
        image: caddy:2.11.7
        ports: ["80:80", "443:443"]
        volumes: ["./Caddyfile:/etc/caddy/Caddyfile:ro", "caddy_data:/data", "caddy_config:/config"]
        restart: unless-stopped
        depends_on: {outline: {condition: service_healthy}}
    volumes: {pgdata: {}, redisdata: {}, storage: {}, caddy_data: {}, caddy_config: {}}
    YAML
    printf '%s {\n reverse_proxy outline:3000\n}\n' "$DOMAIN" > Caddyfile
  5. Поднимите стек

    Скачайте образы и дождитесь готовности. Миграции пустой базы выполняются автоматически. Первый pull на стенде занял около 44 секунд; после готовности дайте Caddy 15 секунд на выдачу сертификата:

    docker compose config --quiet
    docker compose pull
    docker compose up -d --wait --wait-timeout 240
    sleep 15
    curl -I https://ваш-домен

Откройте HTTPS-адрес сразу после запуска. В Create workspace укажите название пространства, имя и email администратора, нажмите Continue. Первый вход проходит без письма. Создайте коллекцию через New collection и страницу через New doc.

Для повторного входа нажмите Continue with Email, введите тот же email и выберите Sign In. На своем компьютере откройте туннель:

ssh -L 8025:127.0.0.1:8025 пользователь@ваш-домен

В браузере откройте http://localhost:8025, найдите письмо и перейдите по ссылке в том же браузере, где запросили вход. Это локальная проверка: MailHog не доставляет письма сотрудникам.

Редактор инструкции с заголовками, списком и вложениями
Редактор инструкции с заголовками, списком и вложениями. Outline 1.11.0, CPU2-RAM4-DISK50.
Почта

Как подключить почту команды

В /opt/outline/.env замените настройки локального приемника параметрами своего SMTP. Сервер, отправителя и учетку выдаст ваш почтовый сервис; для порта 587 используйте STARTTLS:

SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USERNAME=ваш-логин
SMTP_PASSWORD=ваш-пароль
SMTP_FROM_EMAIL=wiki@example.com
SMTP_SECURE=false
SMTP_TLS_REJECT_UNAUTHORIZED=true

Примените изменения и запросите новое письмо входа:

cd /opt/outline
docker compose up -d --force-recreate outline

На стенде Outline отправил письмо через SMTP с проверкой сертификата, оно дошло в настоящий ящик и открыло рабочее пространство. Старую ссылку повторно не используйте: запросите новую в форме входа.

Грабли

Где может сломаться

Письмо входа есть, но ссылка не открывает пространство

Причина. Для email-входа важна браузерная сессия, запросившая письмо. Перенос ссылки в другой контекст теряет cookie проверки.

Решение. Вернитесь в исходный браузер, снова нажмите Continue with Email и откройте свежую ссылку там же.

После первого запуска curl не устанавливает TLS-соединение

Причина. На стенде первый запрос пришел раньше выдачи сертификата Caddy.

Решение. Посмотрите журнал и повторите проверку после выдачи:

cd /opt/outline
docker compose logs --tail=30 caddy
curl -I https://ваш-домен

Базовая диагностика приложения: docker compose ps и docker compose logs --tail=50 outline. В готовом стеке PostgreSQL, Redis и Outline отмечены healthy.

Эксплуатация

Копирование, восстановление и обновление

В одной root-сессии остановите запись приложения. Сохраните дамп, файловый том и конфигурацию; затем верните приложение в работу. Каталог копии содержит секреты, доступ к нему должен оставаться закрытым.

cd /opt/outline
umask 077
mkdir -p backup
docker compose stop outline
docker compose exec -T postgres pg_dump -U outline -Fc outline > backup/db.dump </dev/null
docker compose cp -a outline:/var/lib/outline/data/. backup/files
cp .env compose.yaml Caddyfile backup/
docker compose start outline

Сохраните копию за пределами сервера. На своем компьютере подставьте выданное имя SSH-пользователя и выполните:

ssh пользователь@ваш-домен 'sudo tar -C /opt/outline -czf - backup' > outline-backup.tgz

Восстановление на этом же стеке заменяет текущую базу копией. Остановите приложение, восстановите файлы и дамп, затем проверьте документ и скачайте вложение:

cd /opt/outline
docker compose stop outline
cp backup/.env .env
docker compose cp -a backup/files/. outline:/var/lib/outline/data/
docker compose exec -T postgres pg_restore -U outline -d outline --clean --if-exists < backup/db.dump
docker compose start outline

Для обновления сначала сделайте такую копию. Укажите выбранный тег Outline в compose.yaml, затем выполните:

cd /opt/outline
docker compose pull outline
docker compose up -d --wait --wait-timeout 240
docker compose logs --tail=30 outline

Секреты .env при обновлении сохраняйте. После запуска откройте прежний документ и вложение. Дамп без файлового тома не восстанавливает вложения.

Бюллетени

Уязвимости прошлых версий

Версия 1.11.0 из инструкции содержит исправления перечисленных бюллетеней. Если установлена затронутая версия, сохраните копию и обновите тег по командам выше. Прежняя проверенная 1.9.1 уже новее всех указанных исправлений.

CVE / GHSAУровеньЗатронутыИсправленоЧто может случиться
CVE-2026-33640critical0.86.0-1.6.01.6.0Обход rate limit позволял подбирать email OTP и захватывать учетные записи.
CVE-2026-41649high>= 0.86.0, < 1.7.01.7.0Создание share позволяло раскрыть чужой приватный документ, в том числе другого workspace.
CVE-2026-54573high<= 1.7.11.8.0Разбор пути запроса позволял обходить ограничения scopes API-ключа или OAuth-токена.
CVE-2026-43886high0.84.0-1.6.11.7.0Ошибка проверки OAuth scopes позволяла добавить wildcard и расширить доступ к API.
CVE-2024-40626high<v0.77.3v0.77.3Ошибка сериализации редактора ProseMirror допускала stored XSS в документах.
GHSA-c8xf-3j86-7686high<= v1.0.11.1.0Несогласованные проверки доступа при шаринге документов допускали повышение привилегий.
GHSA-fp2g-2283-rwvjhigh< 0.87.00.87.0Соседний домен мог инициировать изменяющие запросы от имени пользователя (CSRF).
CVE-2026-24901high<1.4.01.4.0Участник мог читать и присваивать удаленные приватные черновики другого пользователя.
CVE-2026-43888high<1.7.01.7.0Слишком длинный путь ZIP-записи позволял записать файл вне каталога импорта.
GHSA-mx2c-3g2x-5m9mhigh<= v1.0.11.1.0Заблокированный пользователь сохранял доступ к обновлениям документов через WebSocket.
CVE-2026-43887high0.84.0-1.6.11.7.0Ссылка в упоминании комментария могла содержать JavaScript и приводить к stored XSS.
GHSA-33jq-x32c-3ccwmedium<= 1.7.11.8.0Webhook продолжал отправлять документы после удаления создавшего его администратора.
CVE-2026-28506medium<1.5.01.5.0Журнал действий раскрывал метаданные приватных черновиков и удаленных документов.
CVE-2026-25062medium<1.4.01.4.0Обход пути при JSON-импорте позволял администратору читать файлы сервера.
GHSA-c43v-wwv4-9mccmedium1.7.01.8.0Viewer мог публиковать документы в закрытые коллекции через MCP.
CVE-2025-58351mediumv0.72.0v0.84.0Локальные вложения позволяли обходить CSP и Content-Type для исполнения скриптов.
CVE-2026-43890medium0.82.1-1.7.01.7.1Создание подписки с двумя ID позволяло получать уведомления о чужом документе.
GHSA-h9mv-vg9r-8c7cmedium0.53.0-0.87.3v1.0.0IDOR журнала действий раскрывал события без проверки доступа к отдельным объектам.
GHSA-hqmp-r5jw-265rmedium<1.7.01.7.0Подделанный размер вложения обходил лимиты и искажал учет локального хранилища.
GHSA-jfhx-7phw-9gq3medium< 0.87.00.87.0Webhooks и загрузки по URL позволяли обращаться к внутренним HTTP(S)-ресурсам (SSRF).
CVE-2026-44695medium<1.7.11.7.1Подмена Slack OAuth state связывала учетную запись жертвы с чужой Slack-идентичностью.
GHSA-pp65-6cc2-4mx9medium1.6.0-1.7.11.8.0Точный поиск в MCP раскрывал метаданные недоступного документа.
GHSA-rg3q-3m93-rq7mmedium<1.7.01.7.0Непроверенный JWT в rate limiter позволял блокировать API для выбранного пользователя.
CVE-2026-43889medium<1.7.01.7.0Смешанные ID коллекции и документа позволяли опубликовать документ без права шаринга.
GHSA-x92r-w4r2-vwmfmedium< 1.9.01.9.0Участник мог получить секретный URL Slack webhook через API интеграций.
GHSA-wgqc-257g-78v3low0.69.0-1.8.01.8.1Сравнение токенов отписки допускало атаку по времени на настройки уведомлений.
Связи

Что подключить к вики

  • SMTP доставляет ссылки входа и уведомления в рабочие ящики.
  • Keycloak или Authentik служат провайдерами OIDC, если в компании уже есть единая учетная запись.
  • Система резервного копирования забирает каталог backup за пределы сервера: база и файлы нужны вместе.

Для переноса Markdown используйте Settings → Import. На стенде ZIP со ста регламентами превратился в документы отдельной коллекции. По завершении появилось состояние Completed.

Форматы импорта и завершенная загрузка регламентов
Форматы импорта и завершенная загрузка регламентов. Outline 1.11.0, CPU2-RAM4-DISK50.
Ограничения

Когда это НЕ ваш выбор

Нужны базы данных и автоматизации Notion

Outline решает задачу документов. Замена всей рабочей системы Notion потребует других инструментов.

Нужен русский интерфейс

В живом списке 26 языков 1.11.0 русского нет. Русский текст документов работает, но меню останется английским.

Нужны корпоративные возможности Community

Гости, SAML, аудит, AI-ответы и прямой импорт Confluence относятся к платным редакциям. В интерфейсе импорта Confluence отмечен Enterprise.

Нужен привычный пароль или совсем простой заметочник

В выбранном сценарии повторный вход идет через email-ссылку. Ради нескольких личных заметок PostgreSQL, Redis и почтовый приемник усложняют обслуживание.

Планируете продавать чужим компаниям доступ к Outline

BUSL-1.1 разрешает внутреннее использование, но запрещает коммерческий Document Service для третьих лиц. Это source-available, не лицензия OSI.

FAQ

Частые вопросы

Нужен ли отдельный SSO для старта?

Нет. Первый администратор создается в Create workspace, последующие входы возможны по email-ссылке.

Где лежат документы и файлы?

В томах outline_pgdata и outline_storage. Копируйте оба вместе с .env.

Как открыть MailHog безопасно?

Через SSH-туннель из инструкции. Его порт 8025 привязан к localhost сервера.

Нужна отдельная команда миграции?

На свежей 1.11.0 схема создается при старте автоматически. Дождитесь healthy у приложения.

Как читать инструкцию рядом с регламентом?

Правый клик по соседнему документу в sidebar, затем Open in split view.

Итог

Outline собирает инструкции и онбординг в собственную командную вики. В 1.11.0 два документа можно держать рядом, а Markdown-регламенты импортировать целой коллекцией.

Для проверенного набора подошел CPU2-RAM4-DISK50. Начните с двух рабочих инструкций и проверьте повторный вход по почте: именно этот путь понадобится сотруднику после закрытия первой сессии.

Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe

Не хотите устанавливать вручную?

Запустите Outline на этой конфигурации автоматически - от 450 ₽/мес.

Запустить Outline →
Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.