834595df6b
Единый workspace.local.env для адресов и паролей, init-machine, Set-GitRemotes, push-safe и check-no-secrets для политики kalinamall/github.
5.7 KiB
5.7 KiB
Политика репозиториев: git.kalinamall.ru и GitHub
Для перечисленных проектов действует единая схема: основное хранилище — корпоративный Gitea, GitHub — резервная копия без секретов.
Репозитории
| Проект | Основной (Gitea) | Резерв (GitHub) |
|---|---|---|
| reverse-proxy | PapaTramp/reverse-proxy | PTah/reverse-proxy |
| security-alert-center | PapaTramp/security-alert-center | PTah/security-alert-center |
| seaca | PapaTramp/seaca | резерв не ведётся (только Gitea) |
| rdp-login-monitor | PapaTramp/rdp-login-monitor | PTah/RDP-login-monitor |
| ssh-monitor | PapaTramp/ssh-monitor | 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, три имени — скрипт scripts/workspace-bootstrap (Mac/Linux: Set-GitRemotes.sh, Windows: Set-GitRemotes.ps1):
cd ~/Documents/Cursor/Projects/reverse-proxy/scripts/workspace-bootstrap
cp config/workspace.local.env.example config/workspace.local.env
# заполнить workspace.local.env
./init-machine.sh
Или для одного репо:
./scripts/Set-GitRemotes.sh reverse-proxy
Windows:
cd C:\Users\papat\Projects\reverse-proxy\scripts\workspace-bootstrap
.\init-machine.ps1
..\scripts\Set-GitRemotes.ps1 -Repo reverse-proxy
Старый вариант (Answer.and.other.shit) — переносится в scripts/workspace-bootstrap.
Или вручную:
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
Проверка:
git remote -v
ssh -T git@git.kalinamall.lan
ssh -T git@git.papatramp.lan
Ежедневный workflow
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 / шаблоны с плейсхолдерами.
Клонирование новой машины
# предпочтительно — полная копия с секретами
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 — SSH-ключи и PAT для Gitea.