# 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`.