4.0 KiB
4.0 KiB
title, created, updated, type, namespace, tags, related
| title | created | updated | type | namespace | tags | related | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Gitea Config | 2026-05-23 | 2026-09-14 | tech | family |
|
|
Gitea Config
URL (внешний): https://git.mallexxx.duckdns.org — HTTPS, DNS 90.189.160.148
Версия: 1.27.3 (проверено 2026-09-14: GET /api/v1/version)
Внутренний LAN endpoint: http://172.16.3.4:3000
User: git_admin (id 1, is_admin: true)
API Token
Token name: eagle-reflect
Token value: f2e6...8844 (полное значение — в remote репо nolvu-landing на Mac)
Использование (проверено):
TOKEN=$(git -C ~/Developer/nolvu-landing remote get-url origin | sed -E 's|https://git_admin:([^@]+)@.*|\1|')
curl -sS -H "Authorization: token $TOKEN" https://git.mallexxx.duckdns.org/api/v1/user # → кто я
curl -sS -H "Authorization: token $TOKEN" 'https://git.mallexxx.duckdns.org/api/v1/user/repos?limit=50'
⚠️ В inline-команде Hermes эта конструкция ломается (см. «Питфоллы») — писать скрипт файлом.
✅ Проверено 2026-09-14 (вечер-14): GET /api/v1/user → HTTP 200, login: git_admin — токен живой. Вариант извлечения без sed (устойчив к | в inline, но всё равно лучше файлом):
T=$(git -C ~/Developer/nolvu-landing remote get-url origin | sed -n 's#https://git_admin:\([^@]*\)@.*#\1#p')
Создание приватного репо через API (эталон 2026-09-14)
curl -sS -X POST -H "Authorization: token $TOKEN" -H 'Content-Type: application/json' \
-d '{"name":"<REPO>","private":true,"auto_init":false,"default_branch":"main"}' \
'https://git.mallexxx.duckdns.org/api/v1/user/repos' | jq '{full_name,private,clone_url}'
Рабочий паттерн remote + креды (НЕ токен в URL)
git remote add origin 'https://git.mallexxx.duckdns.org/git_admin/<REPO>.git' # чистый URL!
git config credential.helper store
printf 'https://git_admin:%s@git.mallexxx.duckdns.org\n' "$TOKEN" >> ~/.git-credentials
chmod 600 ~/.git-credentials
git push -u origin main
Проверка: git ls-remote origin — SHA должен совпасть с git rev-parse HEAD.
Существующие репозитории (2026-09-14)
| Репо | Видимость |
|---|---|
git_admin/eagle-hermes |
private |
git_admin/kraken-docker-config |
private |
git_admin/nolvu-landing |
private |
git_admin/obsidian-vault |
public (единственный) |
git_admin/reflect-app |
private |
git_admin/HA-ZONT-Modbus |
private (создан 2026-09-14, см. [[family/plans/t610-home-automation]] §5-кватер-Е) |
Питфоллы
- 🔴 Токен в URL = утечка. В
.git/configрепоnolvu-landingremote записан какhttps://git_admin:<token>@git.mallexxx.duckdns.org/...→ токен светится в каждомgit remote -vи в выводах команд/логах. Правильно: чистый URL + токен в~/.git-credentials(chmod 600) +credential.helper=store. Кандидат на ротацию токена. - ⚠️ Inline shell в Hermes ломается на
$( … | sed -E 's|…|…|' )— приём спотыкается на|. Решение: писать скрипт файлом (write_file→bash file.sh), не инлайн. Пример:~/tmp-t610/setup_gitea_creds.sh. - 📌 Старый адрес
http://git.mallexxx.duckdns.org(безs) — устарел, рабочая схема толькоhttps://.
Notes
- External URL использует DuckDNS DDNS на домашний IP.
- Внутренний API endpoint предпочтительнее, когда ты в домашней сети.