From fb613d0b0257c87d6872241fc99b13f64715f727 Mon Sep 17 00:00:00 2001 From: striker Date: Sun, 24 May 2026 17:52:56 +0300 Subject: [PATCH] =?UTF-8?q?docs(readme):=20README=20=D1=81=20=D0=BE=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=20=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D0=B0,=20deploy=20=D0=B8=20security=20(GitHub=20mirror)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7998fa0 --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +# pushkinohistory.ru + +Сайт «История города Пушкино» — портал с историческими материалами, новостями и агрегатором региональных RSS-источников. + +**Production:** https://pushkinohistory.ru + +> **Mirror.** Source-of-truth: `git.striker.su/striker/pushkinohistory-ru-v2`. Этот репозиторий на GitHub — резервная копия + площадка для GitHub Actions security-сканов. + +## Стек + +- **Astro 5** + Content Collections + markdown +- **nginx:1.29-alpine** в runtime-контейнере +- **PT Serif** (заголовки/тело статьи) + **IBM Plex Sans** (UI) +- **sanitize-html** — очистка тела поста для RSS `` с CDATA +- **fast-xml-parser** — изолированный cron-агрегатор внешних RSS + +## Деплой + +`git push` → Gitea Actions (`.gitea/workflows/deploy.yml`) → SSH на `web.hhivp.com`: +1. `git pull --ff-only` в `/opt/docker/sites/pushkinohistory-ru-v2` +2. `docker compose build` +3. **Trivy** scan свежесобранного образа (HIGH/CRITICAL, warning-only) +4. `docker compose up -d` → healthcheck `http://127.0.0.1:4146/` +5. **IndexNow** ping Яндекс/Bing (sitemap-based) +6. `docker image prune -af --filter "until=168h"` + +Контейнер `pushkinohistory-ru-v2:4146` за хостовым nginx. + +## Security + +Все автоматические проверки описаны в [`SECURITY.md`](SECURITY.md): + +- **Layer A** (на каждый push): Trivy + npm audit +- **Layer B** (weekly cron на rd.hhivp.com): Nuclei DAST +- **Layer C** (на push + MR): Hadolint + GitLeaks + Semgrep + +## Локальная разработка + +```bash +npm install +npm run dev # http://localhost:4321 +npm run build # → dist/ (статика) +npm run preview +``` + +## История + +- **2026-05-21:** v2 — Astro 5 + Content Collections. +- **2026-05-23:** WordPress v1 контейнер удалён, бэкапы в `/opt/backup/`. + +## Контакты + +- Email: admin@hhivp.com +- Site: https://hhivp.com/