docs: политика Gitea как основной, GitHub — резерв без секретов.
Два remote, таблица репозиториев и workflow push origin/github.
This commit is contained in:
@@ -6,7 +6,8 @@ TLS: HAProxy на **443** в режиме **TCP + SNI**, **не терминир
|
|||||||
|
|
||||||
Доступ снаружи по allowlist: **Git** и **веб-SAC** (`sac.kalinamall.ru`) — файл `git-sac-allowed`; **1С** (`erp.kalinamall.ru`) — `1c-allowed`. **Seaca** — **`sac-api.kalinamall.ru`** без IP-фильтра (аутентификация на SAC).
|
Доступ снаружи по allowlist: **Git** и **веб-SAC** (`sac.kalinamall.ru`) — файл `git-sac-allowed`; **1С** (`erp.kalinamall.ru`) — `1c-allowed`. **Seaca** — **`sac-api.kalinamall.ru`** без IP-фильтра (аутентификация на SAC).
|
||||||
|
|
||||||
Репозиторий: [https://git.kalinamall.ru/PapaTramp/reverse-proxy](https://git.kalinamall.ru/PapaTramp/reverse-proxy)
|
**Основной репозиторий:** [git.kalinamall.ru/PapaTramp/reverse-proxy](https://git.kalinamall.ru/PapaTramp/reverse-proxy)
|
||||||
|
**Резерв (без секретов):** [github.com/PTah/reverse-proxy](https://github.com/PTah/reverse-proxy) — см. [политику репозиториев](docs/repo-policy.md)
|
||||||
|
|
||||||
## Соответствие имён и адресов
|
## Соответствие имён и адресов
|
||||||
|
|
||||||
@@ -30,4 +31,5 @@ DNS: **A** для `ext`, `autodiscover`, `rds`, `erp`, `git`, `sac`, **`sac-api`
|
|||||||
- [Установка HAProxy и развёртывание конфигурации](docs/haproxy-install.md)
|
- [Установка HAProxy и развёртывание конфигурации](docs/haproxy-install.md)
|
||||||
- [SAC: веб vs sac-api, Seaca, Git+SAC в браузере](docs/sac-access.md)
|
- [SAC: веб vs sac-api, Seaca, Git+SAC в браузере](docs/sac-access.md)
|
||||||
- [Работа с Git: clone, pull, push, ключи и PAT](docs/git.md)
|
- [Работа с Git: clone, pull, push, ключи и PAT](docs/git.md)
|
||||||
|
- [Политика: Gitea — основной, GitHub — резерв без секретов](docs/repo-policy.md)
|
||||||
- [Let's Encrypt / ACME через HAProxy (порт 80)](docs/letsencrypt-acme.md)
|
- [Let's Encrypt / ACME через HAProxy (порт 80)](docs/letsencrypt-acme.md)
|
||||||
|
|||||||
+25
-1
@@ -1,4 +1,7 @@
|
|||||||
# Работа с Git на Ubuntu
|
# Работа с Git
|
||||||
|
|
||||||
|
**Основной remote:** `git.kalinamall.ru` (полная копия, включая секреты).
|
||||||
|
**Резерв:** `github.com/PTah/...` (без паролей и токенов). Подробно — [repo-policy.md](repo-policy.md).
|
||||||
|
|
||||||
Репозиторий: [https://git.kalinamall.ru/PapaTramp/reverse-proxy](https://git.kalinamall.ru/PapaTramp/reverse-proxy)
|
Репозиторий: [https://git.kalinamall.ru/PapaTramp/reverse-proxy](https://git.kalinamall.ru/PapaTramp/reverse-proxy)
|
||||||
|
|
||||||
@@ -107,3 +110,24 @@ git config --global credential.helper 'cache --timeout=28800'
|
|||||||
```
|
```
|
||||||
|
|
||||||
После истечения срока кеша или срока действия токена снова создайте новый PAT и при необходимости обновите сохранённые учётные данные (удалите строчку с `git.kalinamall.ru` из `~/.git-credentials` или снова выполните `git pull` и введите новый токен).
|
После истечения срока кеша или срока действия токена снова создайте новый PAT и при необходимости обновите сохранённые учётные данные (удалите строчку с `git.kalinamall.ru` из `~/.git-credentials` или снова выполните `git pull` и введите новый токен).
|
||||||
|
|
||||||
|
## Два remote: Gitea и GitHub
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/reverse-proxy
|
||||||
|
git remote -v
|
||||||
|
# origin → git@git.kalinamall.ru:PapaTramp/reverse-proxy.git
|
||||||
|
# github → git@github.com:PTah/reverse-proxy.git
|
||||||
|
|
||||||
|
git push origin main # основной — всегда
|
||||||
|
git push github main # резерв — только без секретов в коммите
|
||||||
|
```
|
||||||
|
|
||||||
|
Если `origin` ещё указывает на GitHub:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git remote rename origin github
|
||||||
|
git remote add origin git@git.kalinamall.ru:PapaTramp/reverse-proxy.git
|
||||||
|
git fetch origin
|
||||||
|
git branch -u origin/main main
|
||||||
|
```
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
# Политика репозиториев: git.kalinamall.ru и GitHub
|
||||||
|
|
||||||
|
Для перечисленных проектов действует единая схема: **основное хранилище — корпоративный Gitea**, **GitHub — резервная копия без секретов**.
|
||||||
|
|
||||||
|
## Репозитории
|
||||||
|
|
||||||
|
| Проект | Основной (Gitea) | Резерв (GitHub) |
|
||||||
|
|--------|------------------|-----------------|
|
||||||
|
| reverse-proxy | [PapaTramp/reverse-proxy](https://git.kalinamall.ru/PapaTramp/reverse-proxy) | [PTah/reverse-proxy](https://github.com/PTah/reverse-proxy) |
|
||||||
|
| security-alert-center | [PapaTramp/security-alert-center](https://git.kalinamall.ru/PapaTramp/security-alert-center) | [PTah/security-alert-center](https://github.com/PTah/security-alert-center) |
|
||||||
|
| seaca | [PapaTramp/seaca](https://git.kalinamall.ru/PapaTramp/seaca) | резерв не ведётся (только Gitea) |
|
||||||
|
| rdp-login-monitor | [PapaTramp/rdp-login-monitor](https://git.kalinamall.ru/PapaTramp/rdp-login-monitor) | [PTah/RDP-login-monitor](https://github.com/PTah/RDP-login-monitor) |
|
||||||
|
| ssh-monitor | [PapaTramp/ssh-monitor](https://git.kalinamall.ru/PapaTramp/ssh-monitor) | [PTah/ssh-monitor](https://github.com/PTah/ssh-monitor) |
|
||||||
|
|
||||||
|
**seaca** — мобильное приложение; публичного зеркала на GitHub нет. При необходимости можно создать отдельный репозиторий **без** `google-services.json`, keystore, API-ключей и prod-конфигов.
|
||||||
|
|
||||||
|
## Правила
|
||||||
|
|
||||||
|
### git.kalinamall.ru (origin)
|
||||||
|
|
||||||
|
- Полный исходный код, конфиги, allowlist-файлы, пароли, токены, `.env`, ключи, keystore — **всё, что нужно для развёртывания внутри сети**.
|
||||||
|
- Сюда делается обычная разработка: `git push origin main`.
|
||||||
|
- Доступ только из корпоративной сети / allowlist.
|
||||||
|
|
||||||
|
### GitHub (remote `github`)
|
||||||
|
|
||||||
|
- Только **резерв** исходников и документации.
|
||||||
|
- **Запрещено** коммитить и пушить:
|
||||||
|
- пароли, PIN, учётные записи;
|
||||||
|
- API-токены, PAT, JWT-секреты, `SECRET_KEY`, `DATABASE_URL` с паролем;
|
||||||
|
- приватные ключи (`*.pem`, `*.key`, `id_rsa`, keystore, `*.jks`, `*.p12`);
|
||||||
|
- `.env`, `.env.local`, `*.secret`, `credentials.json`, `google-services.json` (prod);
|
||||||
|
- файлы с реальными SMTP/Telegram/SAC credentials;
|
||||||
|
- дампы БД с персональными или служебными данными.
|
||||||
|
- Допустимо: примеры конфигов (`*.example`, `*.sample`, `env.example`), код, README, схемы без секретов.
|
||||||
|
- Перед `git push github` — просмотр `git diff github/main` или `git log -p` на предмет утечек.
|
||||||
|
|
||||||
|
## Настройка remotes (один раз на машине)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# origin — Gitea (основной)
|
||||||
|
git remote add origin git@git.kalinamall.ru:PapaTramp/ИМЯ-РЕПО.git
|
||||||
|
# если origin уже указывает на GitHub:
|
||||||
|
# git remote rename origin github
|
||||||
|
# git remote add origin git@git.kalinamall.ru:PapaTramp/ИМЯ-РЕПО.git
|
||||||
|
|
||||||
|
# резерв на GitHub
|
||||||
|
git remote add github git@github.com:PTah/ИМЯ-НА-GITHUB.git
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверка:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git remote -v
|
||||||
|
# origin git@git.kalinamall.ru:PapaTramp/... (fetch/push)
|
||||||
|
# github git@github.com:PTah/... (fetch/push)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ежедневный workflow
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Работа и пуш в основное хранилище
|
||||||
|
git add ...
|
||||||
|
git commit -m "..."
|
||||||
|
git push origin main
|
||||||
|
|
||||||
|
# 2. Резерв на GitHub — только после проверки, что нет секретов
|
||||||
|
git push github main
|
||||||
|
```
|
||||||
|
|
||||||
|
Для **seaca** и любых репозиториев без `github` remote — только шаг 1.
|
||||||
|
|
||||||
|
## Что хранить только в Gitea (примеры по проектам)
|
||||||
|
|
||||||
|
| Проект | Только в Gitea |
|
||||||
|
|--------|----------------|
|
||||||
|
| reverse-proxy | `git-sac-allowed`, `1c-allowed` (при желании), внутренние IP/пути |
|
||||||
|
| security-alert-center | `.env`, `SECRET_KEY`, пароль PostgreSQL, SMTP, Telegram bot token |
|
||||||
|
| seaca | prod URL, токены, `google-services.json`, signing keys |
|
||||||
|
| rdp-login-monitor | пароли WinRM, Telegram/SMTP, SAC registration tokens |
|
||||||
|
| ssh-monitor | `sacmob_*`, Telegram, SMTP, списки банов с чувствительным контекстом |
|
||||||
|
|
||||||
|
На GitHub для мониторов и SAC оставляют `*.example` / шаблоны с плейсхолдерами.
|
||||||
|
|
||||||
|
## Клонирование новой машины
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# предпочтительно — полная копия с секретами
|
||||||
|
git clone git@git.kalinamall.ru:PapaTramp/reverse-proxy.git
|
||||||
|
|
||||||
|
# с GitHub — только если Gitea недоступен; секреты восстановить вручную из Gitea или vault
|
||||||
|
git clone git@github.com:PTah/reverse-proxy.git
|
||||||
|
```
|
||||||
|
|
||||||
|
См. также [git.md](git.md) — SSH-ключи и PAT для Gitea.
|
||||||
Reference in New Issue
Block a user