Миграция с Vercel/Netlify на свой VPS: NextJS standalone

calendar_month 8 мая 2026 schedule 6 мин. чтения visibility 7 просмотров
person
Valebyte Team
Миграция с Vercel/Netlify на свой VPS: NextJS standalone

Для миграции с Vercel на свой VPS оптимально использовать режим NextJS standalone, который позволяет упаковать приложение в легкий Docker-контейнер и запускать его на сервере стоимостью от $10-20 в месяц, полностью исключая переплаты за Edge Functions, пропускную способность и оптимизацию изображений.

Экономика миграции: почему Vercel alternative VPS становится необходимостью

Vercel и Netlify — великолепные инструменты для быстрого старта, но их бизнес-модель построена на «налоге на успех». Как только ваш проект начинает генерировать существенный трафик или активно использовать серверные функции, счета растут экспоненциально. Основная причина искать vercel alternative vps — это непрозрачное ценообразование за пределами лимитов тарифного плана Pro.

Типичный кейс: проект на NextJS с 500,000 уникальных посетителей в месяц. На Vercel вы начнете платить не только $20 за разработчика, но и за превышение лимитов по следующим пунктам:

  • Bandwidth: $40 за каждые дополнительные 100 GB. На своем VPS трафик часто либо безлимитный, либо стоит в 10-20 раз дешевле.
  • Edge Functions: Оплата за время исполнения и количество вызовов. Сложная логика в Middleware может поднять счет на $200-500 в месяц.
  • Image Optimization: $5 за каждые 1000 дополнительных оптимизированных изображений.
Параметр Vercel (Pro + Overages) Valebyte VPS (High Frequency) Экономия
Стоимость ресурсов $200 - $1500+ $20 - $80 до 95%
Пропускная способность $40 / 100GB 10TB включено (0.01$/GB превышение) в 40 раз дешевле
CPU / RAM Shared (ограничено) Выделенные ядра, 8-16GB RAM Полный контроль
Таймауты функций 10-60 секунд Без ограничений Свобода архитектуры

Когда вы понимаете, что вам нечего платить vercel за воздух, переход на собственную инфраструктуру становится логичным шагом. Использование AWS EC2 alternative для backend в виде производительного VPS позволяет не только сэкономить, но и получить предсказуемый Fixed Billing.

Self host NextJS: разбираемся с режимом standalone

Основная сложность, которой пугают сторонники PaaS-решений, — это настройка окружения. Однако, начиная с версии 12, NextJS поддерживает режим output: 'standalone'. Это киллер-фича для тех, кто планирует self host nextjs.

В этом режиме NextJS автоматически собирает только те файлы, которые необходимы для работы в production, включая минимальную версию node_modules. Результат сборки — один файл server.js, который заменяет собой огромную папку проекта. Это позволяет сократить размер Docker-образа с 1.5 GB до 150-200 MB.

Как включить standalone режим

В файле next.config.js добавьте следующую настройку:

module.exports = {
  output: 'standalone',
}

После запуска команды next build, папка .next/standalone будет содержать все необходимое для запуска сервера. Вам больше не нужно копировать весь исходный код на VPS, что делает процесс vercel to vps максимально чистым и профессиональным.

Ищете надёжный сервер для ваших проектов?

VPS от $10/мес и выделенные серверы от $9/мес с NVMe, DDoS-защитой и поддержкой 24/7.

Смотреть предложения →

Vercel to VPS: пошаговая инструкция по контейнеризации

Для надежного деплоя лучше всего использовать Docker. Это гарантирует, что приложение будет работать одинаково на вашей машине и на сервере Valebyte. Ниже приведен оптимизированный Dockerfile для NextJS приложения.

FROM node:20-alpine AS base

# Установка зависимостей
FROM base AS deps
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
RUN npm ci

# Сборка проекта
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build

# Финальный образ
FROM base AS runner
WORKDIR /app
ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static

USER nextjs
EXPOSE 3000
ENV PORT 3000
CMD ["node", "server.js"]

Этот Dockerfile реализует multi-stage build, что критически важно для производительности. Если вы ищете DigitalOcean alternative, обратите внимание на наши тарифы с NVMe дисками — скорость сборки образа на них будет в 2-3 раза выше за счет отсутствия жестких лимитов на IOPS.

Настройка Docker Compose

Для управления контейнером и сопутствующими сервисами (например, Redis для кэширования ISR) используйте docker-compose.yml:

version: '3.8'
services:
  nextjs:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=${DATABASE_URL}
      - NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
    restart: always

Когда нечего платить Vercel: настройка окружения на сервере

После того как контейнер готов, необходимо настроить фронтенд-часть: веб-сервер, SSL-сертификаты и защиту от атак. В Vercel это «магия» под капотом, на VPS — это 10 минут настройки Nginx.

Установка Nginx как Reverse Proxy

Nginx будет принимать запросы на 80/443 портах и перенаправлять их в ваш Docker-контейнер. Пример конфигурации:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Для автоматизации получения SSL-сертификатов используйте Certbot. Это бесплатно и обновляется автоматически, в отличие от платных опций у некоторых провайдеров. Если вы планируете масштабный переезд, изучите наш гайд: переезд с AWS Lightsail/EC2 на dedicated, где подробно описаны нюансы настройки сетевого стека для высоких нагрузок.

Netlify alternative: хостинг статики и SSR на своем железе

Многие выбирают Netlify за удобство работы со статикой (SSG). Однако NextJS на VPS отлично справляется и с этим. При использовании next export вы получаете набор HTML/CSS/JS файлов, которые Nginx может отдавать с невероятной скоростью без участия Node.js процесса.

Преимущества VPS как netlify alternative:

  1. Отсутствие лимитов на формы: На Netlify формы платные после 100 сабмитов. На своем сервере вы можете поставить простой микросервис на Go или Python.
  2. Custom Headers: Полный контроль над Cache-Control, Security Headers и CORS без правок в YAML-конфигах платформы.
  3. Близость к БД: Если ваша база данных находится в том же дата-центре (например, в Valebyte), задержка (latency) при SSR будет составлять <1ms, тогда как функции Vercel могут находиться в другом регионе.

Для тех, кто привык к Managed-решениям, существует Managed hosting альтернатива, которая сочетает в себе удобство панели управления и низкую стоимость аренды сервера.

Безопасность и масштабирование: Cloudflare Tunnel и балансировка

При переходе на vercel alternative vps важно не забыть про безопасность. В PaaS-решениях вы защищены их инфраструктурой. На своем сервере вы — хозяин ситуации.

Cloudflare Tunnel: скрываем сервер от посторонних глаз

Вместо того чтобы открывать 80 и 443 порты всему миру, можно использовать cloudflared. Это создает туннель между вашим VPS и сетью Cloudflare. Плюсы:

  • Сервер не имеет публичного IP, доступного для сканеров портов.
  • Бесплатная защита от DDoS.
  • Автоматический SSL «из коробки».

Масштабирование NextJS приложений

Если одного сервера становится мало, NextJS standalone позволяет легко горизонтально масштабироваться. Вы можете запустить 5 одинаковых VPS и поставить перед ними балансировщик нагрузки (Load Balancer). Поскольку сессии в NextJS обычно хранятся в JWT или внешнем Redis, проблем с состоянием (state) не возникнет.

Автоматизация деплоя: CI/CD без лишних затрат

Главный аргумент против VPS — «на Vercel я просто делаю git push». На своем сервере можно настроить аналогичный процесс за 15 минут с помощью GitHub Actions.

Пример workflow для автоматического деплоя:

name: Deploy to VPS
on:
  push:
    branches: [ main ]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Build and push Docker image
        run: |
          docker build -t my-next-app .
          docker save my-next-app | ssh user@vps "docker load"
      - name: Restart container
        run: |
          ssh user@vps "docker-compose up -d"

Такой подход обеспечивает Zero Downtime Deployment. Пока новый контейнер собирается и запускается, старый продолжает обслуживать трафик. Это делает self host nextjs таким же удобным, как и использование дорогих облачных платформ.

Оптимизация производительности: кэширование и Sharp

Одна из скрытых затрат Vercel — Image Optimization. На своем VPS вам нужно убедиться, что библиотека sharp установлена корректно. NextJS использует её для сжатия изображений на лету.

В Dockerfile обязательно должна быть установлена sharp, чтобы избежать использования медленного fallback-решения на JS. Это позволяет обрабатывать тысячи изображений в секунду, загружая CPU вашего сервера, а не кошелек.

Также важно настроить кэширование для ISR (Incremental Static Regeneration). По умолчанию NextJS хранит кэш в файловой системе. В распределенной среде лучше использовать плагин для Redis, чтобы все инстансы приложения видели актуальный кэш страниц.

Выводы

Переход с Vercel или Netlify на собственный VPS — это зрелое решение для проекта, вышедшего из стадии MVP, позволяющее сократить расходы на хостинг в 10-15 раз. Для успешной миграции достаточно использовать NextJS в режиме standalone, упаковать его в Docker и настроить автоматический деплой через GitHub Actions на надежные серверы Valebyte.

Готовы выбрать сервер?

VPS и выделенные серверы в 72+ странах с мгновенной активацией и полным root-доступом.

Начать сейчас →

Share this post:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.