Установка · 9 min read · Oct 14, 2025
Как установить Wiki.js на Rocky Linux 9

Wiki.js — это программное обеспечение для вики с открытым исходным кодом и легким весом. Оно построено на JavaScript-фреймворке Node.js. Его можно использовать для написания документации, вики и веб-контента с помощью редактора Markdown для разработчиков и WYSIWYG-редактора для не технических пользователей. Оно поддерживает несколько типов контента, включая UML-диаграммы, математические выражения с использованием синтаксиса Tex или MathML и код. Включает несколько модулей для различных функций, включая аналитику, аутентификацию, ведение журналов, сторонние поисковые системы и несколько сервисов хранения для синхронизации вашего контента.
В этом руководстве вы научитесь устанавливать Wiki.js на сервер Rocky Linux 9, используя базу данных PostgreSQL и сервер Nginx для проксирования.
Предварительные требования
- Сервер с установленным Rocky Linux 9.
- Пользователь, не являющийся root, с правами sudo.
- Полное доменное имя (FQDN), указывающее на ваш сервер. Для наших целей мы будем использовать
wiki.example.comв качестве доменного имени. - Убедитесь, что все обновлено.
$ sudo dnf update - Установите основные утилиты. Некоторые из них могут быть уже установлены.
$ sudo dnf install wget curl nano unzip yum-utils -y
Шаг 1 - Настройка брандмауэра
Первый шаг — настроить брандмауэр. Rocky Linux использует брандмауэр Firewalld. Проверьте статус брандмауэра.
$ sudo firewall-cmd --state
running
Брандмауэр работает с различными зонами, и публичная зона является той, которую мы будем использовать по умолчанию. Перечислите все службы и порты, активные на брандмауэре.
$ sudo firewall-cmd --permanent --list-services
Он должен показать следующий вывод.
cockpit dhcpv6-client ssh
Wiki.js нуждается в портах HTTP и HTTPS для работы. Откройте их.
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent
Перезагрузите брандмауэр, чтобы применить изменения.
$ sudo firewall-cmd --reload
Шаг 2 - Установка PostgreSQL и утилит
Rocky Linux 9 поставляется со старой версией PostgreSQL. Мы установим Postgres 14 для нашего руководства.
Установите RPM-репозиторий для PostgreSQL.
$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Установите сервер PostgreSQL 14.
$ sudo dnf install -y postgresql14-server postgresql14-contrib
Инициализируйте базу данных.
$ sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Включите и запустите службу PostgreSQL.
$ sudo systemctl enable postgresql-14 --now
Проверьте статус службы.
$ sudo systemctl status postgresql-14
? postgresql-14.service - PostgreSQL 14 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2022-10-22 09:52:41 UTC; 2s ago
Docs: https://www.postgresql.org/docs/14/static/
Process: 103857 ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 103862 (postmaster)
Tasks: 8 (limit: 5915)
Memory: 16.6M
CPU: 61ms
CGroup: /system.slice/postgresql-14.service
??103862 /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
??103863 "postgres: logger "
??103865 "postgres: checkpointer "
??103866 "postgres: background writer "
??103867 "postgres: walwriter "
??103868 "postgres: autovacuum launcher "
??103869 "postgres: stats collector "
??103870 "postgres: logical replication launcher "
Oct 22 09:52:41 wiki.example.com systemd[1]: Starting PostgreSQL 14 database server...
Шаг 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://rpm.nodesource.com/setup_16.x | sudo bash -
Установите Node.
$ sudo dnf 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
Шаг 6 - Настройка и запуск Wiki.js
Создайте файл конфигурации из образца.
$ cp config.sample.yml config.yml
Откройте файл конфигурации для редактирования.
$ nano config.yml
Найдите следующие настройки базы данных и обновите их значения на те, которые были настроены на шаге 3.
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
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
Вы получите аналогичный вывод, подтверждающий успешную установку.
2022-10-22T10:25:48.187Z [MASTER] info: =======================================
2022-10-22T10:25:48.190Z [MASTER] info: = Wiki.js 2.5.289 =====================
2022-10-22T10:25:48.191Z [MASTER] info: =======================================
2022-10-22T10:25:48.191Z [MASTER] info: Initializing...
2022-10-22T10:25:49.079Z [MASTER] info: Using database driver pg for postgres [ OK ]
2022-10-22T10:25:49.086Z [MASTER] info: Connecting to database...
2022-10-22T10:25:49.117Z [MASTER] info: Database Connection Successful [ OK ]
2022-10-22T10:25:49.467Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2022-10-22T10:25:49.468Z [MASTER] info: Starting setup wizard...
2022-10-22T10:25:49.740Z [MASTER] info: Starting HTTP server on port 3000...
2022-10-22T10:25:49.741Z [MASTER] info: HTTP Server on port: [ 3000 ]
2022-10-22T10:25:49.745Z [MASTER] info: HTTP Server: [ RUNNING ]
2022-10-22T10:25:49.745Z [MASTER] info: .......................................
2022-10-22T10:25:49.745Z [MASTER] info:
2022-10-22T10:25:49.746Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
Нажмите 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
Rocky Linux поставляется со старой версией Nginx. Вам нужно загрузить официальный репозиторий Nginx, чтобы установить последнюю версию.
Создайте и откройте файл /etc/yum.repos.d/nginx.repo для создания официального репозитория Nginx.
$ sudo nano /etc/yum.repos.d/nginx.repo
Вставьте следующий код в него.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Установите сервер Nginx.
$ sudo dnf install nginx -y
Проверьте установку.
$ nginx -v
nginx version: nginx/1.22.1
Включите и запустите сервер Nginx.
$ sudo systemctl enable nginx --now
Проверьте статус сервера.
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2022-10-22 11:15:39 UTC; 49min ago
Docs: http://nginx.org/en/docs/
Process: 116236 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 116237 (nginx)
Tasks: 2 (limit: 5915)
Memory: 5.0M
CPU: 245ms
CGroup: /system.slice/nginx.service
??116237 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??116238 "nginx: worker process"
Oct 22 11:15:39 wiki.example.com systemd[1]: Starting nginx - high performance web server...
Шаг 9 - Установка SSL
Мы будем использовать инструмент Certbot с помощью инструмента Snapd для выдачи SSL-сертификатов. Он требует репозиторий EPEL для работы.
$ sudo dnf install epel-release
Мы будем использовать Snapd для установки Certbot. Установите Snapd.
$ sudo dnf install snapd
Включите и запустите службу Snap.
$ sudo systemctl enable snapd.socket --now
Создайте необходимые ссылки для работы Snapd.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Установите основной репозиторий Snapd.
$ sudo snap install core
$ sudo snap refresh core
Установите Certbot.
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Сгенерируйте сертификат. Следующая команда также автоматически настроит Nginx.
$ 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
Проведите пробный запуск процесса, чтобы проверить, работает ли обновление SSL.
$ sudo certbot renew --dry-run
Если вы не видите ошибок, значит, все готово. Ваш сертификат будет автоматически обновляться.
Шаг 10 - Настройка SELinux
Выполните следующие команды, чтобы применить правильный контекст SELinux к каталогу Wiki.js.
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wikijs(/.*)?"
$ sudo restorecon -Rv /var/www/wikijs
Создайте порт для HTTP и назначьте его на 3000, чтобы Wiki.js работал с SELinux.
$ sudo semanage port -a -t http_port_t -p tcp 3000
Разрешите Nginx подключаться к сети.
$ sudo setsebool -P httpd_can_network_connect 1
Шаг 11 - Настройка Nginx
Создайте и откройте файл /etc/nginx/conf.d/wikijs.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/wikijs.conf
Вставьте следующий код в него.
# enforce 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; # Enable 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;
# Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
# prevent replay attacks.
#
# @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-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
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;
}
}
# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the `$ssl_early_data` variable exposed by NGINX directly should you
# wish to do so.
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
Шаг 12 - Завершение установки
Перейдите по адресу https://wiki.example.com, чтобы завершить установку.

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

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

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