Guía del Instalador Web
FeedbackPulse SaaS incluye un instalador elegante basado en navegador. No se necesita línea de comandos (después de la subida inicial de archivos y composer install).
Acceder al Instalador
Navega a:
https://yourdomain.com/install
¿No puedes ver el instalador? Asegúrate de:
- Que tu servidor web apunte al directorio
public/- Que Apache
mod_rewriteesté habilitado (o que Nginx tengatry_filesconfigurado correctamente)- Que NO exista el archivo
storage/installed.lock(este bloquea el instalador después de la primera instalación)
Paso 1: Bienvenida y Licencia
La primera pantalla te da la bienvenida y solicita tu código de compra de Envato/CodeCanyon.
Dónde encontrar tu código de compra:
- Inicia sesión en CodeCanyon
- Ve a Descargas → encuentra FeedbackPulse SaaS
- Haz clic en Descargar → Certificado de licencia y código de compra
- El código de compra tiene este aspecto:
a1b2c3d4-e5f6-7890-abcd-ef1234567890
Qué hace:
- Valida tu licencia con la API de Envato
- Verifica que tienes una copia legítima
- Desbloquea el resto del instalador
Paso 2: Comprobación de Requisitos
El instalador escanea automáticamente tu servidor y verifica:
Versión de PHP
- Se requiere PHP 8.4 o superior
- Muestra tu versión actual de PHP
Dependencias del Vendor
- Comprueba que
vendor/autoload.phpexista (las dependencias de Composer deben estar instaladas o subidas)
Extensiones PHP
Se comprueban las siguientes:
pdo_mysql— Conectividad con la base de datosmbstring— Manejo de cadenasopenssl— Cifradotokenizer— Análisis de códigoxml— Procesamiento XMLctype— Validación de caracteresjson— Manejo JSONbcmath— Operaciones matemáticasfileinfo— Detección del tipo de archivocurl— Llamadas a la API
Permisos de Directorio
storage/— Debe ser escribiblebootstrap/cache/— Debe ser escribible
Visualización de Resultados
- Marcas de verificación verdes = requisito cumplido
- Cruces rojas = requisito NO cumplido (debes corregirlo antes de continuar)
Corregir comprobaciones fallidas:
# Instalar extensiones PHP faltantes (Ubuntu)
sudo apt install php8.4-mysql php8.4-mbstring php8.4-xml php8.4-bcmath php8.4-curl php8.4-gd php8.4-zip
# Corregir permisos
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache
# Reiniciar PHP
sudo systemctl restart php8.4-fpm
Paso 3: Configuración de la Base de Datos
Introduce los detalles de conexión de tu MySQL/MariaDB:
| Campo | Ejemplo | Notas |
|---|---|---|
| Host de la Base de Datos | 127.0.0.1 | Usa 127.0.0.1 en lugar de localhost para mayor fiabilidad |
| Puerto de la Base de Datos | 3306 | Puerto MySQL predeterminado |
| Nombre de la Base de Datos | feedbackpulse | ¡Debe existir previamente! |
| Usuario de la Base de Datos | feedbackpulse_user | Con todos los privilegios sobre la base de datos |
| Contraseña de la Base de Datos | your_secure_password | La contraseña del usuario |
Antes de Este Paso
Debes crear la base de datos primero:
-- Iniciar sesión en MySQL
mysql -u root -p
-- Crear la base de datos
CREATE DATABASE feedbackpulse CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Crear un usuario dedicado (recomendado)
CREATE USER 'feedbackpulse_user'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON feedbackpulse.* TO 'feedbackpulse_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Qué Ocurre al Hacer Clic en "Configurar Base de Datos"
- El instalador prueba la conexión
- Guarda tus credenciales de base de datos en el archivo
.env - Ejecuta todas las migraciones de base de datos (crea ~30 tablas)
- Siembra los datos predeterminados:
- 3 planes de suscripción predeterminados (Starter, Growth, Pro)
- Configuración predeterminada de la plataforma
- Muestra un mensaje de éxito
Nota: Los controladores de sesión y caché permanecen como
filedurante la instalación para mayor estabilidad. Se cambian automáticamente adatabaseen el paso de finalización.
Este paso puede tardar entre 10 y 30 segundos según tu servidor.
Paso 4: Cuenta de Administrador
Crea tu cuenta de superadmin:
| Campo | Ejemplo | Notas |
|---|---|---|
| Nombre Completo | Juan García | Tu nombre visible |
| Correo Electrónico | [email protected] | Usado para inicio de sesión y notificaciones |
| Contraseña | (contraseña segura) | Mínimo 8 caracteres. ¡Usa una contraseña segura! |
| Confirmar Contraseña | (debe coincidir) | Debe coincidir |
Qué Ocurre
- Crea tu cuenta de usuario con
role = superadmin - Esta es la única cuenta de superadmin creada automáticamente
- La usarás para iniciar sesión en
/loginy acceder a/admin/dashboard
Consejo de seguridad: Usa una contraseña única y segura. Puedes habilitar 2FA más tarde en Configuración.
Paso 5: Configuración de Correo Electrónico
Configura SMTP para el envío de correos transaccionales:
| Campo | Ejemplo | Notas |
|---|---|---|
| Host SMTP | smtp.gmail.com | Servidor SMTP de tu proveedor de correo |
| Puerto SMTP | 587 | 587 para TLS, 465 para SSL |
| Usuario SMTP | [email protected] | Normalmente tu dirección de correo |
| Contraseña SMTP | your_app_password | Se recomienda contraseña de aplicación |
| Cifrado | tls | TLS (recomendado) o SSL |
| Dirección de Remitente | [email protected] | La dirección "de" en los correos salientes |
| Nombre de Remitente | FeedbackPulse | El nombre "de" en los correos salientes |
Proveedores SMTP Comunes
| Proveedor | Host | Puerto | Cifrado | Notas |
|---|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | TLS | Requiere contraseña de aplicación (no la contraseña normal) |
| Mailgun | smtp.mailgun.org | 587 | TLS | Ideal para correo transaccional |
| Amazon SES | email-smtp.{region}.amazonaws.com | 587 | TLS | Económico a gran escala |
| SendGrid | smtp.sendgrid.net | 587 | TLS | Usa apikey como nombre de usuario |
| Postmark | smtp.postmarkapp.com | 587 | TLS | Mejor entregabilidad |
| Mailtrap | sandbox.smtp.mailtrap.io | 587 | TLS | ¡Solo para pruebas! |
¿No puedes configurar el correo ahora? Puedes omitir este paso y configurarlo más tarde en
Admin → Configuración → Email. La plataforma funcionará sin correo, pero funciones como invitaciones, resúmenes y restablecimiento de contraseñas no funcionarán.
Paso 6: ¡Instalación Completa!
Verás una página de éxito con:
- Base de datos configurada y migrada
- Cuenta de administrador creada
- Correo electrónico configurado
- Archivo
installed.lockcreado - Controladores de sesión y caché cambiados a
database CRON_TOKENgenerado automáticamente para cron basado en web- Aviso de alojamiento compartido (si el enlace simbólico no se pudo crear)
Instrucciones para la Tarea Cron (mostradas en la página de finalización)
La página de finalización muestra dos opciones de configuración de cron con comandos para copiar y pegar:
-
Comando CLI — para servidores VPS/dedicados:
* * * * * cd /path/to/project && php artisan schedule:run >> /dev/null 2>&1 -
URL/wget — para alojamiento compartido (usa el
CRON_TOKENgenerado automáticamente):wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"
¡Guárdalos! Copia el comando cron de la página de finalización antes de navegar a otra página. También puedes encontrar tu
CRON_TOKENen el archivo.env.
El Archivo installed.lock
El instalador crea storage/installed.lock para evitar que alguien vuelva a ejecutar el instalador. Esta es una medida de seguridad.
Para volver a ejecutar el instalador (p. ej., instalación nueva), elimina este archivo:
rm storage/installed.lockLuego visita
/installde nuevo.
Lista de Verificación Post-Instalación
Después de que el instalador se complete:
- Configura la tarea cron usando las instrucciones mostradas en la página de finalización (consulta Tareas Cron y Trabajadores de Cola)
- Inicia sesión en
https://yourdomain.com/logincon tus credenciales de superadmin - Visita
Admin → Plans— revisa y personaliza los planes de suscripción - Visita
Admin → Configuración → Payments— conecta Stripe/PayPal - Visita
Admin → Configuración → Email— envía un correo de prueba - Visita
Admin → Landing Page— personaliza tu página principal pública - Configura SSL (consulta Certificados SSL)
- Opcionalmente configura DNS con comodín (consulta Configuración de DNS con Comodín)
Próximos Pasos
- Configuración de Apache o Configuración de Nginx
- Variables de Entorno — ajusta tu
.env - Tareas Cron y Trabajadores de Cola — configura tareas automatizadas