Wiki.js - это вики-движок, работающий на Node.js и написанный на JavaScript. Это бесплатное программное обеспечение, выпущенное под лицензией Affero GNU General Public License. На нем работает этот сайт.
Инструкция так же актуальная для Debian 12 и Ubuntu старше 22 версии.
Установим нужные нам пакеты:
sudo apt update && sudo apt -y install nginx postgresql nodejs
Запустим СУБД, подключимся к ней и создидим базу для самой Вики:
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
Загрузим актуальную версию:
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.yml
mv config.sample.yml config.yml
Отредактируем файл учитывая ранее созданную базу и роль:
sudo nano /opt/wiki/config.yml
host: localhost
port: 5432
user: wiki_user
pass: jd83hdhap832
db: wiki_db
ssl: false
Готово! Для проверки запустим сервис находясь в этом же каталоге:
node server
Сервис будет доступен по ip-адресу и порту 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
systemctl daemon-reload
systemctl enable --now wiki
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;
}
}
nano wikijs.yaml
services:
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: wikijs
logging:
driver: none
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
wiki:
image: ghcr.io/requarks/wiki:2
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijsrocks
DB_NAME: wiki
restart: unless-stopped
ports:
- "80:3000"
volumes:
db-data:
Запуск
docker compose -f wikijs.yaml up -d
Остановка
docker compose -f wikijs.yaml down