Wiki.js - это вики-движок, работающий на Node.js и написанный на JavaScript. Это бесплатное программное обеспечение, выпущенное под лицензией Affero GNU General Public License.
Устанавливать будем на сервер Ubuntu 22.04 с использованием PostgreSQL и веб-сервера Nginx
Установим обновления и необходимые пакеты:
sudo apt update && sudo apt -y install nginx postgresql-14 nodejs
Далее создадим базу и пользователя для Wiki.Js:
sudo -u postgres psql
CREATE DATABASE wiki_db;
CREATE USER wiki_user WITH PASSWORD 'jd83hdhap832';
GRANT ALL PRIVILEGES ON DATABASE wiki_db to wiki_user;
ALTER DATABASE wiki_db OWNER TO wiki_user;
\q
Перейдем в директорию /opt и скачаем приложение:
cd /opt
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
Создадим рабочую директорию и распакуем в нее файлы приложения:
mkdir wiki
tar xzf wiki-js.tar.gz -C ./wiki
cd ./wiki
Переименуем конфигурационный файл-образец в рабочий вариант config.ymi:
mv config.sample.yml config.yml
Отредактируем файл:
sudo nano /opt/wiki/config.yml
В разделе db: укажем ранее созданные базу и пользователя в ней:
host: localhost
port: 5432
user: wiki_user
pass: jd83hdhap832
db: wiki_db
ssl: false
Конечно же, имя базы, пользователя и пароль должны быть на Ваше усмотрение.
Минимальная настройка выполенена. Старуем сервис:
node server
Если все было сделано верно, то перейдя по http://ip-you-server:3000 мы увидим окно приветствия предложение создать администратора сервиса.
Создадим юнит для запуска сервиса в автоматическом режиме:
sudo nano /etc/systemd/system/wiki.service
Содержимое файла следующее:
[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=root
Environment=NODE_ENV=production
WorkingDirectory=/opt/wiki
[Install]
WantedBy=multi-user.target
Разработчики wiki.js реккомендуют использовать Nginx в качестве реверс-прокси для настройки безопасного соединения.
Для этого нужно иметь свое доменное имя и действующий сертификат, подвертждающий Ваш домен.
Для начала создаем файл виртуального хоста для Wiki.js:
sudo nano /etc/nginx/conf.d/wikijs.conf
Для http соединения, без сертификатов содержимое это файла будет следующее:
server {
listen 80;
server_name wiki.example.com;
root /var/www/wikijs;
# Pass requests to the Wiki.js service listening on 127.0.0.1:3000
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
}
}
Для https:
server {
listen 443 ssl;
server_name it-cheats.ru;
#те самые сертификаты, подтверждающие домен
ssl_certificate /etc/ssl/it-cheats.crt;
ssl_certificate_key /etc/ssl/it-cheats.key;
access_log /var/log/nginx/it-cheats-access.log;
error_log /var/log/nginx/it-cheats-error.log;
# Pass requests to the Wiki.js service listening on 127.0.0.1:3000
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
}
}
Если на вики будет организован доступ из интернета, лучше закрыть все порты, кроме необходимого для работы сервиса (80 или 443), например с помощью пакета UFW или IPTABLES