====== β-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]] - скрипты авто-обновлений