8.2.17 Установка Outline Wiki

The Host Banner Outline wiki

Outline — это современная Wiki-платформа с открытым исходным кодом, удобным редактором и поддержкой командной работы. Платформа идеально подходит для команд, которым нужна собственная внутренняя Wiki — без зависимости от сторонних SaaS. Благодаря Docker Compose, вы сможете развернуть Outline, PostgreSQL и Redis в изолированной среде за считанные минуты.

Преимущества

  • Быстрое развертывание без сложной настройки окружения
  • Изоляция сервисов и лёгкое масштабирование
  • Полный контроль над документацией вашей команды

Подготовка сервера

Требования

Переменные, которые нужно заменить

  • SECRET_KEY — 32-символьный случайный HEX-ключ, который вы сгенерировали командой openssl rand -hex 32; подставляется в переменную SECRET_KEY
  • UTILS_SECRET — второй 32-символьный HEX-ключ для переменной UTILS_SECRET
  • YOUR_DOMAIN — доменное имя вашего сайта; используется в переменной URL, директиве server_name в конфигурации Nginx и при вызове Certbot

Первым делом создайте директорию проекта и перейдите в неё:

mkdir ~/outline && cd ~/outline

Теперь сгенерируйте надёжный ключ для следующего шага. Выполните команду и сохраните ключ:

openssl rand -hex 32  # для SECRET_KEY
openssl rand -hex 32  # для UTILS_SECRET

openssl_rand_-hex

Теперь создадим файл docker-compose.yml в котором настроим базовые параметры для Вашего сервиса:

version: '3'
services:
  outline:
    image: outlinewiki/outline
    environment:
      - DATABASE_URL=postgres://outline:outline@db:5432/outline
      - REDIS_URL=redis://redis:6379
      - SECRET_KEY=SECRET_KEY
      - UTILS_SECRET=UTILS_SECRET
      - URL=http://YOUR_DOMAIN
      - PGSSLMODE=disable
    ports:
      - "3000:3000"
    depends_on:
      - db
      - redis
    restart: always

  db:
    image: postgres:15
    environment:
      - POSTGRES_USER=outline
      - POSTGRES_PASSWORD=outline
      - POSTGRES_DB=outline
    volumes:
      - outline-db:/var/lib/postgresql/data
    restart: always

  redis:
    image: redis:7
    restart: always

volumes:
  outline-db:

Замена домена: укажите свой домен или IP-адрес сервера вместо YOUR_DOMAIN в переменной URL.

Запуск контейнеров

docker compose up -d

Проверьте, что все сервисы запущены:

docker compose ps

Проверка запуска контейнера Outline

Обратите внимание: если статус outline остаётся на health: starting дольше 1–2 минут, проверьте логи:

docker compose logs -f outline

Ошибка The server does not support SSL connections — добавьте PGSSLMODE=disable в переменные окружения.

Установка Nginx как обратного прокси

Установите Nginx:

sudo apt install -y nginx

install_nginx

Создайте конфигурацию сайта:

sudo nano /etc/nginx/sites-available/outline
server {
    listen 80;
    server_name YOUR_DOMAIN ;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $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;
    }
}

Активируйте сайт и перезапустите Nginx:

sudo ln -s /etc/nginx/sites-available/outline /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

nginx_-t

Для защиты соединения настройте Let’s Encrypt через Certbot:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d YOUR_DOMAIN

Детальнее можете ознакомиться в нашей инструкции.

Проверка работы

Перейдите по адресу http://YOUR_DOMAIN (или https://, если настроен SSL) и следуйте инструкции на экране для создания первого пользователя.

Welcome interface

Распространённые ошибки
Ошибка Причина Решение
Error: connect ECONNREFUSED Redis или PostgreSQL не запущены Проверьте docker-compose ps, перезапустите: docker-compose up -d
Invalid SECRET_KEY Слишком короткий или отсутствует ключ Сгенерируйте заново openssl rand -hex 32 и пересоздайте контейнер
Ошибка 502 в Nginx Приложение не запущено или неправильный порт Убедитесь, что outline работает на порту TCP 3000, и порт проброшен