====== β-Doku ======
Проект с [[https://github.com/YGGverse/bdoku|открытым кодом]] для организации зеркала [[https://www.dokuwiki.org|DokuWiki]] для протокола [[:gemini_protocol|Gemini]].
Написан на языке PHP 8, в качестве основы использует:
* [[https://github.com/YGGverse/gemini-php|gemini-php]] - для конвертации базы данных и безопасной работы с файловой системой
* [[https://github.com/YGGverse/titan-II|titan-II]] - форк сервера с поддержкой IPv6
* [[https://github.com/YGGverse/cache-php|cache-php]] - оболочка для кеширования скомпилированных страниц посредством Memcached
* [[https://github.com/manticoresoftware|manticore]] - для полнотекстового поиска
===== Примеры =====
β-Doku изначально создан для организации зеркала этого сайта:
* %%gemini://[301:23b4:991a:634d::b]%%
* %%gemini://betahowto.ygg%% - алиас
* %%gemini://betahowto.duckdns.org%% - алиас в Интернет
===== Установка =====
Проект находится в процессе разработки, актуальная инструкция доступна в [[https://github.com/YGGverse/bdoku/blob/main/README.md|README]]
===== Синхронизация =====
Ресурс "betahowto" для всех инстансов использует автоматический [[wiki:wiki_backup|дамп]] в качестве источника.
Также, по совместительству отправляет историю правок в репозиторий [[http://[316:c51a:62a3:8b9::4]/YGGverse/howto-db|howto-db]], откуда можно также получить актуальную версию базы данных:
git clone http://[316:c51a:62a3:8b9::4]/YGGverse/howto-db.git
* при использовании базы из репозитория, следует учитывать наличие директории .git в корне (в прочем, корневая директория не используется, а скрытые файлы игнорируются индексатором gemini-php)
Обновление осуществляется скриптом по расписанию crontab, где общая директория "data" расположена в корне "howto-db" (на которую ведут символические ссылки всех хостов):
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:
cd /home/bdoku/bdoku
git pull
composer update
Если администрируется контрольный репозиторий:
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
===== Ссылки =====
[[https://github.com/YGGverse/bdoku|β-Doku на GitHub]]\\
[[https://github.com/YGGverse/howtools|howtools]] - скрипты авто-обновлений