Deploy+
Deploy+.
Del push a producción.
- 01 Push
- 02 Build
- 03 Publicar
- 04 En línea
$
esperando cambios…
Versiones
- actual rollback
Cada versión se guarda: volver atrás es un clic, sin corte.
Un git push
y el despliegue arranca solo, sin entrar al panel
Sin downtime
la versión nueva se publica al cambiar un enlace
Rollback en segundos
vuelves a cualquier versión anterior desde el historial
Sin coste
incluido en todos los planes de hosting
Funciona con tu Git, esté donde esté
Cómo funciona
Cuatro pasos, y ya no vuelves a tocarlos.
Conecta
Tu repositorio, esté donde esté
también en las cuentas de un plan Multicuenta
Cinco proveedores, un destino
por HTTPSPush
Haz push y el despliegue arranca solo
- Lo habitual
- Subir ficheros a mano y cruzar los dedos
- Aquí
- Un push, y GitHub avisa al servidor
Del push al despliegue
webhook firmadoPublica
Despliegue atómico, sin corte
0 s
de parada: la versión nueva se publica al cambiar un enlace
Despliegue atómico
~/deploy/tienda/releases/
├─ 20260904-1830 · publicada
└─ 20260905-1012 · clonando y ejecutando script…
shared/
├─ .env → enlazado en cada versión
└─ storage/ → enlazado en cada versión
current → releases/20260904-1830
Vuelve atrás
Rollback en un clic, desde el historial
5 versiones
guardadas por defecto; tú decides cuántas
Historial de despliegues
5 versiones guardadasayer 18:30 · e07b9d4
la versión sigue en el servidor
Asistente
Sabe qué proyecto es y lo prepara.
-
PHP
Laravel
Composer, cachés optimizadas y publicación desde public.
- Raíz web
- public/
- Compartido
- storage
- Base de datos
- la prepara
- Assets con Node
- si lo marcas
-
PHP
Symfony
Composer, entorno prod y publicación desde public.
- Raíz web
- public/
- Compartido
- var/log
- Base de datos
- la prepara
- Assets con Node
- si lo marcas
-
PHP
WordPress
Base de datos, wp-config.php y subidas persistentes.
- Raíz web
- raíz
- Compartido
- wp-content/uploads, wp-config.php
- Base de datos
- la prepara
- Assets con Node
- si lo marcas
-
PHP
PHP / Composer
Una base limpia para aplicaciones PHP con Composer.
- Raíz web
- raíz
- Compartido
- —
- Base de datos
- la prepara
- Assets con Node
- si lo marcas
-
Estático
Frontend compilado
Compila con Node y publica el resultado de dist.
- Raíz web
- dist/
- Compartido
- —
- Base de datos
- no hace falta
- Assets con Node
- siempre
-
Estático
HTML estático
Publica el repositorio tal cual, sin instalar nada.
- Raíz web
- raíz
- Compartido
- —
- Base de datos
- no hace falta
- Assets con Node
- —
-
A medida
Otro proyecto
Sin suposiciones: tú decides raíz, script y persistencia.
- Raíz web
- raíz
- Compartido
- —
- Base de datos
- la prepara
- Assets con Node
- si lo marcas
Qué incluye
Lo que hace falta para desplegar en serio.
Script y Node
Tus comandos, en cada versión, con Node si hace falta
si un comando falla, sigue en línea la anterior
Script de despliegue
plantilla · Laravelcomposer install --no-dev --prefer-dist --optimize-autoloader
npm ci && npm run build # Node instalado por NVM si falta
php artisan migrate --force # opcional: el rollback no deshace datos
php artisan config:cache && php artisan route:cache
Base de datos
La base de datos, creada al conectar
MySQL
base, usuario y fichero en una sola operación
Base de datos · al conectar
lista- Base MySQL vacía mi_app
- Usuario exclusivo con todos los permisos mi_app_usr
- Conexión escrita en .env sin tocar nada a mano
DB_DATABASE=mi_app
DB_USERNAME=mi_app_usr
DB_PASSWORD=•••••••••••• # no se guarda en el panel
Configuración
El .env y las subidas sobreviven a cada versión
- Lo habitual
- Subidas y .env dentro del código, a merced de cada deploy
- Aquí
- Fuera del código: ni un deploy ni un rollback las tocan
Compartido entre versiones
~/deploy/tienda/shared/ → releases/20260905-1012/
.enveditable
storage/del perfil
public/uploads/tuya
Consola
Consola en directo y comandos sobre lo publicado
6 pasos
conectar, clonar, compartidos, script, activar, limpiar
Ejecutar un comando
sobre current · máx. 2 min~/deploy/tienda/current
$ php artisan queue:restart
Broadcasting queue restart signal.
✓ terminado en 0,4 s
Seguridad
Un token con lo mínimo, cifrado y fuera del log
revócalo cuando quieras: solo deja de funcionar el deploy
Permisos del token
los mínimos, y cifradoCifrado, solo para clonar, nunca en el log.
Todo esto va en todos los planes de hosting y en las cuentas de un plan Multicuenta, sin coste.
Leer la guía completa →Dudas
Antes de conectar el primer repositorio.
¿En qué planes está incluido Deploy+?
En todos los planes de hosting, sin coste adicional. La herramienta está en el área de clientes, dentro de las opciones de tu servicio de hosting.
¿Funciona con repositorios privados?
Sí, con repositorios públicos y privados. En ambos casos hace falta un token de acceso de GitHub: crea uno fine-grained, limitado al repositorio que vas a desplegar y con permisos Contents: Read-only y Metadata: Read-only. No necesitamos permisos de escritura sobre tu código.
¿Se cae mi web mientras se despliega?
No. Cada despliegue se clona en una versión nueva, se enlazan los archivos compartidos y se ejecutan tus scripts antes de publicarla: solo cuando todo ha ido bien se mueve el enlace simbólico current a la versión nueva, y ese cambio es instantáneo. Si un script falla, el deploy se detiene y la versión anterior sigue en línea.
¿Cómo vuelvo a la versión anterior si algo sale mal?
Desde el historial, con el botón Rollback sobre cualquier deploy anterior. Tarda segundos porque no se clona nada: solo cambia a qué versión apunta current. Por defecto se conservan las 5 últimas versiones, y puedes ajustar cuántas quieres guardar.
¿Puedo ejecutar composer, npm o comandos de artisan?
Sí. Cada repositorio tiene un editor de scripts donde defines los comandos que se ejecutan en cada versión antes de publicarla: composer install --no-dev, npm run build, php artisan config:cache… El sistema filtra los comandos peligrosos. Para usar Node.js y npm, primero instálalos desde el Gestor de paquetes de cPanel.
¿Qué pasa con el .env y las carpetas de subidas?
No se pierden entre despliegues. El .env se detecta y preserva automáticamente, y puedes añadir las rutas que quieras (storage/app, uploads…) como archivos compartidos: se guardan aparte y se enlazan en cada versión nueva.