Установка Wiki.js в Docker Compose и подключение Elasticsearch, Keycloak, Git
Wiki.js - это вики-движок с открытым исходным кодом, написанный на языке JavaScript и использующий Node.js как основу. Он позволяет создавать и управлять веб-вики, использующими Markdown для форматирования текста. Wiki.js предназначен для создания и управления централизованными базами знаний, документацией, информационными ресурсами и другими типами контента.
Установка Docker и Docker Compose
- Установка Docker и Docker Compose в Debian была рассмотрена в одной из предыдущих статей.
- Установка Docker и Docker Compose в RHEL-like дистрибутиве так же была рассмотрена в одной из предыдущих статей.
Установка Wiki.js
Создадим каталог /opt/wikijs и назначим текущего пользователя владельцем каталога
1
2
$ sudo mkdir -p /opt/wikijs
$ sudo chown -R $(whoami):$(whoami) /opt/wikijs
Перейдем в каталог и создадим файл docker-compose.yml с содержимым
1
2
$ cd /opt/wikijs
$ nano docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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"
elasticsearch:
image: elasticsearch:7.17.6
restart: unless-stopped
environment:
discovery.type: single-node
ES_JAVA_OPTS: "-Xms2G -Xmx2G"
volumes:
db-data:
Запускаем Wiki.js
1
$ docker compose up -d
Переходим в Web-интерфейс, задаем email и пароль для административного доступа
Подключаем Elasticsearch
Elasticsearch - это масштабируемая поисковая система, которая позволяет эффективно индексировать и обрабатывать большие объемы данных, включая текст, числа, даты и другие типы данных. Она написана на Java и использует JSON REST API для работы с данными, а также основана на технологии Apache Lucene для полнотекстового поиска.
Как видно из содержимого файла docker-compose.yml, контейнер Elasticsearch мы уже подключили.
Для активации Elasticsearch переходим
Администрирование > Поисковая система
Прописываем следующие настройки
- Elasticsearch Version:
7.x - Host:
http://elasticsearch:9200 - Verify TLS Certificate:
Off - Index Name:
wiki - Analyzer:
simple - Sniff on start:
Off - Sniff Interval:
0
Поиск Elasticsearch подключен, можно проверять
Подключаем авторизацию Keycloak
- Установка Keycloak + PostgeSQL в Linux была рассмотрена в одной из предыдущих статей.
- Список статей из категории Keycloak
На стороне Keycloak сервера создаем клиента со следующими параметрами
- Client ID:
wikijs - Root URL:
https://wiki.itdraft.ru - Home URL:
https://wiki.itdraft.ru - Valid redirect URIs:
/login/122b715d-1111-4a0b-a232-6f3503434b46/callback-# этот параметр берется из админки Wiki.js - Valid redirect URIs:
https://wiki.itdraft.ru/* - Web origins:
*
Копируем Client secret в настройках клиента wikijs во вкладке Credentials
Переходим в админку Wiki.js, добавляем авторизацию Keycloak
Администрирование > Авторизация > Добавить стратегию > Keycloak
- Host:
https://keycloak.itdraft.ru:8443 - Realm:
itdraft - Client ID:
wikijs - Client Secret:
### - Authorization Endpoint URL:
https://keycloak.itdraft.ru:8443/realms/itdraft/protocol/openid-connect/auth - Token Endpoint URL:
https://keycloak.itdraft.ru:8443/realms/itdraft/protocol/openid-connect/token - User Info Endpoint URL:
https://keycloak.itdraft.ru:8443/realms/itdraft/protocol/openid-connect/userinfo
- Logout Endpoint URL:
https://keycloak.itdraft.ru:8443/realms/itdraft/protocol/openid-connect/logout - Разрешить самостоятельную регистрацию:
On - Ограничить указанными почтовыми доменами:
itdraft.ru - Назначить в группу:
IT-# данную группу необходимо создать заранее - В
Справке по конфигурацииберем значениеCallback URL / Redirect URI, которое прописываем на стороне Keycloak
Настройка авторизации Keycloak завершена, можно проверять
Подключаем хранилище Git
В нашей системе управления репозиториями (GitHub, Gitlab) создаем репозиторий для хранения документации Wiki.js
Создаем приватный и публичный ключ, для подключения к репозиторию
1
$ ssh-keygen -f wikijs -t ed25519 -C "wikijs-ed25519-key"
Переходим в админку Wiki.js, добавляем хранилище Git
Администрирование > Хранилище > Git
- Authentication Type:
ssh - Repository URI:
ssh://git@gitlab.itdraft.ru/m.makarov/wikijs.git - Branch:
main - SSH Private Key Mode:
contents - B - SSH Private Key Contents:
###-# Приватный ключ, который мы генерировали ранее
- Default Author Email:
m.makarov@itdraft.ru - Default Author Name:
Максим Макаров - Способ синхронизации:
Двунаправленная синхронизация
Подключение хранилища Git закончено






