027d64f245
guides/init.new.comps — см. scripts/workspace-bootstrap/README.md
115 lines
5.5 KiB
Markdown
115 lines
5.5 KiB
Markdown
# Политика репозиториев: 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 (remote **kalinamall**)
|
||
|
||
- Полный исходный код, конфиги, allowlist-файлы, пароли, токены, `.env`, ключи, keystore — **всё, что нужно для развёртывания внутри сети**.
|
||
- Сюда делается обычная разработка: `git push kalinamall 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 (один раз на машине)
|
||
|
||
Только **SSH**, три имени — **`Answer.and.other.shit/guides/init.new.comps`**:
|
||
|
||
```bash
|
||
git clone ssh://git@git.kalinamall.ru:2222/PapaTramp/Answer.and.other.shit.git
|
||
cd Answer.and.other.shit/guides/init.new.comps
|
||
cp config/workspace.local.env.example config/workspace.local.env
|
||
./init-machine.sh
|
||
```
|
||
|
||
Один репозиторий:
|
||
|
||
```bash
|
||
./scripts/Set-GitRemotes.sh reverse-proxy
|
||
```
|
||
|
||
Windows:
|
||
|
||
```powershell
|
||
cd Answer.and.other.shit\guides\init.new.comps
|
||
.\init-machine.ps1
|
||
.\scripts\Set-GitRemotes.ps1 -Repo reverse-proxy
|
||
```
|
||
|
||
Или вручную:
|
||
|
||
```bash
|
||
git remote add kalinamall ssh://git@git.kalinamall.lan:2222/PapaTramp/reverse-proxy.git
|
||
git remote add home ssh://git@git.papatramp.lan:2222/PapaTramp/reverse-proxy.git
|
||
git remote add github git@github.com:PTah/reverse-proxy.git
|
||
git branch -u kalinamall/main main
|
||
```
|
||
|
||
Проверка:
|
||
|
||
```bash
|
||
git remote -v
|
||
ssh -T git@git.kalinamall.lan
|
||
ssh -T git@git.papatramp.lan
|
||
```
|
||
|
||
## Ежедневный workflow
|
||
|
||
```bash
|
||
git add ...
|
||
git commit -m "..."
|
||
git push kalinamall main # основной (корпоративный Gitea)
|
||
git push home main # копия на papatramp
|
||
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.
|