4.5 KiB
4.5 KiB
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 (
internal/api/onec*.go,internal/storage/onec*.go): автономный Push/Pull. 1С сама отправляет снимки и хуки, забирает pending и команды.bridge/сохранен как архив исходников; рабочий Compose его не запускает. - База данных: 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
Скрипт автоматически:
- Затягивает свежие изменения из ветки
main(git fetch origin main && git merge --ff-only origin/main). - Собирает Docker-образ бэкенда и веб-части (
docker compose -p dana-medical -f docker-compose.prod.yml build api). - Бесшовно перезапускает контейнер API (
up -d api). - Проверяет
healthcheckэндпоинта/api/v1/healthи подтверждает успешность выкладки.
Gitea Actions (CI/CD Runner):
На сервере поднят и зарегистрирован act_runner (server-runner v0.6.1), связанный с локальным инстансом Gitea. Пайплайны описываются в .gitea/workflows/.
5. Важные правила безопасности данных
- Не удалять volumes:
dana-medical_db-dataиdana-medical_mediaсодержат боевые данные и изображения. - Не коммитить
.env: все секреты БД, токены CRM и параметры интеграции хранятся только локально на сервере. - Caddy: глобальный обратный прокси
timechecker-caddy-1трогать не нужно — конфигурация сайта вынесена в/home/kadir/timechecker/current/caddy-custom/dana-medical.caddy.