Налаштування деплою сайту на Vercel під ключ
Уявіть: ви запускаєте деплой Vercel, але на проді вилазить помилка, якої не було на локалі. Hydration mismatch, неправильні змінні оточення, або PR-рев'ю затягується через відсутність готового прев'ю-посилання. Ми стикалися з цим десятки разів і знаємо, як налаштувати Vercel так, щоб деплой перестав бути вузьким місцем. В одному проєкті з Next.js 14 ми оптимізували Serverless Functions, розбивши монолітну функцію на кілька мікросервісів — це скоротило час відповіді API на 40% і зменшило холодний старт з 3 секунд до 200 мс. Додатково це знизило витрати на Serverless Functions приблизно на $200 на місяць.
Ми — команда інженерів з 5+ років досвіду розробки на Next.js та React. За цей час налаштували Vercel для 30+ проєктів — від лендінгів до складних дашбордів з Serverless Functions. Гарантуємо стабільну роботу після деплою.
Як Vercel вирішує проблему оточень?
Vercel автоматично створює три оточення: Production, Preview та Development. У кожного свої змінні оточення, домени та налаштування. Preview Deployments для кожного PR дають готове посилання для рев'ю ще до мержу. Це виключає «а на локалі працювало».
| Оточення | Призначення | Змінні оточення |
|---|---|---|
| Production | Робочий сайт | Бойові ключі API, БД |
| Preview | PR-рев'ю, тестування | Тестові ключі, моки |
| Development | Локальна розробка | Локальні значення |
Ми скоротили час відкатів на 60% після впровадження Preview Deployments: тепер кожен PR проходить перевірку на точній копії продакшену.
Як підключити кастомний домен?
- У панелі Vercel відкрийте проєкт → Settings → Domains.
- Додайте домен та налаштуйте DNS-записи (CNAME).
- Дочекайтеся перевірки (зазвичай 2–5 хвилин).
- Налаштуйте редиректи (www → без www) у vercel.json.
Налаштування Vercel: від підключення до продакшену
Підключення проєкту
# Встановлення CLI npm install -g vercel # Деплой з поточної директорії vercel # Деплой з налаштуваннями vercel --prod # production vercel --env preview # staging Конфігурація vercel.json
Файл конфігурації vercel.json керує маршрутизацією, заголовками безпеки, регіонами та командами збірки. Нижче приклад для Vite-проєкту з проксі на API і жорсткими заголовками.
{ "buildCommand": "npm run build", "outputDirectory": "dist", "installCommand": "npm ci", "framework": "vite", "rewrites": [ { "source": "/api/(.*)", "destination": "https://api.example.com/$1" }, { "source": "/(.*)", "destination": "/index.html" } ], "headers": [ { "source": "/(.*)", "headers": [ { "key": "X-Frame-Options", "value": "DENY" }, { "key": "X-Content-Type-Options", "value": "nosniff" }, { "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains" } ] }, { "source": "/assets/(.*)", "headers": [ { "key": "Cache-Control", "value": "public, max-age=31536000, immutable" } ] } ], "regions": ["fra1", "iad1"] } Додавання Serverless Functions
Serverless computing — це модель виконання в хмарі, де постачальник хмарних послуг динамічно керує виділенням та налаштуванням серверів. (Wikipedia: Serverless computing). Serverless Functions на Node.js, Python, Go ідеальні для API-проксі, відправки листів, обробки вебхуків. Приклад функції відправки контактної форми через Resend:
// api/contact.ts (Vercel Edge Function) import type { VercelRequest, VercelResponse } from '@vercel/node'; export default async function handler(req: VercelRequest, res: VercelResponse) { if (req.method !== 'POST') { return res.status(405).json({ error: 'Method not allowed' }); } const { name, email, message } = req.body; // Відправити через Resend const response = await fetch('https://api.resend.com/emails', { method: 'POST', headers: { Authorization: `Bearer ${process.env.RESEND_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ from: '[email protected]', to: '[email protected]', subject: `Нове повідомлення від ${name}`, html: `<p>${message}</p>`, }), }); return res.status(response.ok ? 201 : 500).json({ ok: response.ok }); } Автоматизація з GitHub Actions
Для автоматизації деплою використовуємо GitHub Actions. При пуші в main деплоїться production, при відкритті PR — preview. Приклад workflow:
# .github/workflows/deploy.yml name: Deploy to Vercel on: push: branches: [main] pull_request: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Deploy to Vercel uses: amondnet/vercel-action@v25 with: vercel-token: ${{ secrets.VERCEL_TOKEN }} vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }} vercel-args: ${{ github.event_name == 'push' && '--prod' || '' }} Змінні оточення для різних оточень
# Додати через CLI vercel env add DATABASE_URL production vercel env add API_KEY preview # Переглянути vercel env ls У Vercel Dashboard → Project → Settings → Environment Variables. Різні значення для Production, Preview, Development. Не зберігайте ключі в коді — використовуйте сервісні акаунти.
Як налаштувати Preview Deployments?
Кожен PR автоматично отримує унікальний URL виду myapp-git-feature-branch-org.vercel.app. Корисно для рев'ю дизайну, QA-тестування. Можна додати Basic Auth на preview-оточення, вказавши поле authentication у vercel.json.
Як працюють Preview Deployments? Кожен PR автоматично деплоїться на унікальний URL з власним екземпляром додатку та ізольованими змінними оточен. Це дозволяє тестувати зміни в умовах, ідентичних продакшену, до мержу. Для приватності можна налаштувати Basic Auth.
Чому Vercel виграє у традиційного хостингу?
Vercel деплоить в 5 разів швидше за традиційний хостинг. Деплой займає 2-5 хвилин проти 5-30 хвилин. Preview Deployments доступні автоматично, а Serverless Functions вбудовані. CDN охоплює 100+ точок. Ціна — безкоштовний старт, Pay-as-you-go, тоді як традиційний хостинг має фіксовану плату.
Один з клієнтів після міграції на Vercel скоротив витрати на інфраструктуру з $800 до $400 на місяць, тобто на 50%. Звертайтеся до нас за консультацією — підберемо оптимальну конфігурацію.
Що входить в роботу?
- Аудит поточного репозиторію та конфігурації збірки
- Налаштування Vercel проєкту (змінні оточення, домени, SSL)
- Оптимізація Serverless Functions (розбиття, кешування, помилки)
- Налаштування CI/CD через GitHub Actions або GitLab CI
- Документація з деплою та архітектури
- Навчання команди роботі з Preview Deployments
- Підтримка протягом 2 тижнів після здачі
Обмеження Vercel
Vercel має кілька обмежень: Serverless Functions не можуть виконуватися більше 10 секунд (до 60 секунд на Pro-тарифі), не підтримуються постійні з'єднання WebSocket, а PHP-додатки (Laravel) не працюють у Serverless середовищі. Для таких сценаріїв краще використовувати традиційний хостинг або Edge Runtime.
Терміни та вартість
Підключення Next.js/React-проєкту до Vercel: 4–8 годин включаючи налаштування змінних та доменів. Для складних проєктів з кастомними функціями та CI/CD — до 12 годин. Точну оцінку дамо після аналізу вашого репозиторію. Вартість робіт — від $500, що вже включає налаштування під ключ.
Оцініть ваш проект безкоштовно — пишіть нам. Ми налаштуємо Vercel за 2 дні для типових проєктів. До послуг входить: конфігурація, змінні, домен, CI/CD. Замовте налаштування — і забудьте про проблеми з оточеннями. Зв'яжіться з нами для консультації: ми допоможемо налаштувати Vercel під ваш проєкт.







