Проект с открытым кодом для организации зеркала DokuWiki для протокола Gemini.
Написан на языке PHP 8, в качестве основы использует:
β-Doku изначально создан для организации зеркала этого сайта:
Проект находится в процессе разработки, актуальная инструкция доступна в README
Ресурс «betahowto» для всех инстансов использует автоматический дамп в качестве источника.
Также, по совместительству отправляет историю правок в репозиторий 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
β-Doku на GitHub
howtools - скрипты авто-обновлений