mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-18 22:12:40 +00:00
add about-gemlog-administration.gmi
This commit is contained in:
parent
76a43a365c
commit
732c29f2b3
2 changed files with 152 additions and 0 deletions
151
public/uk/about-gemlog-administration.gmi
Normal file
151
public/uk/about-gemlog-administration.gmi
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
# Про адміністрування блогів Gemini
|
||||
|
||||
Оскільки надаю перевагу децентралізації, мій блог розміщено на різних платформах і мережах. Щоб не синхронізувати все вручну, для автоматизованих релізів, я користуюсь певною структурою проєкту і скриптами з публікації оновлень на всіх ресурсах одночасно.
|
||||
|
||||
Цей огляд стосується адміністрування статичного формату файлів, CMS я тут не користуюсь принципово.
|
||||
|
||||
## Редагування
|
||||
|
||||
Тут в мене все типово для програміста: редактор коду VSCodium з плагіном gemini-improved:
|
||||
=> https://open-vsx.org/extension/printfn/gemini-improved
|
||||
=> https://github.com/printfn/gemini-vscode
|
||||
|
||||
Щоб переглянути сторінку в форматі Gemtext до її публікації, я просто відкриваю локальний файл у браузері (Yoda або Lagrange). Були думки зробити редактор GTK з прев'ю, але поки не доходять руки.
|
||||
|
||||
## Публікація
|
||||
|
||||
### Git
|
||||
|
||||
Цей блог має локальний та публічний апстрім-репозиторії, де зберігається історія змін:
|
||||
=> https://codeberg.org/postscriptum/gemlog
|
||||
|
||||
### Хостинг
|
||||
|
||||
Окрім Git/HTTP, сайт публікується на безкоштовному хостингу Yesterweb:
|
||||
=> gemini://ps.cities.yesterweb.org
|
||||
|
||||
Також планую додати ще одне дзеркало на платформі Flounder, де є вбудований агрегатор оновлень:
|
||||
=> gemini://ps.flounder.online
|
||||
* утім, досі (і вже не вперше) очікую на підтвердження облікового запису
|
||||
|
||||
Віднедавна, організував для анонів локальне дзеркало в мережі I2P:
|
||||
=> gemini://shxxkkrws2m6qowjse5jpgmu64vzupnnhxrhdzrn6fr6m7ynddbq.b32.i2p
|
||||
|
||||
Стосовно самої зв'язки Gemini+I2P, рекомендую наступні матеріали:
|
||||
=> i2p-capsule-in-gemini-space-with-agate.gmi Публікація капсули Gemini в I2P на прикладі сервера Agate
|
||||
=> agate-virtual-host-usage-examples.gmi Специфіка роботи з віртуальними хостами Agate
|
||||
|
||||
Повний перелік дзеркал актуалізується тут:
|
||||
=> mirrors.gmi Список офіційних дзеркал
|
||||
|
||||
## Синхронізація
|
||||
|
||||
Донедавна, для відвантаження файлів на віддалені сервери, користувався такими плагінами:
|
||||
=> https://github.com/Natizyskunk/vscode-sftp Форк SFTP
|
||||
=> https://github.com/YGGverse/vscode-webdav Форк плагіна vscode-webdav (з функцією авто-відвантаження при збереженні файлу)
|
||||
|
||||
Але згодом, втомився від глюків розсинхронізації потоків VSCode. Мені потрібно було ходити на кожен сервер і вручну перевіряти чи не заглючило відвантаження певного файлу: іноді URL матеріалу підмінявся індексним файлом та відбувалась всяка інша містика, властива плагінам на JS.
|
||||
|
||||
Щодо хостингу Yesterweb - в мене є окрема нотатка, де я пройшов довгий шлях до поточної моделі релізів:
|
||||
=> /en/yesterweb-connection-with-webdav.gmi Yesterweb connection with WebDAV
|
||||
* внизу є приклад скрипта, яким користуюся й досі; нижче коротко опишу, як він працює
|
||||
|
||||
### Скрипт bash
|
||||
|
||||
Актуальна версія скрипта є в репозиторії блогу, продублюю поточну його версію з коментарями:
|
||||
|
||||
``` bash
|
||||
#!/bin/bash
|
||||
|
||||
# базові змінні конфігурації деплойменту,
|
||||
# що залежать від конкретного проєкту, відносно якого знаходиться цей скрипт
|
||||
SRC="public"
|
||||
ZIP="ps.zip"
|
||||
|
||||
# створення архіву файлів для завантаження
|
||||
# використовується для офлайн читання та як додатковий бекап
|
||||
# таким чином, юзерам не потрібно грабати сайт різними скриптами типу gemini-dl
|
||||
echo "snap $SRC > $ZIP ..."
|
||||
cd $SRC
|
||||
rm $ZIP
|
||||
zip -r -9 $ZIP ./
|
||||
cd ../
|
||||
|
||||
# реєстрація змін в локальному репозиторії та публікація в апстрім
|
||||
# якщо перед виконанням скрипта не робити ручний коміт з коментарем,
|
||||
# для цього коміту буде використовуватись поточна дата у форматі UT
|
||||
echo "update repository ..."
|
||||
git pull
|
||||
git add .
|
||||
git commit -m "$(date +%s)"
|
||||
git push
|
||||
|
||||
# синхронізація дзеркала I2P/SFTP
|
||||
echo "update remote host (localnet) ..."
|
||||
rclone sync $SRC localnet:ps/public --update -v
|
||||
|
||||
# синхронізація з хостингом Yesterweb/WebDAV
|
||||
echo "update remote host (yesterweb) ..."
|
||||
rclone sync $SRC yesterweb:/ --update --no-check-certificate -v
|
||||
|
||||
# тут планую додати Flaunder/FTP (та інші хостинги)
|
||||
# ...
|
||||
```
|
||||
|
||||
### Конфігурація rclone
|
||||
|
||||
В скрипті вище можна побачити, що в останніх рядках використовується rclone. Спочатку я користувався більш легким rsync, але згодом перейшов на більш функціональний інструмент з підтримкою WebDAV - rclone.
|
||||
|
||||
Щоб описаний вище скрипт міг відвантажувати файли, потрібно спочатку викнути усі додатки синхронізації для поточного проєкту VSCode (SFTP і WebDAV) і налаштувати локальний профіль rclone (власне як і git). Налаштування профілів rclone відбувається командою:
|
||||
|
||||
``` bash
|
||||
rclone config
|
||||
```
|
||||
* і далі відповідаємо на питання
|
||||
|
||||
На замітку, лишу тільки нотатку стосовно специфіки налаштування Yesterweb/WebDAV.
|
||||
Після реєстрації на цьому хостингу, можна побачити наступний текст вітання з подробицями підключення:
|
||||
|
||||
> Success!
|
||||
>
|
||||
> Your account has been created. You may now access your page from gemini://<username>.cities.yesterweb.org/
|
||||
>
|
||||
> To edit your site, connect via WebDAV
|
||||
> Hostname: cities.yesterweb.org
|
||||
> Port: 1994
|
||||
> Encryption: SSL/TLS
|
||||
> Username and Password are the same as the ones you just set
|
||||
> (username must be all lowercase!)
|
||||
>
|
||||
> OR
|
||||
>
|
||||
> Use our gemini/titan file manager
|
||||
> Over here!
|
||||
|
||||
Отже, коли конфігуруєте rclone, потрібно обрати WebDAV, вказати у якості логіну ваш юзернейм Yesterweb і наступний "host" у форматі URL:
|
||||
|
||||
```
|
||||
https://<username>.cities.yesterweb.org:1994
|
||||
```
|
||||
* як бачимо, цей рядок повинен містити схему https (замість davs), <username> і не типовий порт 1994
|
||||
|
||||
### Дерево файлів
|
||||
|
||||
Я довго експериментував зі структурою дерева, але врешті зупинився на такому варіанті:
|
||||
|
||||
* створюю кореневу теку проєкту для VSCode
|
||||
* додаю в цей корінь описаний вище скрипт деплойменту
|
||||
* створюю в ній теку ./public, де власне будуть розміщуватись публічні файли
|
||||
|
||||
Таким чином, локальна структура файлів виглядатиме наступним чином:
|
||||
|
||||
```
|
||||
/
|
||||
.git/
|
||||
.vscode/
|
||||
.gitignore
|
||||
public/
|
||||
index.gmi
|
||||
pu.sh
|
||||
```
|
||||
* pu.sh або push - це скрипт, який я виконую в терміналі (або хоткеєм) для публікації ресурсу в 1 крок
|
||||
Loading…
Add table
Add a link
Reference in a new issue