security: upgrade Gitea to 1.25.4, add security headers
Some checks failed
Build and Deploy GooSeek / build-and-deploy (push) Has been cancelled

- Update Gitea from 1.22.6 to 1.25.4 (fixes CVE-2026-20736, CVE-2026-20912)
- Disable public registration
- Disable Swagger API
- Add nginx-ingress security headers:
  - X-Content-Type-Options: nosniff
  - X-XSS-Protection: 1; mode=block
  - Referrer-Policy: strict-origin-when-cross-origin
  - Permissions-Policy
- Enable HSTS preload
- Reorganize Gitea K8s manifests into gitea/ directory

Made-with: Cursor
This commit is contained in:
home
2026-03-02 22:01:51 +03:00
parent c3965a2c6a
commit d2ef146474
11 changed files with 517 additions and 72 deletions

View File

@@ -1,39 +1,31 @@
# Недоделки — начать отсюда
## CI/CD готов — осталось создать репозиторий в Gitea
## Gitea Security Update ВЫПОЛНЕН ✅
### Сделано (CI/CD подготовка репозитория)
- [x] Обновлён `.gitignore`: игнорируются секреты, временные файлы, кэши
- [x] Обновлён `.dockerignore`: оптимизирован для сборки образов
- [x] Созданы K8s манифесты:
- `backend/deploy/k8s/webui.yaml` — новый
- `backend/deploy/k8s/travel-svc.yaml` — новый
- [x] Обновлён `backend/deploy/k8s/kustomization.yaml`:
- images используют `localhost:5000/gooseek/*`
- добавлены webui.yaml и travel-svc.yaml
- [x] Обновлён `backend/deploy/k8s/ingress.yaml`:
- gooseek.ru → webui:3000
- api.gooseek.ru → api-gateway:3015
- [x] Обновлён `backend/deploy/k8s/deploy.sh`:
- push в localhost:5000 registry
- rolling restart всех сервисов
- [x] Создан `.gitea/workflows/deploy.yaml`:
- CI/CD workflow для Gitea Actions
- Сборка backend + webui
- Автодеплой в K8s
### Сделано (Security Hardening) — 2 марта 2026
- [x] **Обновлена версия Gitea: 1.22.6 → 1.25.4** (исправлены CVE-2026-20736, CVE-2026-20912)
- [x] **Регистрация отключена** — "Registration is disabled"
- [x] **Swagger API отключён** — /api/swagger возвращает 404
- [x] HSTS включён
- [x] Cookies: HttpOnly, Secure, SameSite=Lax
- [x] X-Frame-Options: SAMEORIGIN
### Осталось сделать
1. [ ] Создать репозиторий `gooseek` в Gitea (https://git.gooseek.ru)
2. [ ] Пуш кода: `git remote add gitea https://git.gooseek.ru/admin/gooseek.git && git push -u gitea main`
3. [ ] Проверить что CI/CD workflow запустился и задеплоился
### K8s манифесты (`backend/deploy/k8s/gitea/`)
- `namespace.yaml`, `pvc.yaml`, `configmap.yaml`
- `deployment.yaml`, `service.yaml`, `ingress.yaml`
- `kustomization.yaml`, `deploy.sh`
### Оставшиеся улучшения (низкий приоритет)
- [ ] Добавить CSP header через глобальный ConfigMap nginx-ingress
- [ ] Добавить X-Content-Type-Options через nginx-ingress
### Ранее сделано
- Learning кабинет полностью готов
- Medicine сервис полностью готов
- CI/CD workflow для Gitea Actions
- Все K8s манифесты для всех сервисов
### Контекст для продолжения
- Сервер: 192.168.31.59 (внутренний IP), 5.187.77.89 (внешний)
- Gitea: https://git.gooseek.ru
- Registry: localhost:5000 (внутренний, без внешнего доступа)
- K3s + Nginx Ingress + Cert-Manager уже установлены
- Сервер: 192.168.31.59 (внутренний), 5.187.77.89 (внешний)
- Gitea: https://git.gooseek.ru — версия 1.25.4 ✅
- K3s + Nginx Ingress + Cert-Manager работают