Обновляем репозиторий и устанавливаем основные утилиты 1 2 dnf update -y dnf install epel-release git curl unzip -y
Подключаем репо Node и устанавливаем 1 2 3 curl -sL https://rpm.nodesource.com/setup_12.x | bash - dnf install nodejs -y dnf install redis -y
1 2 systemctl start redis systemctl enable redis
Устанавливаем nginx и базу данных MariaDB 1 dnf install nginx @mariadb -y
Запускаем nginx и mariadb 1 2 3 4 systemctl start nginx systemctl start mariadb systemctl enable nginx systemctl enable mariadb
Отвечаем на вопросы скрипта начального конфигурирования DB Выставляем пароль root, выключаем anon logon выключаем remote root logon, выключаем тестовые базы mysql_secure_installation
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Создаем таблицы для wikijs 1 2 3 4 5 6 MariaDB [(none)]> CREATE DATABASE wikidb; GRANT ALL PRIVILEGES ON wikidb.* TO 'wiki'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EXIT;
Создаем пользователей и директории 1 2 groupadd --system wiki useradd -s /sbin/nologin --system -g wiki wiki
1 curl -s https://api.github.com/repos/Requarks/wiki/releases/latest | grep browser_download_url | grep -v windows | cut -d '"' -f 4 | wget -qi -
1 2 mkdir -p /var/www/html/wiki tar zxf wiki-js.tar.gz -C /var/www/html/wiki
1 2 cd /var/www/html/wiki cp config.sample.yml config.yml
Редактируем конфиг 1 2 3 4 5 6 7 8 9 10 11 vi config.yml > db: type: mariadb host: localhost port: 3306 user: wiki pass: password db: wikidb ssl: false
1 chown -R wiki:wiki /var/www/html/wiki
Запускаем сервер для теста
Нажимаем Ctrl+C
чтобы остановить сервер 1 vi /etc/systemd/system/wiki.service
1 2 3 4 5 6 7 8 9 10 11 12 [Unit] Description=Wiki.js After=network.target [Service] Type=simple ExecStart=/usr/bin/node server Restart=always User=wiki Environment=NODE_ENV=production WorkingDirectory=/var/www/html/wiki [Install] WantedBy=multi-user.target
Перезагружаем systemctl и запускаем wiki 1 2 3 4 systemctl daemon-reload systemctl start wiki systemctl enable wiki
Редактируем конфиг nginx 1 vi /etc/nginx/conf.d/wikijs.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 server { listen 80; server_name wiki.example.com; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; 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_next_upstream error timeout http_502 http_503 http_504; } }
Добавляем правила firewalld 1 2 3 firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --zone=public --add-service=https --permanent firewall-cmd --reload
Устанавливаем nginx ssl 1 dnf install certbot python3-certbot-nginx
1 2 3 4 certbot --nginx -d docs.yourdomain.ru -d docs.yourdomain.ru -m admin@docs.yourdomain.ru systemctl restart nginx crontab -e certbot renew --dry-run
Устанавливаем задание в cron 1 2 crontab -e 0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew --quiet
Поздравляю!!! Установка завершена!!!