Saltar al contenido principal

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_rewrite esté habilitado (o que Nginx tenga try_files configurado 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:

  1. Inicia sesión en CodeCanyon
  2. Ve a Descargas → encuentra FeedbackPulse SaaS
  3. Haz clic en DescargarCertificado de licencia y código de compra
  4. 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.php exista (las dependencias de Composer deben estar instaladas o subidas)

Extensiones PHP

Se comprueban las siguientes:

  • pdo_mysql — Conectividad con la base de datos
  • mbstring — Manejo de cadenas
  • openssl — Cifrado
  • tokenizer — Análisis de código
  • xml — Procesamiento XML
  • ctype — Validación de caracteres
  • json — Manejo JSON
  • bcmath — Operaciones matemáticas
  • fileinfo — Detección del tipo de archivo
  • curl — Llamadas a la API

Permisos de Directorio

  • storage/ — Debe ser escribible
  • bootstrap/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:

CampoEjemploNotas
Host de la Base de Datos127.0.0.1Usa 127.0.0.1 en lugar de localhost para mayor fiabilidad
Puerto de la Base de Datos3306Puerto MySQL predeterminado
Nombre de la Base de Datosfeedbackpulse¡Debe existir previamente!
Usuario de la Base de Datosfeedbackpulse_userCon todos los privilegios sobre la base de datos
Contraseña de la Base de Datosyour_secure_passwordLa 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"

  1. El instalador prueba la conexión
  2. Guarda tus credenciales de base de datos en el archivo .env
  3. Ejecuta todas las migraciones de base de datos (crea ~30 tablas)
  4. Siembra los datos predeterminados:
    • 3 planes de suscripción predeterminados (Starter, Growth, Pro)
    • Configuración predeterminada de la plataforma
  5. Muestra un mensaje de éxito

Nota: Los controladores de sesión y caché permanecen como file durante la instalación para mayor estabilidad. Se cambian automáticamente a database en 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:

CampoEjemploNotas
Nombre CompletoJuan GarcíaTu 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 /login y 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:

CampoEjemploNotas
Host SMTPsmtp.gmail.comServidor SMTP de tu proveedor de correo
Puerto SMTP587587 para TLS, 465 para SSL
Usuario SMTP[email protected]Normalmente tu dirección de correo
Contraseña SMTPyour_app_passwordSe recomienda contraseña de aplicación
CifradotlsTLS (recomendado) o SSL
Dirección de Remitente[email protected]La dirección "de" en los correos salientes
Nombre de RemitenteFeedbackPulseEl nombre "de" en los correos salientes

Proveedores SMTP Comunes

ProveedorHostPuertoCifradoNotas
Gmailsmtp.gmail.com587TLSRequiere contraseña de aplicación (no la contraseña normal)
Mailgunsmtp.mailgun.org587TLSIdeal para correo transaccional
Amazon SESemail-smtp.{region}.amazonaws.com587TLSEconómico a gran escala
SendGridsmtp.sendgrid.net587TLSUsa apikey como nombre de usuario
Postmarksmtp.postmarkapp.com587TLSMejor entregabilidad
Mailtrapsandbox.smtp.mailtrap.io587TLS¡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.lock creado
  • Controladores de sesión y caché cambiados a database
  • CRON_TOKEN generado 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:

  1. Comando CLI — para servidores VPS/dedicados:

    * * * * * cd /path/to/project && php artisan schedule:run >> /dev/null 2>&1
  2. URL/wget — para alojamiento compartido (usa el CRON_TOKEN generado 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_TOKEN en 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.lock

Luego visita /install de 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/login con 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