8.2.17 Встановлення Outline Wiki
Outline — це сучасна Wiki-платформа з відкритим вихідним кодом, зручним редактором та підтримкою командної роботи. Вона ідеально підходить командам, яким потрібна власна внутрішня Wiki без залежності від сторонніх SaaS-сервісів. Завдяки Docker Compose ви зможете розгорнути Outline, PostgreSQL та Redis в ізольованому середовищі за лічені хвилини.
Переваги
- Швидке розгортання без складного налаштування оточення
- Ізоляція сервісів і легке масштабування
- Повний контроль над документацією вашої команди
Підготовка сервера
Вимоги
- Віртуальний або Виділений сервер
- Мінімум 2 CPU, 2 ГБ RAM, 10 ГБ SSD
- Наявність root-доступу або користувача з правами sudo
- Перед початком обов’язково встановіть Docker та Docker Compose
Змінні, які потрібно замінити
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
Тепер створимо файл 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
Створіть конфігурацію сайту:
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
Для захисту з’єднання налаштуйте Let’s Encrypt через Certbot:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d YOUR_DOMAIN
Докладніше — у нашій інструкції.
Перевірка роботи
Перейдіть за адресою http://YOUR_DOMAIN
(або https://
, якщо налаштовано SSL) і виконайте інструкції на екрані для створення першого користувача.
Поширені помилки
Помилка | Причина | Розв’язання |
---|---|---|
Error: connect ECONNREFUSED |
Redis або PostgreSQL не запущені | Перевірте docker compose ps , перезапустіть: docker compose up -d |
Invalid SECRET_KEY |
Ключ занадто короткий або відсутній | Згенеруйте новий openssl rand -hex 32 і пересоздайте контейнер |
Помилка 502 у Nginx | Додаток не запущено або неправильний порт | Переконайтесь, що outline працює на порту TCP 3000 і порт проброшено |
Офіційна документація