docs: add AGENTS.md with deployment guides and Gitea Actions workflow
All checks were successful
Deploy Dana Medical Site / deploy (push) Successful in 1m9s

This commit is contained in:
Abdulkadyr Karagishiev 2026-10-18 19:33:32 +03:00
parent 121f286016
commit 2c4e374c99
2 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,14 @@
name: Deploy Dana Medical Site
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Run Deploy Script
run: |
echo "Deployment triggered by Gitea Actions push event."

64
AGENTS.md Normal file
View File

@ -0,0 +1,64 @@
# Dana Medical (Сайт и сервисы клиники)
Репозиторий официального веб-сайта клиники «Дана Медикал» (https://danamedical.ru), серверного API и интеграционного сервиса с 1С.
---
## 1. Архитектура проекта
- **Frontend (`web/`):** React 18, Vite, Tailwind CSS, SSR рендеринг (`scripts/render-page.mjs`).
- **Backend API (`cmd/server/`, `internal/`):** Go 1.22+ сервис обработки заявок, онлайн-записи, каталога услуг, врачей и чек-апов.
- **Интеграция 1C (`bridge/bridge_1c.py`):** Python-мост для синхронизации слотов расписания, врачей, номенклатуры и создания заявок в 1С:Медицина.
- **База данных:** PostgreSQL 16 (данные сохраняются в Docker volume `dana-medical_db-data`).
- **Медиафайлы:** сохраняются в volume `dana-medical_media` (монтируется в `/data/media`).
---
## 2. Доступы и репозиторий
- **Gitea Web UI:** https://git.195-95-133-47.sslip.io/git_admin/dana-medical-site
- **Git Remote (SSH):** `ssh://git@git.195-95-133-47.sslip.io:2222/git_admin/dana-medical-site.git`
- **Git Remote (HTTPS):** `https://git.195-95-133-47.sslip.io/git_admin/dana-medical-site.git`
- **Локальная копия (Mac):** `/Users/kadyrkaragishiev/work/Dana-IT_GA/dana-medical`
- **Боевая копия на сервере:** `/home/mikail/dana-medical`
*Примечание: SSH-ключи для хоста разработчика (MacBook) и сервера (`kadir`) уже зарегистрированы в Gitea, авторизация по SSH работает без паролей.*
---
## 3. Сервер и окружение
- **Сервер:** `timechecker-prod` (`195.95.133.47`)
- **Пользователи сервера:** `kadir` / `mikail` (оба входят в группу `docker`, gid 110).
- **Боевые домены (Caddy Reverse Proxy):**
- `https://danamedical.ru` (основной продакшн)
- `https://dana.195-95-133-47.sslip.io` (технический preview)
- `https://api.danamedical.ru/api/v1/onec/events` (вебхуки 1С)
- **Внутренний порт приложения:** `172.17.0.1:8082` (Caddy проксирует запросы на него).
- **Секреты и переменные окружения:** хранятся на сервере в `/home/mikail/dana-medical/.env`. Файл находится в `.gitignore` и защищен от перезаписи.
---
## 4. Деплой и обновление (CI/CD)
В корне репозитория настроен единый скрипт автоматического развертывания `deploy.sh`.
### Ручной запуск на сервере:
```bash
/home/mikail/dana-medical/deploy.sh
```
Скрипт автоматически:
1. Затягивает свежие изменения из ветки `main` (`git fetch origin main && git reset --hard origin/main`).
2. Собирает Docker-образ бэкенда и веб-части (`docker compose -p dana-medical -f docker-compose.prod.yml build api`).
3. Бесшовно перезапускает контейнер API (`up -d api`).
4. Проверяет `healthcheck` эндпоинта `/api/v1/health` и подтверждает успешность выкладки.
### Gitea Actions (CI/CD Runner):
На сервере поднят и зарегистрирован `act_runner` (`server-runner` v0.6.1), связанный с локальным инстансом Gitea. Пайплайны описываются в `.gitea/workflows/`.
---
## 5. Важные правила безопасности данных
1. **Не удалять volumes:** `dana-medical_db-data` и `dana-medical_media` содержат боевые данные и изображения.
2. **Не коммитить `.env`:** все секреты БД, токены CRM и параметры интеграции хранятся только локально на сервере.
3. **Caddy:** глобальный обратный прокси `timechecker-caddy-1` трогать не нужно — конфигурация сайта вынесена в `/home/kadir/timechecker/current/caddy-custom/dana-medical.caddy`.