Files
reverse-proxy/docs/repo-policy.md
T
Andrey Lutsenko e7e653a9e8 docs: политика Gitea как основной, GitHub — резерв без секретов.
Два remote, таблица репозиториев и workflow push origin/github.
2026-06-13 16:29:18 +10:00

96 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Политика репозиториев: 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.