Установка и базовая настройка Wiki Outline

Оцените статью

Решил я повторить установку Wiki Outline по мотивам «Вебинар «База знаний с AI: создаем корпоративную Wiki в облаке»«. На вебинаре мне в в принципе эта Wiki понравилась, но как говорится пока сам не попробуешь верить никому на слово нельзя.

Итак, пожалуй приступим к установке и настройке Wiki Outline. Исходить будем из того, что у нас уже есть Ubuntu 22.04.5 LTS и база данных Postgresql версии 18.

Обратите внимание, что мы будем устанавливать и настраивать Wiki Outline без использования Docker.

Подготовка окружения для Wiki Outline

Установка Nginx и Certbot

# apt-get install nginx python3-certbot python3-certbot-nginx

Установка Redis

# apt-get install redis-server

Настраиваем автозапуск и запускаем.

# systemctl enable redis-server.service
# systemctl start redis-server.service

Установка NodeJS и Yarn

Для работы требуется:

Установка NodeJS.

# curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# apt install nodejs -y
# node -v
v22.22.0

Установка Yarn.

# corepack enable
# yarn set version stable
# yarn install

Проверка версии yarn.

# yarn --version
4.12.0

Установка и тестовый запуск Wiki Outline

Загружаем и распаковываем свежий релиз с GitHub.

# cd /tmp/
# wget https://github.com/outline/outline/archive/refs/tags/v1.5.0.zip
# mv ./outline-1.5.0/ /opt/outline

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

# useradd outline
# chown -R outline:outline /opt/outline
# mkdir /home/outline/
# chown -R outline:outline /home/outline/
# su outline -s /bin/bash
$ cd /opt/outline
$ cp ./.env.development ./.env.production

Настраиваем файл ./.env.production для работы в production-окружении.

Пример конфигурационного файла.

NODE_ENV=production
URL=http://127.0.0.1:3000
FORCE_HTTPS=false

SECRET_KEY=xxxKEYxxx
UTILS_SECRET=xxxKEYxxx

DATABASE_URL=postgres://xxxUSERxxx:xxxPASSWORDxxx@127.0.0.1:5432/outline_db
REDIS_URL=redis://127.0.0.1:6379

SMTP_FROM_EMAIL=hello@example.com

# Enable unsafe-inline in script-src CSP directive
# Setting it to true allows React dev tools add-on in Firefox to successfully detect the project
DEVELOPMENT_UNSAFE_INLINE_CSP=false

# Increase the log level to debug for development
LOG_LEVEL=error

Сборка.

$ NODE_ENV=production && yarn install --immutable
$ NODE_ENV=production && yarn build

Тестовый запуск.

$ export PGSSLMODE=disable
# yarn start

Миграции на базу данных применятся автоматически.

Подготовка домена и reverse-прокси для Wiki Outline

Настройка Nginx

Создаем DNS-запись (у вашего провайдера) и получаем сертификат Let’s encrypt.

# certbot certonly --nginx -d outline.interlan.xyz

Создаем конфигурацию reverse-proxy для nginx.

map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

server {
    listen 80;
    server_name www.outline.interlan.xyz outline.interlan.xyz;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443      ssl http2;

    server_name www.outline.interlan.xyz outline.interlan.xyz;

    access_log  /var/log/nginx/outline.interlan.xyz-access.log;
    error_log  /var/log/nginx/outline.interlan.xyz-error.log warn;

    ssl_certificate /etc/letsencrypt/live/outline.interlan.xyz/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/outline.interlan.xyz/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;

    client_max_body_size 64M;
    fastcgi_buffers 64 4K;

    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;

    gzip on;
    gzip_vary on;
    gzip_comp_level 4;
    gzip_min_length 256;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
    gzip_types application/atom+xml application/javascript;

    if ($host ~ ^www\.(?<domain>.+)$) {
      return  301 $scheme://$domain$request_uri;
    }

    location / {

      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $connection_upgrade;

      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Scheme $scheme;
      proxy_pass http://127.0.0.1:3000;
    }

}

В файле конфигурации изменяем параметры на реальные:

URL=http://127.0.0.1:3000
FORCE_HTTPS=false

Пробуем подключиться по реальному имени и если все работает корректно, то мы увидим приветствие.

Настройка SystemD

Файл сервиса /lib/systemd/system/outline.service.

[Unit]
Description=Wiki Outline
After=syslog.target

[Service]
WorkingDirectory=/opt/outline
User=outline

Environment="PGSSLMODE=disable"

ExecStart=/usr/bin/yarn start

[Install]
WantedBy=multi-user.target

Активируем, запускаем.

# systemctl enable outline
# systemctl start outline

В целом установка на этом закончена и можно переходить к настройке.

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования