Уебсайт — Деплоймент
Уебсайтът на Dictaro се деплойва автоматично към Cloudflare Pages чрез GitHub Actions при всеки push към main branch, засягащ файлове в website/.
Deployment Pipeline
GitHub Actions Workflow
Файл: .github/workflows/deploy-website.yml
Тригери
| Тригер | Условие |
|---|---|
push на main | Само при промени в website/** или самия workflow файл |
workflow_dispatch | Ръчно стартиране от GitHub UI |
Стъпки
- Checkout —
actions/checkout@v4 - Setup Node.js —
actions/setup-node@v4с Node.js 22 - Install dependencies —
npm ciвwebsite/директорията - Build —
npm run build(изпълняваastro build) - Deploy —
cloudflare/wrangler-action@v3с командаpages deploy ./dist --project-name=dictaro-website
Необходими GitHub Secrets
| Secret | Описание |
|---|---|
CLOUDFLARE_API_TOKEN | API token с права за Cloudflare Pages deploy |
CLOUDFLARE_ACCOUNT_ID | Cloudflare Account ID (44bbf46a904d9e5b18331aed0c846cc9) |
Cloudflare Pages конфигурация
| Параметър | Стойност |
|---|---|
| Project name | dictaro-website |
| Production branch | main |
| Build output directory | dist/ |
| Custom domain | dictaro.ai |
| DNS Zone ID | e949d0c303c70b77ff85eb1c7fe1262f |
| Account ID | 44bbf46a904d9e5b18331aed0c846cc9 |
Build output
При astro build се генерират статични HTML файлове за всички 25 езика и 5 страници:
dist/
├── index.html # EN (default, без prefix)
├── pricing/index.html
├── download/index.html
├── privacy/index.html
├── terms/index.html
├── bg/index.html # BG
├── bg/pricing/index.html
├── bg/download/index.html
├── ...
├── uk/index.html # UK (последен език)
├── uk/terms/index.html
├── sitemap-0.xml # Автоматичен sitemap
└── sitemap-index.xml
Общо: ~125 HTML файла (25 езика x 5 страници).
Build-time Data Fetching
По време на build, Astro извлича данни от външни API-та:
| Източник | Използва се от | Описание |
|---|---|---|
| Stripe Pricing API | Hero, Pricing компоненти | Месечна и годишна цена за Pro план |
Stats API (pro.dictaro.ai/stats/public) | Stats компонент | Брой потребители, часове диктовка, спестени часове |
Ако API-то не е достъпно при build, стойностите по подразбиране са нули.
Ръчен deploy
cd website
npm ci
npm run build
npx wrangler pages deploy ./dist --project-name=dictaro-website
Необходими environment variables:
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID
Rollback
Cloudflare Pages поддържа deployment history. Rollback може да се направи от Cloudflare Dashboard:
- Отвори Cloudflare Dashboard → Pages → dictaro-website
- Избери предишен deployment
- Натисни "Rollback to this deployment"