[[β-Doku]]
 

β-Doku

Проект с открытым кодом для организации зеркала DokuWiki для протокола Gemini.

Написан на языке PHP 8, в качестве основы использует:

  • gemini-php - для конвертации базы данных и безопасной работы с файловой системой
  • titan-II - форк сервера с поддержкой IPv6
  • cache-php - оболочка для кеширования скомпилированных страниц посредством Memcached
  • manticore - для полнотекстового поиска

Примеры

β-Doku изначально создан для организации зеркала этого сайта:

  • gemini://[301:23b4:991a:634d::b]
    • gemini://betahowto.ygg - алиас
    • gemini://betahowto.duckdns.org - алиас в Интернет

Установка

Проект находится в процессе разработки, актуальная инструкция доступна в README

Синхронизация

Ресурс «betahowto» для всех инстансов использует автоматический дамп в качестве источника.

Также, по совместительству отправляет историю правок в репозиторий howto-db, откуда можно также получить актуальную версию базы данных:

git clone http://[316:c51a:62a3:8b9::4]/YGGverse/howto-db.git

* при использовании базы из репозитория, следует учитывать наличие директории .git в корне (в прочем, корневая директория не используется, а скрытые файлы игнорируются индексатором gemini-php)

Обновление осуществляется скриптом по расписанию crontab, где общая директория «data» расположена в корне «howto-db» (на которую ведут символические ссылки всех хостов):

/home/bdoku/crontab/update.sh
cd /home/bdoku

wget http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]/howto-wiki_$(date -d "$date -1 days" +"%F")-23-30.tar.gz
tar -xvf howto-wiki_$(date -d "$date -1 days" +"%F")-23-30.tar.gz -C howto-db
rm howto-wiki_$(date -d "$date -1 days" +"%F")-23-30.tar.gz

Обновление β-Doku:

/home/bdoku/crontab/update.sh
cd /home/bdoku/bdoku

git pull
composer update

Если администрируется контрольный репозиторий:

/home/bdoku/crontab/update.sh
cd /home/bdoku/howto-db

git add .
git commit -m "$(date -d "$date -1 days" +"%F")-23-30"
git push

От пользователя bdoku:

crontab -e

0 0 * * * /home/bdoku/crontab/update.sh >> /home/bdoku/crontab/log/update-`/bin/date +\%F`.log 2>&1

От пользователя root:

crontab -e

5 0 * * * service betahowto restart
5 0 * * * service betahowto.ygg restart
5 0 * * * service betahowto.duckdns.org restart

Для синхронизации важно правильно установить часовой пояс, например GMT:

unlink /etc/localtime
ln -s /usr/share/zoneinfo/GMT /etc/localtime
date

Ссылки

β-Doku на GitHub
howtools - скрипты авто-обновлений

Только авторизованные участники могут оставлять комментарии.
gemini_protocol/bdoku.txt · Последнее изменение: 2024/02/12 04:01 — d4708
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki