Wiki.js - бесплатное и открытое приложение для вики, построенное на Node.js, PostgreSQL, Git и Markdown. Он современный и мощный и оптимизирован для сохранения ресурсов CPU. С Wiki.js весь контент записывается в формате Markdown, сохраняется в файлах Markdown и автоматически синхронизируется с вашим удаленным хранилищем Git. В этой статье мы узнаем, как установить Wiki.js на Ubuntu 25.04. Итак, приступим.

Предпосылки

  • Сервер с Ubuntu 25.04 в качестве ОС
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo

Конвенции

1
2
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя

Шаг 1. Обновите систему

Свежая установка Ubuntu 25.04 требует обновления пакетов до последних доступных версий.

1
$ sudo apt update -y && sudo apt upgrade -y

Шаг 2. Установите Node.js и NPM

Учитывая, что Wiki.js основан на Node.js, мы установим самую последнюю версию, как показано ниже.

Для начала давайте скачаем скрипт.

1
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

После добавления репозитория нам нужно перейти к нашему файлу .bashrc.

1
$ source ~/.bashrc

Скачате и установите Node.js

1
$ nvm install 22

Шаг 3. Установите PostgreSQL

PostgreSQL - это рекомендуемый сервер базы данных для лучшей производительности и совместимости функций. Запустите следующую команду для установки PostgreSQL.

1
$ sudo apt install postgresql postgresql-contrib

Шаг 4. Создание базы данных

Нам нужно создать базу данных для Wiki.js для работы.

1
2
3
$ sudo -u postgres psql -c "CREATE USER wikijs WITH PASSWORD 'yourstrongpassword';"
$ sudo -u postgres psql -c "CREATE DATABASE wikijs_db OWNER wikijs;"
$ sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE wikijs_db TO wikijs;"

Шаг 5. Скачайте и установите Wiki.js

Скачате последнюю версию Wiki.js со страницы релизов на GitHub.

1
2
3
4
$ wget https://github.com/requarks/wiki/releases/download/v2.5.307/wiki-js.tar.gz
$ tar -xzf wiki-js.tar.gz -C /var/www/wiki.js
$ sudo chown -R www-data:www-data /var/www/wiki.js
$ cd /var/www/wiki.js

Переименуйте файл настройки образца в config.yml:

1
$ sudo mv config.sample.yml config.yml

Отредактируйте файл config.yml, чтобы он соответствовал вашим данным, включая ваше имя пользователя и безопасный пароль от PostgreSQL.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
...
db:
  type: postgres

  # PostgreSQL / MySQL / MariaDB / MS SQL Server only:
  host: localhost
  port: 5432
  user: wikijs
  pass: yourstrongpassword
  db: wikijs_db
  ssl: false
...

Сохраните и закройте файл.

Шаг 6. Запустите Wiki.js в качестве systemd

Создайте новый файл под названием wiki. сервис внутри каталога /etc/systemd/system.

1
$ sudo nano /etc/systemd/system/wiki.service

Затем добавить в файл следующее содержимое:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
# Consider creating a dedicated user for Wiki.js here:
User=nobody
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wiki.js

[Install]
WantedBy=multi-user.target

Сохраните и закройте файл.

Затем перезагрузите систему и запустите Wiki.js:

1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now wiki.service
$ sudo systemctl status wiki.service

Шаг 7. Теперь мы должны установить Nginx

Для установки веб-сервера Nginx выполните команду ниже:

1
$ sudo apt install nginx

Далее мы создадим базовую конфигурацию для этого проекта, но в будущем вы сможете дублировать ее и запускать множество различных приложений и доменов node.js.

1
$ sudo nano /etc/nginx/sites-available/wiki.conf

В этом файле поместите следующий содержимое.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server {
    listen 80;
    listen [::]:80;
    index index.html;
    server_name wiki.example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

        # Add these lines
        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;

        # Add timeout settings
        proxy_read_timeout 60s;
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
    }

    # Add error log for this specific site
    error_log /var/log/nginx/wiki.example.com_error.log;
    access_log /var/log/nginx/wiki.example.com_access.log;
}

Теперь весь входящий трафик на wiki.example.com по умолчанию http 80 порт будет перенаправлен на localhost:3000.

И привязать наш новый файл конфигурации к сайтам доступного каталога:

1
$ sudo ln -sf /etc/nginx/sites-available/wiki.conf /etc/nginx/sites-enabled/wiki.conf

Наконец, мы можем проверить, не имеет ли наш файл nginx никакой ошибки:

1
2
$ sudo nginx -t
$ sudo systemctl restart nginx

И, наконец, теперь мы можем увидеть наше приложение Wiki.js из вашего браузера, чтобы продолжить конфигурацию wiki.example.com. Давайте защитим его, позволим зашифровать.

Шаг 8. Получите сертификат TLS от Let’s Encrypt

Мы будем использовать Acme.sh для получения SSL-сертификата Let’s Encrypt бесплатно. Пожалуйста, убедитесь, что вы указали свой поддомен на IP-адрес сервера. Шаги, приведенные ниже, будут работать только в том случае, если вы обслуживаете интерфейс управления с помощью Nginx.

1
2
3
4
5
6
$ sudo su -
# git clone https://github.com/Neilpang/acme.sh.git
# cd acme.sh
# ./acme.sh --register-account -m [email protected] --server zerossl
# source ~/.bashrc
# cd ~

Получите сертификаты RSA для вашего имени хоста:

1
# acme.sh --issue --standalone -d wiki.example.com --keylength 2048 

Создайте каталог для хранения ваших сертификатов:

1
# mkdir -p /etc/letsencrypt/wiki.example.com 

Установите сертификаты в созданные каталоги:

1
2
3
4
# acme.sh --install-cert -d wiki.example.com \ 
       --cert-file /etc/letsencrypt/wiki.example.com/cert.pem \ 
       --key-file /etc/letsencrypt/wiki.example.com/private.key \ 
       --fullchain-file /etc/letsencrypt/wiki.example.com/fullchain.pem \ 

Этот режим состоит только в том, чтобы выпустить сертификат, он не изменит ваши настраиваемые файлы nginx. Вам нужно настроить файлы конфигурации вашего сайта самим, чтобы использовать сертификат.

Завершение

Мы завершили наше руководство по установке Wiki.js на Ubuntu 25.04. Мы начали с подготовки сервера с необходимыми зависимостями, а затем приступили к установке и настройке.

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