Guía de despliegue

Desplegar una aplicación SvelteKit en un VPS

Desplegar en un VPS Cloud →

Tutorial

Desplegar una aplicación SvelteKit en un VPS

Desarrollo3 min de lectura6 pasos

SvelteKit produce aplicaciones full-stack de alto rendimiento, pero la mayoría de los tutoriales dan por supuesto un despliegue serverless. En un VPS, el adaptador Node le da un verdadero servidor de larga duración, sin arranque en frío ni límite de ejecución. Veamos cómo desplegarlo correctamente con Docker y un reverse proxy.

Contenido· Por qué autoalojar SvelteKit en un VPS1/5
  1. 01Por qué autoalojar SvelteKit en un VPS
  2. 02Beneficios concretos
  3. 03Requisitos de hardware y software
  4. 04Despliegue paso a paso
  5. 05Desplegar SvelteKit en un clic desde el Marketplace

Por qué autoalojar SvelteKit en un VPS

SvelteKit se adapta a numerosos destinos mediante sus adaptadores (Vercel, Netlify, Cloudflare…), pero el adaptador oficial @sveltejs/adapter-node produce un servidor Node autónomo, perfecto para un VPS. En lugar de dividir su aplicación en funciones serverless sujetas a cold starts y a límites de duración de ejecución, obtiene un proceso persistente que mantiene abiertas sus conexiones a la base de datos y responde sin arranque en frío. Las acciones de formulario, las funciones load del lado del servidor y los endpoints +server.ts se ejecutan en un único runtime que usted controla. En un VPS, además evita la facturación por invocación, frecuente en las plataformas front, que se vuelve impredecible en cuanto sube el tráfico.

Beneficios concretos

  • Servidor Node persistente mediante adapter-node: ningún cold start en las rutas de servidor
  • Conexiones a la base de datos mantenidas abiertas en un pool, sin reconexión en cada petición
  • Sin facturación por invocación: coste estable incluso con un tráfico elevado e irregular
  • Acciones de formulario y endpoints +server.ts ejecutados sin límite de duración impuesto
  • WebSockets y SSE posibles, allí donde el serverless los prohíbe o los complica
  • Variables de entorno y secretos gestionados directamente, sin panel de una plataforma de terceros

Requisitos de hardware y software

Una aplicación SvelteKit en modo Node consume de forma moderada: un VPS de 1 vCPU y 2 GB de RAM basta para un sitio de tráfico medio; suba a 2 vCPU / 4 GB si coloca junto a ella una base PostgreSQL y tiene funciones load de servidor pesadas. Instale Node.js 20 LTS y, o bien Docker, o bien PM2 para gestionar el proceso como daemon. Nginx hará de reverse proxy. Apunte su dominio a la IP del VPS. El build (build/ generado por adapter-node) se mantiene ligero: de 5 a 10 GB de disco bastan con los node_modules.

Despliegue paso a paso

  1. Instalar y configurar el adaptador Node

    Añada @sveltejs/adapter-node y declárelo en svelte.config.js (adapter: adapter()). Es él quien transforma su aplicación en un servidor Node autónomo en lugar de en un bundle serverless.

  2. Compilar la aplicación

    Ejecute npm run build. SvelteKit genera una carpeta build/ que contiene index.js, el punto de entrada del servidor. Puede probarlo en local con node build; por defecto escucha en el puerto 3000.

  3. Contenerizar o daemonizar el proceso

    Con Docker: un Dockerfile node:20-alpine que copia build/ y package.json, instala las dependencias de producción (npm ci --omit=dev) y ejecuta node build. Sin Docker: utilice PM2 con pm2 start build/index.js --name svelte-app para el reinicio automático.

  4. Inyectar la configuración de runtime

    Pase PORT, ORIGIN (imprescindible para que SvelteKit valide las acciones de formulario) y sus secretos a través del entorno: ORIGIN=https://mondomaine.com. Sin un ORIGIN correcto, las acciones de formulario fallarán en producción con un error CSRF.

  5. Configurar Nginx como frontal

    Cree un vhost con proxy_pass http://127.0.0.1:3000; y las cabeceras proxy_set_header Host y X-Forwarded-Proto $scheme. Active proxy_http_version 1.1 y las cabeceras Upgrade si utiliza WebSockets.

  6. Proteger con Let's Encrypt

    Ejecute certbot --nginx -d mondomaine.com. Una vez instalado el certificado, compruebe que ORIGIN coincide con la URL HTTPS final; de lo contrario, los envíos de formulario serán rechazados.

Cachee la salida de las rutas estáticas con la cabecera Cache-Control en sus funciones load, y active la precompresión: adapter-node sirve automáticamente los archivos .gz y .br si existen. Compile con la precompresión definiendo precompress: true en las opciones del adaptador. En cuanto a la gestión de procesos, prefiera el modo cluster de PM2 (pm2 start build/index.js -i max) para aprovechar todos los núcleos del VPS con una carga de CPU elevada.

Desplegar SvelteKit en un clic desde el Marketplace

El Marketplace de ServOrbit ofrece una plantilla SvelteKit Stack que configura automáticamente Node.js LTS, PM2 y Nginx en su VPS Ubuntu 24.04 en unos minutos. Elija su VPS, seleccione la plantilla y obtenga un entorno de producción listo para recibir su proyecto SvelteKit — sin línea de comandos del sistema. El aprovisionamiento instala toda la cadena de herramientas; solo queda transferir su build y configurar Nginx para su dominio.

Su entorno SvelteKit listo en unos minutos

La plantilla SvelteKit Stack configura automáticamente Node.js LTS, PM2 y Nginx — lista para alojar su aplicación SvelteKit en modo SSR o estático.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva