chore(github): generic example.com in docs, remove mirror scripts

Replace sac.kalinamall.ru with sac.example.com in public docs/deploy.
Remove Push-Mirror and Rewrite-GitHostUrls scripts from repo.
Simplify workspace-three-repos.md for GitHub-only workflow.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-16 11:57:02 +10:00
parent 06c6748274
commit 6b288bfa49
21 changed files with 84 additions and 335 deletions
+13 -13
View File
@@ -9,7 +9,7 @@
| Параметр | Пример |
|----------|--------|
| FQDN | `sac.kalinamall.ru` |
| FQDN | `sac.example.com` |
| IP | `10.0.0.50` |
| Каталог | `/opt/security-alert-center` |
| Пользователь сервиса | `sac` |
@@ -144,7 +144,7 @@ sudo chmod 600 /opt/security-alert-center/config/sac-api.env
- `DATABASE_URL`с паролем PostgreSQL из шага 4 (если в пароле есть `#`, `@`, `%` — возьмите значение в **кавычки**: `DATABASE_URL="postgresql+psycopg2://..."`)
- `JWT_SECRET``openssl rand -hex 32`
- `SAC_PUBLIC_URL``https://sac.kalinamall.ru`
- `SAC_PUBLIC_URL``https://sac.example.com`
- `SAC_BOOTSTRAP_API_KEY``python3.12 -c "import secrets; print('sac_'+secrets.token_urlsafe(32))"`
- `SAC_ADMIN_PASSWORD` — пароль входа в веб-UI (отдельно от API key агентов)
- `EVENT_SCHEMA_PATH=/opt/security-alert-center/schemas/event-schema-v1.json`
@@ -195,7 +195,7 @@ journalctl -u sac-api -f
## 9. nginx и TLS
Для KalinaMall: **корпоративный wildcard VeriSign** (или DigiCert), не Let's Encrypt.
Хост `sac.kalinamall.ru` должен попадать под `*.kalinamall.ru`.
Хост `sac.example.com` должен попадать под `*.example.com`.
**Подробно:** форматы, scp с Windows/Linux, `.pfx` → PEM, права — **[ssl-certificate.md](ssl-certificate.md)**.
@@ -223,7 +223,7 @@ sudo usermod -aG ssl-cert www-data
```bash
# с вашего компьютера:
scp fullchain.pem privkey.pem papatramp@<IP_SAC>:/tmp/
scp fullchain.pem privkey.pem deploy@<IP_SAC>:/tmp/
# на сервере:
sudo mv /tmp/fullchain.pem /tmp/privkey.pem /etc/ssl/sac/
@@ -263,28 +263,28 @@ sudo nginx -t
sudo systemctl reload nginx
```
Шаблон `sac.conf.tls.example` содержит **default_server** с `return 444` (:80) и `ssl_reject_handshake` (:443) для любого Host, кроме `sac.kalinamall.ru`. Это защищает от ситуации, когда на IP SAC (например `192.168.160.145`) по ошибке DNS попадает `ext.kalinamall.ru` и открывается форма входа SAC.
Шаблон `sac.conf.tls.example` содержит **default_server** с `return 444` (:80) и `ssl_reject_handshake` (:443) для любого Host, кроме `sac.example.com`. Это защищает от ситуации, когда на IP SAC (например `<SAC_SERVER_IP>`) по ошибке DNS попадает `ext.example.com` и открывается форма входа SAC.
Проверка после reload:
```bash
curl -sS -o /dev/null -w '%{http_code}\n' --resolve sac.kalinamall.ru:443:127.0.0.1 https://sac.kalinamall.ru/health
curl -sS -o /dev/null -w '%{http_code}\n' --resolve sac.example.com:443:127.0.0.1 https://sac.example.com/health
# ожидается 200
curl -sS -o /dev/null -w '%{http_code}\n' --resolve ext.kalinamall.ru:443:127.0.0.1 https://ext.kalinamall.ru/ 2>/dev/null || echo "connection closed (444/reject OK)"
curl -sS -o /dev/null -w '%{http_code}\n' --resolve ext.example.com:443:127.0.0.1 https://ext.example.com/ 2>/dev/null || echo "connection closed (444/reject OK)"
```
Проверка:
```bash
curl -sS https://sac.kalinamall.ru/health | jq .
curl -sS https://sac.example.com/health | jq .
```
В `config/sac-api.env` должно быть: `SAC_PUBLIC_URL=https://sac.kalinamall.ru`
В `config/sac-api.env` должно быть: `SAC_PUBLIC_URL=https://sac.example.com`
### 9.3. Агенты (ssh-monitor, RDP) и доверие к CA
- Агенты ходят на `https://sac.kalinamall.ru/api/v1/events`.
- Агенты ходят на `https://sac.example.com/api/v1/events`.
- Если используется **внутренний корневой CA**, а не публичный VeriSign/DigiCert в системном store — на Linux/Windows может понадобиться установка корневого сертификата в доверенные (или корпоративный прокси с подменой TLS).
- Для публичного коммерческого wildcard от известного УЦ обычно **дополнительных действий на агентах не нужно**.
@@ -299,7 +299,7 @@ curl -sS https://sac.kalinamall.ru/health | jq .
```bash
sudo cp deploy/nginx/sac.conf.example /etc/nginx/sites-available/sac
# ... nginx -t, reload, затем:
sudo certbot --nginx -d sac.kalinamall.ru
sudo certbot --nginx -d sac.example.com
```
---
@@ -317,7 +317,7 @@ ls -la dist/index.html
sudo systemctl restart sac-api
```
В `config/sac-api.env` задайте `SAC_ADMIN_PASSWORD`, затем откройте `https://sac.kalinamall.ru/` (логин `SAC_ADMIN_USERNAME`, по умолчанию `admin`).
В `config/sac-api.env` задайте `SAC_ADMIN_PASSWORD`, затем откройте `https://sac.example.com/` (логин `SAC_ADMIN_USERNAME`, по умолчанию `admin`).
После обновления с multi-user (миграция `009_sac_users`): выполните `alembic upgrade head` в каталоге `backend/`. При первом старте API создаст пользователя **admin** из `SAC_ADMIN_*`, если таблица `sac_users` пуста.
@@ -343,7 +343,7 @@ curl -sS http://127.0.0.1:8000/health | jq .
Через nginx (после TLS):
```bash
curl -sS https://sac.kalinamall.ru/health | jq .
curl -sS https://sac.example.com/health | jq .
```
Тест ingest (подставьте `SAC_BOOTSTRAP_API_KEY`):