[2026-09-14] eagle: family/how-to/gitea-config.md family/plans/t610-home-automation.md
This commit is contained in:
@@ -1,27 +1,72 @@
|
||||
---
|
||||
title: Gitea Config
|
||||
created: '2026-05-23'
|
||||
updated: '2026-05-23'
|
||||
updated: '2026-09-14'
|
||||
type: tech
|
||||
namespace: personal
|
||||
namespace: family
|
||||
tags: [infra, gitea, git, credentials]
|
||||
related:
|
||||
- "[[tech/kraken-network]]"
|
||||
- "[[family/plans/t610-home-automation]]"
|
||||
- "[[family/how-to/truenas-access]]"
|
||||
---
|
||||
|
||||
# Gitea Config
|
||||
|
||||
**URL:** `http://git.mallexxx.duckdns.org` (external) / `http://172.16.3.4:3000` (internal LAN)
|
||||
**User:** `git_admin`
|
||||
**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: `f2e679a571f4c599d64b384a711043f995fd8844`
|
||||
Token value: `f2e6...8844` (полное значение — в remote репо `nolvu-landing` на Mac)
|
||||
|
||||
Used by Eagle for repo operations (push, PR creation, hook management).
|
||||
**Использование (проверено):**
|
||||
```bash
|
||||
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 эта конструкция ломается** (см. «Питфоллы») — писать скрипт файлом.
|
||||
|
||||
## Создание приватного репо через API (эталон 2026-09-14)
|
||||
|
||||
```bash
|
||||
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)
|
||||
|
||||
```bash
|
||||
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-кватер-Е) |
|
||||
|
||||
## Питфоллы
|
||||
|
||||
1. 🔴 **Токен в URL = утечка.** В `.git/config` репо `nolvu-landing` remote записан как `https://git_admin:<token>@git.mallexxx.duckdns.org/...` → токен светится в каждом `git remote -v` и в выводах команд/логах. **Правильно:** чистый URL + токен в `~/.git-credentials` (chmod 600) + `credential.helper=store`. Кандидат на **ротацию токена**.
|
||||
2. ⚠️ **Inline shell в Hermes ломается** на `$( … | sed -E 's|…|…|' )` — приём спотыкается на `|`. **Решение: писать скрипт файлом** (`write_file` → `bash file.sh`), не инлайн. Пример: `~/tmp-t610/setup_gitea_creds.sh`.
|
||||
3. 📌 Старый адрес `http://git.mallexxx.duckdns.org` (без `s`) — **устарел**, рабочая схема только `https://`.
|
||||
|
||||
## Notes
|
||||
|
||||
- External URL uses DuckDNS DDNS pointing to home IP
|
||||
- Internal API endpoint preferred when on home network
|
||||
- External URL использует DuckDNS DDNS на домашний IP.
|
||||
- Внутренний API endpoint предпочтительнее, когда ты в домашней сети.
|
||||
|
||||
Reference in New Issue
Block a user