Установка Wiki.js · 9 min read · Dec 19, 2025
Как установить Wiki.js на Ubuntu 22.04 LTS

Wiki.js — это программное обеспечение для вики с открытым исходным кодом и легковесной архитектурой. Оно построено на JavaScript-фреймворке Node.js. Его можно использовать для написания документации, вики и веб-контента с помощью редактора Markdown для разработчиков и WYSIWYG-редактора для людей без технических знаний. Оно поддерживает несколько типов контента, включая UML-диаграммы, математические выражения с использованием синтаксиса Tex или MathML и код. Включает несколько модулей для различных функций, включая аналитику, аутентификацию, ведение журналов, сторонние поисковые системы и несколько сервисов хранения для синхронизации вашего контента.
В этом руководстве вы научитесь устанавливать Wiki.js на сервер Ubuntu 22.04 с использованием базы данных PostgreSQL и сервера Nginx для проксирования.
Предварительные условия
- Сервер с установленной Ubuntu 22.04.
- Пользователь без прав root с правами sudo.
- Полностью квалифицированное доменное имя (FQDN), указывающее на ваш сервер. Для наших целей мы будем использовать
wiki.example.comв качестве доменного имени. - Убедитесь, что все обновлено.
$ sudo apt update && sudo apt upgrade - Установите основные утилиты. Некоторые из них могут быть уже установлены.
$ sudo apt install wget curl ca-certificates gnupg gnupg2 nano unzip lsb-release ubuntu-keyring -y
Шаг 1 - Настройка брандмауэра
Перед установкой любых пакетов первым шагом является настройка брандмауэра для разрешения HTTP и HTTPS соединений.
Проверьте статус брандмауэра.
$ sudo ufw status
Вы должны увидеть что-то вроде следующего.
Статус: активен
Кому Действие Откуда
-- ------ ----
OpenSSH ALLOW Везде
OpenSSH (v6) ALLOW Везде (v6)
Разрешите порты HTTP и HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Проверьте статус еще раз, чтобы подтвердить.
$ sudo ufw status
Статус: активен
Кому Действие Откуда
-- ------ ----
OpenSSH ALLOW Везде
80/tcp ALLOW Везде
443 ALLOW Везде
OpenSSH (v6) ALLOW Везде (v6)
80/tcp (v6) ALLOW Везде (v6)
443 (v6) ALLOW Везде (v6)
Шаг 2 - Установка PostgreSQL и утилит
Ubuntu 22.04 поставляется со старой версией PostgreSQL. Мы установим Postgres 14 для нашего руководства.
Установите репозиторий для PostgreSQL.
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Импортируйте GPG-ключ PostgreSQL.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
Обновите список репозиториев системы.
$ sudo apt update
Установите сервер PostgreSQL 14.
$ sudo apt install -y postgresql-14
Проверьте статус службы.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2022-10-25 06:24:24 UTC; 10min ago
Main PID: 4032 (code=exited, status=0/SUCCESS)
CPU: 1ms
Oct 25 06:24:24 wiki systemd[1]: Starting PostgreSQL RDBMS...
Oct 25 06:24:24 wiki systemd[1]: Finished PostgreSQL RDBMS.
Шаг 3 - Настройка PostgreSQL
Войдите в оболочку PostgreSQL.
$ sudo -i -u postgres psql
Создайте новую базу данных для Wiki.js.
postgres=# CREATE DATABASE wikidb;
Создайте нового пользователя базы данных с надежным паролем.
postgres=# CREATE USER wikiuser WITH ENCRYPTED PASSWORD 'wikipassword';
Предоставьте права пользователю на использование базы данных.
postgres=# GRANT ALL PRIVILEGES ON DATABASE wikidb TO wikiuser;
Выйдите из оболочки Postgres.
postgres=# \q
Шаг 4 - Установка Node.js
Wiki.js поддерживает Node v16 на момент написания этого руководства.
Установите репозиторий Node с помощью следующей команды.
$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Установите Node.
$ sudo apt install nodejs -y
Проверьте установку Node.
$ node --version
v16.18.0
Шаг 5 - Загрузка Wiki.js
Создайте папку для установки Wiki.js.
$ sudo mkdir -p /var/www/wikijs
Установите текущего вошедшего пользователя владельцем папки.
$ sudo chown $USER:$USER /var/www/wikijs
Перейдите в каталог и загрузите архив кода Wiki.js.
$ cd /var/www/wikijs && wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
Извлеките загруженный архив.
$ tar xzf wiki-js.tar.gz
Удалите архив.
$ rm wiki-js.tar.gz
Шаг 6 - Настройка и запуск Wiki.js
Создайте файл конфигурации из образца.
$ cp config.sample.yml config.yml
Откройте файл конфигурации для редактирования.
$ nano config.yml
Найдите следующие настройки базы данных и обновите их значения на те, которые были настроены на шаге 3.
# PostgreSQL / MySQL / MariaDB / MS SQL Server только:
host: localhost
port: 5432
user: wikiuser
pass: wikipassword
db: wikidb
ssl: false
Найдите строку bindIP: 0.0.0.0 и обновите ее следующим образом.
bindIP: 127.0.0.1
Это заставит Wiki.js слушать на адресе обратной связи, потому что мы будем использовать прокси Nginx для доступа к нему снаружи.
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Запустите Wiki.js, используя следующую команду.
$ node server
Вы получите аналогичный вывод, подтверждающий успешную установку.
Loading configuration from /var/www/wikijs/config.yml... OK
2022-10-25T06:40:46.294Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: = Wiki.js 2.5.289 =====================
2022-10-25T06:40:46.296Z [MASTER] info: =======================================
2022-10-25T06:40:46.296Z [MASTER] info: Initializing...
2022-10-25T06:40:46.962Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-25T06:40:46.974Z [MASTER] info: Connecting to database...
2022-10-25T06:40:47.067Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-25T06:40:47.345Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-25T06:40:47.345Z [MASTER] info: Starting setup wizard...
2022-10-25T06:40:47.510Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-25T06:40:47.511Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-25T06:40:47.515Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-25T06:40:47.515Z [MASTER] info: .......................................................................
2022-10-25T06:40:47.515Z [MASTER] info:
2022-10-25T06:40:47.516Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
2022-10-25T06:40:47.516Z [MASTER] info:
2022-10-25T06:40:47.516Z [MASTER] info: ............................................................................
Нажмите Ctrl + C, чтобы остановить процесс.
Шаг 7 - Настройка службы Systemd
Вышеуказанный процесс для поддержания работы Wiki.js является временным. Чтобы сделать процесс постоянным, нам нужно создать службу systemd для Wiki.js, чтобы запускать ее как фоновую службу. Это позволит Wiki.js работать после перезагрузки системы.
Создайте файл службы systemd для Wiki.js и откройте его для редактирования.
$ sudo nano /etc/systemd/system/wikijs.service
Вставьте следующий код в него. Замените значение переменной User на имя вашего системного пользователя.
[Unit]
Description=Wiki.js
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=navjot
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wikijs
[Install]
WantedBy=multi-user.target
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Перезагрузите системный демон.
$ sudo systemctl daemon-reload
Включите службу Wiki.js.
$ sudo systemctl enable wikijs
Шаг 8 - Установка Nginx
Ubuntu 22.04 поставляется со старой версией Nginx. Вам нужно загрузить официальный репозиторий Nginx, чтобы установить последнюю версию.
Импортируйте официальный ключ Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Настройте официальный репозиторий для Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Закрепите репозиторий, чтобы отдать предпочтение официальному репозиторию перед репозиторием Ubuntu.
$ echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
Обновите список репозиториев системы.
$ sudo apt update
Установите сервер Nginx.
$ sudo apt install nginx -y
Проверьте установку.
$ nginx -v
nginx version: nginx/1.22.1
Запустите сервер Nginx.
$ sudo systemctl start nginx
Проверьте статус службы.
$ sudo systemctl status nginx
? nginx.service - nginx - высокопроизводительный веб-сервер
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-10-25 06:50:05 UTC; 2s ago
Docs: https://nginx.org/en/docs/
Process: 5522 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 5523 (nginx)
Tasks: 2 (limit: 1030)
Memory: 1.8M
CPU: 4ms
CGroup: /system.slice/nginx.service
??5523 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??5524 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Oct 25 06:50:05 wiki systemd[1]: Starting nginx - высокопроизводительный веб-сервер...
Шаг 9 - Установка SSL
Нам нужно установить Certbot для генерации SSL-сертификата. Вы можете либо установить Certbot с помощью репозитория Ubuntu, либо получить последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.
Ubuntu 22.04 поставляется с установленным Snapd по умолчанию. Выполните следующие команды, чтобы убедиться, что ваша версия Snapd обновлена.
$ sudo snap install core
$ sudo snap refresh core
Установите Certbot.
$ sudo snap install --classic certbot
Используйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку на директорию /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Выполните следующую команду для выдачи сертификата.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d wiki.example.com
Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/wiki.example.com на вашем сервере.
Сгенерируйте сертификат Diffie-Hellman group.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Проверьте службу планировщика обновления Certbot.
$ sudo systemctl list-timers
Вы найдете snap.certbot.renew.service как одну из запланированных служб.
NEXT LEFT LAST PASSED UNIT ACTIVATES
.................................................................................................................................
Tue 2022-10-25 00:00:00 UTC 17h left Tue 2022-10-25 04:49:20 UTC 2h ago logrotate.timer logrotate.service
Tue 2022-10-25 02:39:09 UTC 20h left Tue 2022-10-25 06:47:33 UTC 12min ago apt-daily.timer apt-daily.service
Tue 2022-10-25 06:02:00 UTC 8h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Выполните пробный запуск процесса, чтобы проверить, работает ли обновление SSL.
$ sudo certbot renew --dry-run
Если вы не видите ошибок, значит, все готово. Ваш сертификат будет автоматически обновляться.
Шаг 10 - Настройка Nginx
Создайте и откройте файл /etc/nginx/conf.d/wikijs.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/wikijs.conf
Вставьте следующий код в него.
# принудить HTTPS
server {
listen 80;
listen [::]:80;
server_name wiki.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.example.com;
root /var/www/wikijs;
access_log /var/log/nginx/wiki.access.log;
error_log /var/log/nginx/wiki.error.log;
http2_push_preload on; # Включить HTTP/2 Server Push
ssl_certificate /etc/letsencrypt/live/wiki.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/wiki.example.com/chain.pem;
ssl_session_timeout 1d;
# Включить версии TLS (TLSv1.3 требуется для предстоящего HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Включить 0-RTT TLSv1.3. Используйте $ssl_early_data при обратном проксировании, чтобы
# предотвратить атаки повторного воспроизведения.
#
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSP Stapling ---
# получать OCSP-записи из URL в ssl_certificate и кэшировать их
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
add_header X-Early-Data $tls1_3_early_data;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_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;
proxy_pass http://127.0.0.1:3000;
}
}
# Этот блок полезен для отладки TLS v1.3. Пожалуйста, не стесняйтесь удалять это
# и использовать переменную `$ssl_early_data`, предоставленную NGINX напрямую, если вы
# хотите это сделать.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}
Замените корневую директорию в приведенном выше файле на директорию на вашем сервере.
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Откройте файл /etc/nginx/nginx.conf для редактирования.
$ sudo nano /etc/nginx/nginx.conf
Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Проверьте вашу конфигурацию Nginx.
$ sudo nginx -t
Если вы не видите ошибок, значит, вы готовы к работе.
Запустите службу Wiki.js.
$ sudo systemctl start wikijs
Перезагрузите сервер Nginx.
$ sudo systemctl reload nginx
Шаг 11 - Завершение установки
Посетите URL https://wiki.example.com, чтобы завершить установку.

Заполните данные своей учетной записи администратора и URL. Отключите телеметрию, сняв флажок с опции Разрешить телеметрию. Вы также можете отключить ее из панели администратора. Нажмите кнопку Установить, чтобы продолжить.
Вы будете перенаправлены на страницу входа.

Введите данные своей учетной записи и нажмите кнопку Войти, чтобы перейти на страницу администрирования.

Теперь вы можете начать использовать Wiki.js.
Заключение
На этом наше руководство завершено, в котором вы узнали, как установить Wiki.js на сервер Ubuntu 22.04. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.