# Деплой brandbook.aproject.com Сайт брендбука — статика (HTML + React-через-CDN, без сборки), раздаётся nginx за Traefik. Деплой **автоматический по git-тегу релиза** `v*`. ## Архитектура ``` /root/aproject/brendbook/ ← рабочий репозиторий (origin checkout) index.html ← landing (версионируется) README.md, CLAUDE.md design/chat-aproject-vX.Y.Z/ ← версионированные design-бандлы docs/, .claude/ deploy/deploy.sh ← rsync work-tree → site + nginx reload /apps/brendbook/ brendbook.git/ ← bare-remote ("deploy") + post-receive hook site/ ← web root (bind-mount :ro → nginx) docker-compose.yml, nginx.conf container aproject-brendbook (nginx:alpine) ─ Traefik ─ Host(`brandbook.aproject.com`) ``` ## Как релизить ```bash cd /root/aproject/brendbook # 1. закоммитить изменения (новый бандл, правки landing и т.д.) git add -A git commit -m "feat(design): import chat-aproject@vX.Y.Z" # 2. запушить ветку в deploy-remote git push deploy master # 3. создать тег релиза и запушить его — это ТРИГГЕР деплоя git tag -a vX.Y.Z -m "release vX.Y.Z" git push deploy vX.Y.Z ``` Пуш тега `v*` запускает `post-receive` хук в bare-репозитории, который: 1. выкатывает содержимое тега во временный work-tree; 2. вызывает `deploy/deploy.sh` → `rsync --delete` в `/apps/brendbook/site`; 3. перечитывает nginx (`nginx -s reload`). Лог деплоя: `/apps/brendbook/deploy.log`. ## Ручной редеплой (без тега) ```bash /root/aproject/brendbook/deploy/deploy.sh /root/aproject/brendbook ``` ## Проверка DNS `brandbook.aproject.com` может не резолвиться вне прод-сети. Проверка напрямую через сервер (`72.56.99.104`) с Host-заголовком: ```bash curl -H "Host: brandbook.aproject.com" https://72.56.99.104/ -k -I curl -H "Host: brandbook.aproject.com" https://72.56.99.104/health -k ``` ## Версионирование `chat-aproject-v..` — см. `CLAUDE.md` → «Versioning». Тег репозитория = версия публикуемого бандла (`vMAJOR.MINOR.PATCH`). ## Миграция на git.aproject.com (follow-up) Когда репозиторий переедет на `git.aproject.com`, локальный bare-remote заменяется на GitLab CI: job с правилом `rules: - if: $CI_COMMIT_TAG` выполняет тот же `deploy/deploy.sh` на runner'е с доступом к `/apps/brendbook/site`. До тех пор работает локальный bare + post-receive.