Qué resuelve esto
Si alguna vez has buscado hosting barato con Node.js que no se venga abajo en cuanto necesitas una segunda aplicación, ya conoces el compromiso: precio bajo, pero todo comparte un único runtime, una versión de PHP, un servidor web y un mismo radio de impacto. Una actualización rota en un sitio se lleva por delante a los demás.
Nuestro hosting web está construido al revés. Funciona en nuestro propio servidor en Rumanía, no en espacio revendido. Cada cliente recibe una cuenta Linux separada con sus propios límites de CPU, memoria, procesos y disco, y cada sitio web se ejecuta en sus propios contenedores Podman rootless, sin acceso a la red local del servidor ni a las cuentas de otros clientes. Un problema en un sitio no llega a tus otros sitios ni a otros clientes.
Este tutorial recorre el pedido, la creación de un sitio, la conexión de un dominio, el despliegue de una aplicación Node.js o Python y los límites honestos de la configuración, para que puedas decidir con toda la información.
Requisitos previos
- Un dominio que controles en un registrador, si quieres tu propio nombre en el sitio. Sin uno, cada sitio funciona en una dirección de vista previa.
- El código de tu aplicación, o un plan para empezar desde la página de inicio.
- Para Node.js y Python necesitas el plan Standard o superior; Start solo cubre PHP y sitios estáticos.
- Una tarjeta para el pago con Stripe. Los precios están en EUR, el IVA se calcula al pagar según tu país.
Paso 1: Contratar un plan
- Abre la página de hosting y elige un plan y un periodo de facturación (mensual o anual). La facturación anual cuesta diez veces el precio mensual, y el precio se mantiene igual al renovar: no hay precio de introducción que suba después.
- Añade opciones si las necesitas: +10 GB NVMe, +1 vCPU, +1 GB RAM o backup extendido. Puedes cambiarlas más adelante.
- Introduce tu dirección de correo, acepta los Términos, la Política de uso aceptable y el Acuerdo de procesamiento de datos, y paga con Stripe.
Tu cuenta de hosting se crea automáticamente tras el pago, normalmente en unos minutos, y recibes un correo. La garantía de devolución de 30 días empieza con tu primer pago.
Una orientación rápida sobre los planes: Start es 1 vCPU / 1 GB RAM / 10 GB NVMe con PHP y sitios estáticos. Standard es 2 / 2 GB / 25 GB y añade Node.js y Python, SSH con claves y Git. Pro añade Redis. Business añade tus propias imágenes de contenedor. Los planes y opciones actuales están en la página de hosting.
Paso 2: Añadir un sitio web
Ve a Websites → Add a website en Account → Hosting.
- Name: letras minúsculas, dígitos y guiones. Se convierte en la carpeta
www-data/<name>dentro de tu carpeta personal. - Technology: PHP 8.1–8.5, Node.js 22 o 24, Python 3.12, o estático.
- Web server (solo PHP): Apache lee los archivos
.htaccessy es la opción segura para WordPress y la mayoría de aplicaciones PHP que incluyen reglas de reescritura ahí. nginx es más ligero y rápido para archivos estáticos pero ignora.htaccess. Lo eliges por sitio y puedes mezclar ambos en una misma cuenta. - Domain (opcional): tu propio dominio o un subdominio de un dominio de tu cuenta; el registro DNS del subdominio se crea automáticamente. Sin dominio, el sitio funciona al instante en su dirección de vista previa,
<site>-<user>.hosting.medialab.works(solo HTTP hasta que muevas el dominio). - Web root (PHP y estático): la carpeta dentro de
www-data/<site>que se sirve a los visitantes,publicpor defecto;.significa la propia carpeta del sitio.
Cuando se crea el sitio, su carpeta recibe una página de inicio que muestra que el dominio llega al servidor, dónde está alojado el sitio y qué versión de PHP se ejecuta. Sustitúyela por tus propios archivos.
Dónde van los archivos:
| Tecnología | Carpeta |
|---|---|
| PHP, estático | www-data/<site>/public (o la raíz web que hayas elegido) |
| Node.js, Python | www-data/<site>/app |
Paso 3: Conectar tu dominio y obtener DNS y correo gratis
Cuando añades un dominio, creamos tres cosas por ti: una zona DNS en Cloudflare en nuestra cuenta con los registros web y los registros de correo (MX, SPF, DKIM, DMARC, autoconfig), el dominio de correo en nuestro servidor de correo con su clave DKIM, y el sitio web en el servidor con un certificado SSL en cuanto el dominio apunta a nosotros.
Lo que haces tú: en tu registrador, sustituye los nameservers por los dos que aparecen en Account → Hosting → Domains. El cambio suele tardar desde unos minutos hasta unas horas, a veces hasta 48 horas. La página del dominio muestra cada paso; cuando se ven los nameservers, la zona se activa y el certificado se emite automáticamente. Check DNS e Issue certificate te permiten reintentar de inmediato.
¿Prefieres mantener tu proveedor DNS actual? Apunta un registro A a la dirección IP que aparece en la cuenta y añade tú mismo los registros de correo si quieres correo en el dominio; la tabla de registros DNS de la cuenta los lista. Sin nuestros nameservers, los registros DNS son responsabilidad tuya.
Paso 4: Desplegar una aplicación Node.js o Python
Sube tu aplicación a www-data/<site>/app. Dos reglas deciden si funciona:
- Debe escuchar en el puerto de la variable de entorno
PORT(8080 dentro del contenedor) en todas las interfaces (0.0.0.0), no solo enlocalhost. El servidor web y el certificado están delante; tú no abres ningún puerto. - El orden de arranque importa. Para Node.js: un
start.shejecutable enapp/, si nonpm startdesdepackage.json(las dependencias se instalan connpm ci --omit=devcuando faltanode_modules), si noserver.js,index.js,app.jsomain.js. Para Python: unstart.shejecutable, si noasgi.py(servido por workers de uvicorn en gunicorn), si noapp.pycon un objetoappowsgi.pyconapplication(gunicorn).requirements.txtse instala en un entorno virtual y se reinstala al arrancar cuando el archivo ha cambiado.
Después de subir una nueva versión, pulsa Restart junto al sitio. Hasta que se encuentra una aplicación, el sitio muestra una página de marcador que indica qué falta.
Para aplicaciones PHP el flujo es familiar: crea una base de datos MariaDB en Databases (su nombre completo pasa a ser <user>_wp), sube el proyecto a www-data/<site> y pulsa Detect en Settings junto al sitio. Reconocemos Laravel, Symfony, WordPress, Drupal, Nextcloud, WHMCS y otros, y sugerimos la raíz web. Los archivos fuera de la raíz web (vendor/, storage/, .env, los datos de Nextcloud, attachments, downloads y templates_c de WHMCS) siguen accesibles para la aplicación pero no desde el navegador. Para WordPress, DB_HOST es mlw-db:3390. La contraseña de tu usuario de base de datos se muestra una sola vez, cuando creas tu primera base de datos MariaDB: guárdala.
Paso 5: Correo desde tu sitio en el puerto 587
El correo saliente de tus sitios pasa por nuestro servidor de correo con un buzón, en el puerto 587. El envío directo por el puerto 25 está bloqueado, lo que mantiene la dirección del servidor fuera de las listas de spam. Los buzones, el webmail, IMAP y SMTP forman parte de todos los planes.
Paso 6: Backups que restauras tú mismo, y sus límites honestos
Los backups se ejecutan cada noche con restic, cifrados, en un disco separado en el mismo servidor. Puedes restaurar archivos y bases de datos tú mismo desde tu cuenta, hacer backups bajo demanda y descargar un sitio o una base de datos de cualquier backup. La retención depende del plan: 7 días en Start, 14 en Standard, 14 diarios más 4 semanales en Pro, 30 diarios más 12 mensuales en Business. El backup extendido los conserva tanto como en el plan siguiente. También está disponible la restauración por nuestro equipo; la primera de cada mes es gratis.
Aquí está la parte honesta: los backups se guardan en el mismo servidor, en un disco separado, no en una segunda ubicación. Te protegen de errores, de una actualización rota o de un sitio comprometido, pero no de la pérdida de todo el servidor. Conserva tu propia copia de todo lo importante; puedes descargar tus archivos y bases de datos en cualquier momento. Además hay un solo servidor: la disponibilidad está respaldada por nuestro SLA (99,9 % mensual, con créditos en la siguiente factura), pero no hay conmutación por error automática a una segunda máquina. Y "ilimitado" en Business significa uso razonable: la CPU, la RAM y el disco del plan siguen aplicándose, y los límites técnicos existen solo para frenar el abuso (consulta los Términos).
Consejos y solución de problemas
- El sitio muestra la página de marcador: tu aplicación no se encontró o no está escuchando correctamente. Comprueba que se enlaza a
0.0.0.0:$PORTy pulsa Restart. - Lee primero los logs: cada sitio registra en
logs/<site>/(nginx/oapache/conaccess.logyerror.log, másphp/,node/opython/para la salida de la aplicación). Los mismos logs aparecen en Settings → Logs. - Mover un sitio WordPress: sube el archivo, extráelo en Files, corrige
wp-config.phpy luego usa Detect en la aplicación. Apache es la opción más segura por defecto para las reglas de reescritura. - Subidas grandes: el gestor de archivos acepta archivos de cualquier tamaño que permita tu plan, enviados por partes, y extrae
.zip,.tar.gz,.tar.bz2o.tar.xz. La descarga de una carpeta completa como.zipse prepara en segundo plano y permanece en Operations and downloads durante 24 horas. - Atascado en el DNS: espera la propagación y luego usa Check DNS e Issue certificate para reintentar sin abrir un ticket.
- Necesitas una base de datos en el navegador: Adminer se abre con un clic para MariaDB y PostgreSQL, con exportación e importación de
.sql.
Hay más respuestas en la base de conocimiento y las FAQ; el paso a paso desde el pedido hasta tu primer buzón está en la guía de inicio.
Conclusión
El aislamiento por sitio no es aquí una palabra de marketing: es una cuenta Linux separada con sus propios límites y contenedores Podman rootless por sitio web, en hardware que gestionamos nosotros mismos en Rumanía. Tienes Apache o nginx por sitio, PHP 8.1–8.5, Node.js 22/24 y Python 3.12 desde Standard, DNS automático en Cloudflare con registros de correo, SSL gratis y un precio de renovación que no sube. Los límites se dicen claramente: los backups viven en el mismo servidor, y es una sola máquina. Si eso encaja con cómo gestionas tus propios servidores, la página de hosting tiene los planes, y puedes contactarnos con cualquier cosa que la guía no cubra.