Как установить Wiki.js с обратным прокси-сервером Apache2 в Ubuntu 22.04
На этой странице
- Предварительные условия
- Установка Node.js
- Установка базы данных PostgreSQL
- Установка Wiki.js
- Настройка Apache2 в качестве обратного прокси
- Настройка установки Wiki.js
- Заключение
Wiki.js — это бесплатное вики-программное обеспечение с открытым исходным кодом, основанное на Node.js, Git и Markdown. Он выпущен под лицензией AGPL-v3 и предназначен для повышения производительности и сохранения ресурсов системы. Wiki.js — мощное программное обеспечение Wiki, которое можно установить в любом месте вашей системы; вы можете установить его в своей операционной системе или с помощью облачных сервисов, таких как Heroku, а также развернуть Wiki.js в своих контейнерных средах, таких как Docker и Kubernetes.
Wiki.js совместим с базой данных PostgreSQL и обеспечивает более 50 интеграций для дополнительной аутентификации, систем журналирования, поисковых систем, рендеринга и хранения. Это мощное программное обеспечение Wiki, построенное на красивых и интуитивно понятных интерфейсах для панели администрирования и страниц. это полностью настраиваемое вики-программное обеспечение для документирования вашего технологического стека.
В этом руководстве вы установите и настроите Wiki.js на сервере Ubuntu 22.04, используя PostgreSQL в качестве базы данных по умолчанию и Apache2 в качестве обратного прокси-сервера. Кроме того, при установке Wiki.js у вас будет безопасное соединение HTTPS/SSL. Когда вы закончите, у вас будет полнофункциональный и защищенный Wiki.js в вашей системе Ubuntu.
Предварительные условия
Чтобы выполнить это руководство, вам сначала потребуются следующие требования:
- Сервер Ubuntu 22.04.
- Пользователь без полномочий root с правами root/администратора.
- Доменное имя, указывающее на IP-адрес вашего сервера Ubuntu.
Установка Node.js
Перед установкой Wiki.js необходимо установить зависимости, необходимые Wiki.js.
Wiki.js — это вики-программа, написанная в основном на JavaScript, поэтому на первом этапе вы установите среду выполнения JavaScript Node.js. Репозиторий Ubuntu по умолчанию предоставляет пакет Node.js, но в этом руководстве для установки Node.js вы будете использовать репозиторий Nodesource.
Запустите команду Curl ниже, чтобы добавить репозиторий Nodesource в вашу систему Ubuntu. На момент написания этой статьи Wiki.js требовал как минимум Node.js v8 и выше. Для этого руководства вы установите LTS-версию Node.js v16.
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
Теперь вы можете установить пакет Node.js, используя приведенную ниже команду apt.
sudo apt install nodejs
После завершения установки проверьте версию Node.js, используя следующую команду. Вы должны увидеть версию Node.js v16 LTS на экране терминала.
node --version
npm --version
Установка базы данных PostgreSQL
WIki.js по умолчанию поддерживает несколько СУБД, таких как PostgreSQL, MySQL/MariaDB и SQLite (по умолчанию), но рекомендуемой базой данных для рабочей среды является PostgreSQL. Вы установите пакет PostgreSQL в системе Ubuntu, затем создадите базу данных и пользователя для Wiki.js.
Для начала выполните следующую команду apt, чтобы установить базу данных PostgreSQL на ваш сервер. Введите Y, чтобы подтвердить установку, и нажмите ENTER, чтобы продолжить, и установка начнется.
sudo apt install postgresql postgresql-common
После завершения установки выполните следующую команду systemctl, чтобы проверить и проверить службу PostgreSQL. Вы должны увидеть, что служба PostgreSQL включена, а это значит, что она автоматически запускается при загрузке системы. Текущий статус службы PostgreSQL — «Активен».
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Войдите в консоль PostgreSQL, используя команду ниже, чтобы создать базу данных и пользователя PostgreSQL.
sudo -u postgres psql
Запустите следующую команду из консоли PostgreSQL, чтобы создать новую базу данных и пользователя для Wiki.js. В этом примере мы создаем базу данных «wikijs» и пользователя «wiki» с паролем «wikijspassword».
CREATE DATABASE wikijs;
CREATE USER wiki WITH ENCRYPTED PASSWORD 'wikijspassword';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wiki;
Теперь вы можете использовать «Ctrl+d» для выхода из консоли PostgreSQL или просто использовать команду «\q» для выхода.
Установка Wiki.js
Теперь вы вручную установите Wiki.js в свою систему Ubuntu. С помощью этого руководства вы создадите системного пользователя для Wiki.js, загрузите исходный код Wiki.js, настроите Wiki.js с базой данных PostgreSQL и, наконец, запустите Wiki.js как службу systemd.
Сначала выполните следующую команду, чтобы создать нового пользователя для Wiki.js. В этом примере мы создаем нового системного пользователя с именем «wiki» с домашним каталогом по умолчанию «/opt/wikijs», и поскольку это системный пользователь, мы отключают доступ к оболочке.
sudo useradd -r -d /opt/wikijs -s /usr/sbin/nologin wiki
Теперь загрузите исходный код Wiki.js, используя команду wget ниже.
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
После завершения загрузки создайте новый каталог «/opt/wikijs» и извлеките в него исходный код Wiki.js. Вы должны увидеть, что исходный код Wiki.js доступен в каталоге установки "/opt/wikijs".
mkdir -p /opt/wikijs
tar xzf wiki-js.tar.gz -C /opt/wikijs
Чтобы настроить Wiki.js с базой данных PostgreSQL, скопируйте образец конфигурации по умолчанию «config.sample.yml» и измените/отредактируйте его с помощью текстового редактора.
Выполните следующую команду, чтобы скопировать пример файла конфигурации Wiki.js в «/opt/wikijs/config.yml». Затем отредактируйте новый файл «/opt/wikijs/config.yml» с помощью редактора nano.
cp /opt/wikijs/config.sample.yml /opt/wikijs/config.yml
nano /opt/wikijs/config.yml
Измените конфигурацию по умолчанию, как показано ниже.
В этом примере мы запустим Wiki.js через TCP-порт по умолчанию «3000». Обязательно измените имя базы данных PostgreSQL, пользователя и пароль. В опции «bindIP» измените на localhost или «127.0.0.1». Для конфигурации журнала Wiki.js мы будем использовать уровень по умолчанию «info» в формате «json».
# default port wikijs will run
port: 3000
# PostgreSQL database details
db:
type: postgres
host: localhost
port: 5432
user: wiki
pass: wikijspassword
db: wikijs
ssl: false
# bind wikijs to localhost only
bindIP: 127.0.0.1
# setup log and the format
loglevel: info
logFormat: json
Сохраните и закройте файл, когда закончите.
Теперь запустите приведенную ниже команду chown, чтобы изменить владельца каталога установки Wiki.js "/opt/wikijs" на пользователя "wiki".
sudo chown -R wiki:wiki /opt/wikijs
В этом примере мы запустим Wiki.js как службу systemd. Итак, вам нужно создать новый служебный файл systemd для Wiki.js.
Выполните следующую команду, чтобы создать новый файл службы systemd "/etc/systemd/system/wikijs.service".
sudo nano /etc/systemd/system/wikijs.service
Добавьте в файл следующую конфигурацию.
[Unit]
Description=Wiki.js
After=network.target postgresql.service
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs
[Install]
WantedBy=multi-user.target
Сохраните и закройте файл, когда закончите.
Затем выполните следующую команду, чтобы перезагрузить системный менеджер и применить новый служебный файл «wikijs.service».
sudo systemctl daemon-reload
Теперь вы можете запустить и включить службу «wikijs», используя следующую команду.
sudo systemctl start wikijs
sudo systemctl enable wikijs
Наконец, проверьте и подтвердите службу «wikijs», используя следующую команду. Теперь вы должны увидеть, что служба «wikijs» работает на TCP-порту по умолчанию «3000» с PostgreSQL в качестве базы данных по умолчанию.
sudo systemctl status wikijs
Настройка Apache2 в качестве обратного прокси
В этом примере Wiki.js теперь работает на TCP-порту «3000». Чтобы обеспечить доступ к внешним сетям или Интернету, лучше настроить обратный прокси-сервер перед Wiki.js и применить HTTPS/SSL поверх него, чтобы защитить любые учетные данные и вход в систему. Вы также будете использовать Apache2 в качестве обратного прокси-сервера для Wiki.js.
Запустите команду apt ниже, чтобы установить пакет Apache2. Введите Y, чтобы подтвердить установку, и нажмите ENTER, чтобы продолжить, и установка начнется.
sudo apt install apache2
После завершения установки выполните приведенную ниже команду «ufw», чтобы открыть порты HTTP и HTTPS в вашей системе Ubuntu. Затем проверьте список правил UFW.
sudo ufw allow "Apache Full"
sudo ufw status
Затем включите некоторые модули Apache2, используя следующую команду. Вы будете использовать эти модули для настройки обратного прокси-сервера Apache2.
sudo a2enmod proxy proxy_http ssl remoteip http2
Теперь создайте новую конфигурацию виртуального хоста Apache2 «/etc/apache2/sites-available/wikijs.conf», используя следующую команду.
sudo nano /etc/apache2/sites-available/wikijs.conf
Добавьте в файл следующую конфигурацию. В этом примере мы будем использовать домен «wiki.howtoforge.local» для установки Wiki.js и сертификаты SSL от letsencrypt. Обязательно измените имя домена и путь к сертификатам SSL.
<VirtualHost *:80>
ServerName wiki.howtoforge.local
# Comment to prevent HTTP to HTTPS redirect
Redirect permanent / https://wiki.howtoforge.local
ErrorLog /var/log/apache2/wiki.howtoforge.local-error.log
CustomLog /var/log/apache2/wiki.howtoforge.local-access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName wiki.howtoforge.local
ProxyPreserveHost On
ProxyPass "/" "http://127.0.0.1:3000/"
ProxyPassReverse "/" "http://127.0.0.1:3000/"
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/wiki.howtoforge.local/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/wiki.howtoforge.local/privkey.pem
Protocols h2 http/1.1
# Enable only strong encryption ciphers and prefer versions with forwarding Secrecy
SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
SSLHonorCipherOrder on
# Disable insecure SSL and TLS versions
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
ErrorLog /var/log/apache2/wiki.howtoforge.local-error.log
CustomLog /var/log/apache2/wiki.howtoforge.local-access.log combined
</VirtualHost>
</IfModule>
Сохраните и закройте файл, когда закончите.
Затем активируйте файл виртуального хоста «wikijs.conf», используя следующую команду.
sudo a2ensite wikijs.conf
Проверьте и проверьте конфигурацию Aache2, используя следующую команду. Если вы получите выходное сообщение, например «Синтаксис в порядке», это означает, что конфигурация Apache2 готова. Затем перезапустите службу Apache2, чтобы применить новые изменения.
sudo apachectl configtest
sudo systemctl restart apache2
Настройка установки Wiki.js
Откройте веб-браузер и перейдите по доменному имени вашей установки Wiki.js (например: https://wiki.howtoforge.local/).
Введите новый адрес электронной почты администратора, пароль и URL-адрес сайта для вашей установки Wiki.js. Затем нажмите кнопку «УСТАНОВИТЬ», чтобы начать установку.
После завершения установки вы увидите страницу входа в Wiki.js. введите адрес электронной почты и пароль администратора и нажмите «Войти».
Теперь вы увидите приветственное сообщение от Wiki.js. Нажмите кнопку «СОЗДАТЬ ГЛАВНУЮ СТРАНИЦУ», чтобы настроить индексную страницу по умолчанию для вашего Wiki.js.
Выберите редактор, который вы хотите использовать. В этом примере мы будем использовать редактор Markdown.
Введите заголовок, описание и другие данные. Затем нажмите «ОК».
Введите индексную страницу сведений для вашего Wiki.js и нажмите «СОЗДАТЬ» для подтверждения.
Вы должны увидеть домашнюю страницу Wiki.js по умолчанию, которую вы только что создали.
Чтобы получить доступ к панели администрирования Wiki.js, щелкните значок настроек шестеренки в левом верхнем углу. Вы должны увидеть панель администрирования Wiki.js ниже.
Заключение
В этом руководстве вы настроили Wiki.js поверх базы данных PostgreSQL и обратного прокси-сервера Apache2, работающего на последней версии сервера Ubuntu 22.04. Вы также защитили свой Wiki.js с помощью брандмауэра UFW и включения SSL/HTTPS на обратном прокси-сервере Apache. В конце вы также настроили домашнюю страницу или индекс по умолчанию для вашей установки Wiki.js.
Вы можете создавать дополнительный контент и настраивать категории для своего вики-проекта. Вы также можете добавить некоторые модули в свой Wiki.js, чтобы расширить его функциональность или настроить новые темы для Wiki.js.