Plataformas

Cómo montar tu propio servidor y alojar todos tus proyectos

Un VPS, un panel de deploy y tu dominio: la ruta para alojar proyectos ilimitados por unos pocos euros al mes en lugar de pagar por cada uno.

6 pasosNivel intermedioUna tardeDesde 5 € al mes

El stack en 30 segundos

Qué tendrás al terminar

  • Un servidor tuyo, seguro y actualizándose solo.
  • Un panel donde despliegas proyectos desde git, como en Vercel pero en tu máquina.
  • Tus dominios apuntando ahí, con HTTPS automático.
  • Backups que se hacen solos y que sabes restaurar.

Alojar tú mismo tiene una ventaja que no se ve hasta que llevas unos meses: el coste deja de crecer. El mismo servidor de cinco euros aloja tu primer proyecto y el décimo.

A cambio asumes la parte que antes hacía otro: mantener la máquina al día y responder de los backups. Los pasos 2 y 6 de esta ruta son exactamente esa parte. Hazlos bien y el resto es cómodo.

Esta ruta pide algo más de soltura con la terminal que las otras, pero no hace falta saber administrar sistemas: el panel de deploy se encarga de casi todo lo difícil.

Elige el VPS

La máquina donde va a vivir todo. Aquí manda el precio por recurso.

Un VPS es un servidor con acceso completo por precio de suscripción. Con la máquina más pequeña de cualquiera de estos proveedores ya puedes alojar varios proyectos pequeños; el salto de verdad lo marca la memoria, no el procesador.

Empieza con 4 GB de RAM si vas a correr un panel de deploy y un par de bases de datos. Todos permiten redimensionar más adelante, así que no pagues de más el primer mes.

Ponlo en marcha

Crea el servidor con Ubuntu LTS y añade tu clave SSH durante la creación, no después.

ssh-keygen -t ed25519 -C "mi-portatil"
cat ~/.ssh/id_ed25519.pub
ssh root@TU_IP
  • Pega el contenido de la clave pública en el panel del proveedor al crear el servidor. Así entras sin contraseña desde el primer minuto.
  • Elige la región más cercana a tus usuarios, no a ti. La latencia se nota.
  • Activa los snapshots automáticos del proveedor si los ofrece. Cuestan poco y te salvan de un desastre.

Asegura la máquina

Quince minutos que evitan que tu servidor acabe minando criptomonedas.

Un servidor recién creado con IP pública empieza a recibir intentos de acceso a los pocos minutos. No es paranoia: es tráfico automatizado constante buscando contraseñas fáciles.

Con tres cosas estás cubierto para lo que un proyecto normal necesita: entrar solo con clave, no entrar como root y cerrar todos los puertos que no uses.

Ponlo en marcha

Conectado como root, crea tu usuario y copia las claves antes de cerrar la puerta.

adduser builder
usermod -aG sudo builder
rsync --archive --chown=builder:builder ~/.ssh /home/builder
ufw allow OpenSSH && ufw allow 80/tcp && ufw allow 443/tcp && ufw enable
apt update && apt install -y unattended-upgrades
  • Antes de desactivar el acceso de root, abre una segunda terminal y comprueba que entras como builder. Si te equivocas y solo tienes una sesión abierta, te quedas fuera del servidor.
  • En /etc/ssh/sshd_config pon PermitRootLogin no y PasswordAuthentication no, y luego systemctl restart ssh.
  • No abras puertos de bases de datos al mundo. Si necesitas conectarte desde tu portátil, hazlo por un túnel SSH.

Instala el panel de deploy

La experiencia de Vercel, pero corriendo en tu máquina.

Un panel de deploy es lo que convierte un servidor vacío en algo cómodo: conectas el repositorio, cada push construye y publica, los certificados HTTPS se emiten solos y las bases de datos se levantan con un botón.

Sin panel tendrías que pelearte con Docker, Nginx y certificados a mano cada vez. Con panel, montar un proyecto nuevo son tres minutos.

Ponlo en marcha

Un solo comando en el servidor. Tarda unos minutos en levantar todo.

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
  • Al terminar, entra en http://TU_IP:8000 y crea la cuenta de administrador de inmediato: hasta que lo hagas, el panel está abierto a quien encuentre la IP.
  • Con 2 GB de RAM el panel arranca, pero se queda corto en cuanto construyes proyectos. Cuatro es el mínimo cómodo.
  • Conecta tu cuenta de GitHub desde el panel para tener deploys automáticos en cada push.

Dominio, DNS y SSL

Que tus proyectos se vean en tu dominio y con el candado.

El servidor tiene una IP, pero nadie va a escribir una IP. Necesitas un dominio y un registro DNS que lo apunte a esa dirección.

Lo más práctico es dedicar un dominio a tu infraestructura y usar subdominios para cada proyecto y para el propio panel. El certificado HTTPS te lo emite el panel automáticamente en cuanto el DNS apunta bien.

Ponlo en marcha

En tu registrador, crea un registro A por cada subdominio apuntando a la IP del servidor.

dig panel.midominio.com +short
dig app.midominio.com +short
  • Un registro A comodín con nombre * y la IP de tu servidor te ahorra crear un registro por proyecto. Muy cómodo cuando despliegas a menudo.
  • Espera a que dig devuelva la IP correcta antes de pedir el certificado en el panel. Si lo pides antes, falla y algunos emisores limitan los reintentos.
  • Si usas Cloudflare como DNS, pon la nube en gris mientras emites el certificado. Con la nube naranja, el panel no consigue validar el dominio.

Pon la base de datos

Dónde guardan los datos tus proyectos.

El panel puede levantarte un Postgres en el mismo servidor con un clic, y para la mayoría de proyectos eso es más que suficiente y no cuesta nada extra.

La razón para usar una base de datos gestionada fuera es no querer responsabilizarte de los backups y de que siga en pie. Si tus datos importan de verdad y no quieres pensar en ello, sácala del servidor.

Ponlo en marcha

Si la levantas en el servidor, conéctate siempre por la red interna, nunca abriendo el puerto.

docker exec -it mi-postgres psql -U postgres
ssh -L 5433:localhost:5432 builder@TU_IP
  • Con el túnel SSH abierto puedes conectar tu cliente de base de datos favorito a localhost:5433 sin exponer nada a internet.
  • En el panel, los servicios se ven entre ellos por su nombre interno. Usa ese nombre en la cadena de conexión, no la IP pública.
  • Una base de datos en el mismo servidor comparte memoria con todo lo demás. Si empieza a ir lento, lo primero que hay que mirar es la RAM.

Backups y actualizaciones

Poder perder el servidor entero sin perder nada importante.

Un backup que no has restaurado nunca no es un backup, es una carpeta. Este paso son quince minutos y es la diferencia entre un susto y una catástrofe.

Dos capas: el snapshot del proveedor, que devuelve la máquina entera al estado de anoche, y el volcado de tus bases de datos guardado fuera del servidor, porque si el disco se va, el snapshot puede irse con él.

Ponlo en marcha

Programa un volcado diario y súbelo a un almacenamiento externo.

docker exec -t mi-postgres pg_dumpall -c -U postgres | gzip > /var/backups/db-$(date +%F).sql.gz
crontab -e
find /var/backups -name "db-*.sql.gz" -mtime +14 -delete
  • Restaura un backup en un servidor de prueba al menos una vez. Es la única forma de saber que funciona.
  • Guarda una copia fuera del servidor: un bucket de almacenamiento o incluso tu propio disco. Un backup que vive en la máquina que se rompe no sirve de nada.
  • Activa los snapshots automáticos del proveedor además de esto. Cuestan un par de euros y restauran la máquina entera en minutos.
  • Coolify y Dokploy tienen backups programados de base de datos integrados. Actívalos y ahórrate el cron.

Todas las plataformas de esta ruta

Coolify

coolify.io

Alternativa open source a Vercel y Heroku que instalas en tu propio servidor.

Hosting y PaaSGratisOpen sourceSelf-hosted

DigitalOcean

digitalocean.com

Droplets, bases de datos gestionadas y App Platform, con la mejor documentación del sector.

VPS y cloudDe pago

Hetzner

hetzner.com

Servidores cloud y dedicados alemanes con la mejor relación precio-rendimiento del mercado.

VPS y cloudDe pago

Namecheap

namecheap.com

Registrador de dominios barato y sin sorpresas, con privacidad WHOIS incluida de por vida.

Dominios y DNSDe pago

Supabase

supabase.com

Backend como servicio sobre Postgres: base de datos, auth, storage y realtime, open source.

Bases de datos y BaaSFreemiumOpen sourceSelf-hosted

Cloudflare Registrar

cloudflare.com

Dominios a precio de coste, sin margen ni subidas en la renovación, dentro del ecosistema Cloudflare.

Dominios y DNSDe pago

Contabo

contabo.com

VPS alemanes con mucha RAM y disco por muy poco dinero; potencia bruta a precio mínimo.

VPS y cloudDe pago

Dokploy

dokploy.com

PaaS open source y autoalojado para desplegar apps y bases de datos en tu propio servidor.

Hosting y PaaSFreemiumOpen sourceSelf-hosted

Neon

neon.com

Postgres serverless con branching de bases de datos y escalado a cero.

Bases de datos y BaaSFreemium

PocketBase

pocketbase.io

Backend completo en un solo archivo (Go + SQLite): auth, base de datos, realtime y panel de administración.

Bases de datos y BaaSGratisOpen sourceSelf-hosted

Porkbun

porkbun.com

Registrador favorito de los builders: renovaciones baratas, privacidad y SSL incluidos.

Dominios y DNSDe pago

Scaleway

scaleway.com

Cloud francés con VPS, instancias GPU y serverless, con datos alojados en Europa.

VPS y cloudDe pago

Turso

turso.tech

SQLite/libSQL en el edge con réplicas embebidas y un plan gratuito muy amplio.

Bases de datos y BaaSFreemium

¿Quieres cambiar alguna pieza? Busca alternativas en el directorio

Actualizado el