Wiki.js - структурированная документация

Как вы знаете, я пилю на досуге собственную блог-платформу и фреймворк, даже для меня самого требуется наличие какой-то документации на проект, иногда залезаю спустя полгода в свой же код и совершенно забыл какие методы какую логику преследуют, приходится залезать в другой код и там снова вникать, ну это долго, да и последователям нужно что-то оставить, чтобы взяв мой код с GitHub могли быстро проникнуться за полчаса и накатать свое...

Конечно, я могу за выходные свою wiki-систему запилить и свою блог-систему, но тут можно упереться в такую ситуацию "решил сделать блог о программировании, но сперва нужно написать свою блог систему", в общем, если есть готовые решения, то запускаем их да и всё, мой блог на Ghost (хотя к нему много вопросов), а вот Wiki будет на wiki.js

Почему не DocuWiki?

Раннее я всегда использовал обычные docuwiki, их достоинство - просто скопировал папку, запустил php и работает, можно локально использовать, можно на домашнем сервере запустить, не требует никаких баз данных, есть и пить не просит, с учетом того что в документацию заходишь раз в полгода то и скорости какой то и хайлоада не требуется.

пример странички на DocuWiki

Есть еще MediaWiki, та самая, на которой википедия работает, для этих вики есть куча плагинов и оформлений, но что-то в этих системах уже определенно устарело и сам синтаксис не нравится.

Что такое Wiki.js

Wiki.JS это вики-система на Node.js, версия 2.5 пока не особо развита, но функционала достаточно. Редактор страниц как обычный визивиг, так и наш любимый MarkDown, даже в текущей блог системе Ghost я привык все списки и заголовки и блоки с кодом набирать на MarkDown

Базовая структура этой системки вполне заточена под создание последовательных структурированных документаций с содержанием, с листингами кода, можно вставлять картинки в целом, всё что нужно...

Но у этой системы чувствуется недоделка, хочется конечно редактор как на Ghost, хочется вставка картинок из буфера обмена прямо в редакторе, тут это можно делать даже в MarkDown режиме, кнопочку слева нажал и ctrl+v

Установка Wiki.js за 5 секунд

В наше время не требуется много сил на развертывание, как это было в моей "молодости", Docker творит чудеса и не особо важно какой у вас линукс, главное чтобы там докер был.

Вариантов с развертыванием PostgreSQL, Mysql и другого не буду рассматривать, меня интересует минималичная документашка под маленький проект и встраиваемая sqlite вполне подойдет

Сперва создадим директорию под наш проект, пусть это будет /www/wiki.js/

mkdir -p /www/wiki.js

#переходим в папку
cd /www/wiki.js

#создаем пустую базу
sqlite3 database.sqlite "VACUUM;"

Далее создадим минимальный конфиг nano  config.yml

port: 3000
db:
  type: sqlite
  storage: /wiki/database.sqlite

#ssl:
#  enabled: false
#  port: 3443

bindIP: 0.0.0.0
logLevel: info
offline: false
ha: false

# ---------------------------------------------------------------------
# Data Path
# ---------------------------------------------------------------------
# Writeable data path used for cache and temporary user uploads.
dataPath: /wiki/data

Запускаем первый вариант - отладочный, консоль заблокируется, но можно уже в браузеер открыть https://192.168.0.2:8080 и провести инсталляцию

вместо 192.168.0.2 ваш ip, вероятно это будет просто localhost если на текущем пк
docker run \
  --rm \
  --publish 8080:3000 \
  --name wiki.js \
  --volume $PWD/database.sqlite:/wiki/database.sqlite \
  --volume $PWD/config.yml:/wiki/config.yml \
  requarks/wiki:2

Если всё ок - жмем `ctrl+c` в консольке и стартуем докер в режиме автозапускаемого фонового сервиса

docker run \
  -d \
  --restart=always \
  --publish 8080:3000 \
  --name wiki.js \
  --volume $PWD/database.sqlite:/wiki/database.sqlite \
  --volume $PWD/config.yml:/wiki/config.yml \
  requarks/wiki:2

В целом всё! Дальше можно настроить проксирование через nginx, добавить https через certbot на nginx, а вместо 8080:3000 в порте можно указать 127.0.0.1:8080:3000 чтобы сразу закрыть прямое обращение минуя nginx.

Показать комментарии