dana-medical-site/AGENTS.md
Abdulkadyr Karagishiev 2c4e374c99
All checks were successful
Deploy Dana Medical Site / deploy (push) Successful in 1m9s
docs: add AGENTS.md with deployment guides and Gitea Actions workflow
2026-10-18 19:33:32 +03:00

4.4 KiB
Raw Blame History

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.

Ручной запуск на сервере:

/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.