2024-02-13 13:33:40 +00:00

94 lines
4.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== β-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]], откуда можно также получить актуальную версию базы данных:
<code>
git clone http://[316:c51a:62a3:8b9::4]/YGGverse/howto-db.git
</code>
* при использовании базы из репозитория, следует учитывать наличие директории .git в корне (в прочем, корневая директория не используется, а скрытые файлы игнорируются индексатором gemini-php)
Обновление осуществляется скриптом по расписанию crontab, где общая директория "data" расположена в корне "howto-db" (на которую ведут символические ссылки всех хостов):
<file - /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
</file>
Обновление β-Doku:
<file - /home/bdoku/crontab/update.sh>
cd /home/bdoku/bdoku
git pull
composer update
</file>
Если администрируется контрольный репозиторий:
<file - /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
</file>
От пользователя bdoku:
<code>
crontab -e
0 0 * * * /home/bdoku/crontab/update.sh >> /home/bdoku/crontab/log/update-`/bin/date +\%F`.log 2>&1
</code>
От пользователя root:
<code>
crontab -e
5 0 * * * service betahowto restart
5 0 * * * service betahowto.ygg restart
5 0 * * * service betahowto.duckdns.org restart
</code>
Для синхронизации важно правильно установить часовой пояс, например GMT:
<code>
unlink /etc/localtime
ln -s /usr/share/zoneinfo/GMT /etc/localtime
date
</code>
===== Ссылки =====
[[https://github.com/YGGverse/bdoku|β-Doku на GitHub]]\\
[[https://github.com/YGGverse/howtools|howtools]] - скрипты авто-обновлений