# tatet-sites — публикация статического сайта на name.tatet.me > Документация для ИИ-ассистента (Codex / Claude Code) и вайбкодера. Помогает задеплоить > статический сайт на выданный поддомен `.tatet.me`. Канонический URL для ИИ: > https://docs.tatet.me/llms.txt ## Что это tatet-sites — платформа деплоя статических сайтов («свой Vercel»). Публикуешь сайт → он живёт на `.tatet.me` с HTTPS и CDN. Основной путь — `git push` → автодеплой; есть и ручной CLI. ## Что у тебя есть (выдаёт администратор платформы) - **Deploy-токен**: `tdt_...` — секрет. Хранить в секретах CI или переменной окружения, НЕ коммитить. - **Поддомен**: `.tatet.me` — выдан администратором, уже зарезервирован за тобой. - **API платформы**: `https://admin.tatet.me`. Если токена или поддомена нет — запроси у администратора платформы. ## Что поддерживается - **Статические сайты** (сборка в папку статики): Nuxt (`nuxt generate`), Vite (Vue/React/Svelte/Solid), Astro, Next.js (static export), Gatsby, чистый HTML/CSS/JS. - **Не поддерживается пока**: серверный рантайм (SSR, API-роуты, БД). Сборка обязана давать статические файлы. - Технические лимиты деплоя: ≤ 20000 файлов, ≤ 25 MiB на файл. Размер сайта и число сайтов — по квоте аккаунта (если превышено, деплой отклоняется — запроси у админа увеличение). ## Установка CLI CLI `tatet` ставится из tarball (в npm пока не опубликован): ```bash npm i -g https://docs.tatet.me/tatet-0.1.0.tgz ``` Проверка: `tatet --help`. ## Способ 1 — GitHub (рекомендуется): git push → автодеплой Каждый push в `main` собирает сайт и публикует его на `.tatet.me`. 1) Положи в репозиторий файл `.github/workflows/deploy.yml`: ```yaml name: Deploy to tatet.me on: push: branches: [main] workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - run: npm ci - run: npm i -g https://docs.tatet.me/tatet-0.1.0.tgz - run: tatet deploy env: TATET_API: ${{ secrets.TATET_API }} TATET_TOKEN: ${{ secrets.TATET_TOKEN }} ``` 2) В GitHub: Settings → Secrets and variables → Actions → добавь два секрета: - `TATET_API` = `https://admin.tatet.me` - `TATET_TOKEN` = твой deploy-токен (`tdt_...`) 3) Добавь в корень репозитория `tatet.json` (имя сайта = твой выданный поддомен): ```json { "name": "", "build": "npx nuxi generate", "dist": ".output/public" } ``` 4) `git push` в `main` → через ~1–2 минуты сайт на `https://.tatet.me`. ## Способ 2 — CLI (вручную / локально, без git) ```bash npm i -g https://docs.tatet.me/tatet-0.1.0.tgz tatet login --api https://admin.tatet.me --token <твой-токен> tatet deploy ./path/to/project --name ``` Вместо `tatet login` можно задать env `TATET_API` и `TATET_TOKEN` (как в CI). ## tatet.json (конфиг проекта) ```json { "name": "", "build": "<команда сборки>", "dist": "<папка сборки>" } ``` - `name` — поддомен (обязательно). Правила: `a-z 0-9 -`, без ведущего/замыкающего дефиса, ≤ 63 символов. - `build` — команда сборки (опц., если автодетект не угадал). - `dist` — папка с готовой статикой (опц.). ## Автодетект сборки (если без tatet.json и без --dist) | Стек | build | dist | |---|---|---| | Nuxt | `npx nuxi generate` | `.output/public` | | Vite / Vue / React | `npm run build` | `dist` | | Astro | `npm run build` | `dist` | | Next.js | `npm run build && npx next export` | `out` | | Готовая статика | — (используй `--no-build`) | `.` или `--dist <папка>` | Флаги `tatet deploy`: `--name `, `--dist <папка>`, `--build "<команда>"`, `--no-build`, `--branch <ветка>`. ## Обновление сайта - GitHub: просто `git push` в `main`. - CLI: повтори `tatet deploy`. Новый деплой заменяет предыдущую версию по тому же адресу. Неизменные файлы не перезаливаются (дедупликация по хэшу — быстрее). ## Первый деплой — нюансы - SSL на поддомене выпускается ~1 минуту; до этого возможен код 522 — подожди и обнови. - Свежая DNS-запись может кэшироваться у локального резолвера. Если у тебя «не открывается» сразу после первого деплоя — проверь с другого устройства/сети или через DNS `1.1.1.1`. ## Шпаргалка команд ```bash tatet login --api https://admin.tatet.me --token tdt_xxx # сохранить доступ tatet deploy ./site --name # собрать и опубликовать tatet deploy ./site --dist dist --no-build # залить уже готовую папку tatet ls # список твоих сайтов tatet rm # удалить сайт ``` ## Типичные ошибки и решения - `401 / недействительный токен` — токен неверный или отозван → запроси новый у администратора. - `403 квота: максимум N сайтов` — лимит сайтов исчерпан → попроси админа увеличить квоту. - `413 квота: артефакт больше N MB` — сборка слишком большая → убери лишнее из папки сборки или попроси увеличить лимит. - `409 имя занято` — деплой идёт под чужим именем; используй СВОЙ выданный поддомен. - `имя зарезервировано` — служебные имена (admin, api, www, …) недоступны; используй выданный поддомен. ## Рецепт для ИИ-ассистента (по шагам) 1. Определи стек проекта → команду сборки и папку статики (таблица «Автодетект сборки»). 2. Если есть GitHub-репозиторий → создай `.github/workflows/deploy.yml` (Способ 1) и `tatet.json` с `name` = выданный поддомен. Скажи пользователю добавить в GitHub секреты `TATET_API` и `TATET_TOKEN`. Затем `git push` в `main`. 3. Если репозитория нет или нужен разовый деплой → `npm i -g https://docs.tatet.me/tatet-0.1.0.tgz`, `tatet login`, `tatet deploy`. 4. Никогда не коммить токен — только в секреты CI или env-переменную. 5. Проверь результат: открой `https://.tatet.me` (учитывай задержку SSL/DNS на первом деплое).