Saltar al contenido principal

Guía de Instalación

Esta es la guía de instalación completa y paso a paso de FeedbackPulse SaaS. Sigue cada paso con cuidado.


Lista de Verificación Pre-Instalación

Antes de comenzar, asegúrate de tener:

  • Un servidor que cumpla todos los requisitos
  • Un nombre de dominio apuntando a la dirección IP de tu servidor
  • Acceso SSH a tu servidor (o FTP para subir archivos)
  • Una base de datos MySQL/MariaDB y credenciales
  • Una cuenta de correo SMTP (Gmail, Mailgun, Amazon SES, etc.)
  • Tu código de compra de Envato (del pedido de CodeCanyon)

Paso 1: Subir los Archivos a Tu Servidor

Opción A: Usando SSH (Recomendado)

# Conectarse al servidor
ssh user@your-server-ip

# Navegar al directorio web
cd /var/www

# Subir y descomprimir el archivo ZIP
# (Sube el zip via SCP, SFTP, o wget desde un enlace temporal)
unzip feedbackpulse-saas.zip -d feedbackpulse-saas
cd feedbackpulse-saas

Opción B: Usando FTP/SFTP

  1. Conéctate a tu servidor usando FileZilla, WinSCP o similar
  2. Navega a tu directorio web (generalmente /var/www/ o /home/user/public_html/)
  3. Sube la carpeta completa feedbackpulse-saas extraída
  4. Asegúrate de que el subdirectorio public/ sea accesible

Opción C: Usando el Administrador de Archivos de cPanel

  1. Inicia sesión en cPanel
  2. Abre el Administrador de Archivos → navega a public_html (o un subdirectorio)
  3. Sube el archivo ZIP
  4. Extráelo en el lugar
  5. Importante: Necesitarás establecer la raíz del documento en la carpeta public/ (consulta Configuración de Apache)

Paso 2: Establecer Permisos de Archivos

cd /var/www/feedbackpulse-saas

# Establecer propietario (reemplaza www-data con tu usuario del servidor web)
# Apache: www-data | Nginx: www-data o nginx
sudo chown -R www-data:www-data .

# Establecer permisos de directorio
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;

# Hacer que storage y cache sean escribibles
sudo chmod -R 775 storage bootstrap/cache

Paso 3: Configurar Tu Servidor Web

Tu servidor web debe apuntar al directorio public/ dentro del proyecto — NO a la raíz del proyecto. Este es un requisito de seguridad crítico.

Elige tu servidor web:

Versión rápida:

Apache:

DocumentRoot /var/www/feedbackpulse-saas/public

Nginx:

root /var/www/feedbackpulse-saas/public;

Después de configurar, reinicia tu servidor web:

# Apache
sudo systemctl restart apache2

# Nginx
sudo systemctl restart nginx

Paso 4: Enlace Simbólico de Almacenamiento (Automático)

El instalador web intenta automáticamente crear el enlace simbólico de almacenamiento durante el paso final. No necesitas ejecutar ningún comando.

  • VPS/Dedicado: El enlace simbólico se crea automáticamente. No se requiere ninguna acción.
  • Alojamiento compartido: Si los enlaces simbólicos están deshabilitados en tu host, FeedbackPulse utiliza un mecanismo de respaldo PHP integrado para servir los archivos subidos (logos, imágenes). Todo funciona — no se requiere ninguna acción.

La página de finalización del instalador te indicará si el enlace simbólico se creó o si el mecanismo de respaldo está activo.


Paso 5: Ejecutar el Instalador Web

Abre tu navegador y navega a:

https://yourdomain.com/install

El instalador te guiará a través de 5 pasos. Consulta la Guía del Instalador Web para capturas de pantalla detalladas y explicaciones.

Resumen rápido:

Paso 1: Verificación de Licencia

  • Introduce tu código de compra de Envato/CodeCanyon
  • Esto valida tu licencia con la API de Envato
  • Si no usas Envato, puede haber una opción para omitir este paso

Paso 2: Comprobación de Requisitos

  • El instalador comprueba automáticamente:
    • Dependencias del vendor (vendor/autoload.php existe)
    • Versión de PHP (8.2+)
    • Extensiones de PHP requeridas
    • Permisos de directorio (storage, bootstrap/cache)
    • Entorno de alojamiento (detecta alojamiento compartido, muestra información de compatibilidad)
  • Corrige cualquier elemento fallido antes de continuar

Paso 3: Configuración de la Base de Datos

  • Introduce tus credenciales de base de datos:
    • Host: 127.0.0.1 (o localhost)
    • Puerto: 3306
    • Nombre de la base de datos: feedbackpulse (¡créala primero!)
    • Usuario: tu usuario de base de datos
    • Contraseña: tu contraseña de base de datos
  • El instalador ejecutará todas las migraciones y sembrará los datos predeterminados

Crea la base de datos primero:

CREATE DATABASE feedbackpulse CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Paso 4: Cuenta de Administrador

  • Crea tu cuenta de superadmin:
    • Nombre: Tu nombre
    • Correo electrónico: [email protected]
    • Contraseña: Una contraseña segura (mín. 8 caracteres)
  • Esta es la cuenta que usarás para gestionar toda la plataforma

Paso 5: Configuración de Correo Electrónico

  • Introduce los datos de tu SMTP:
    • Host: p. ej., smtp.gmail.com
    • Puerto: 587 (TLS) o 465 (SSL)
    • Usuario: tu nombre de usuario SMTP
    • Contraseña: tu contraseña SMTP o contraseña de aplicación
    • Cifrado: TLS (recomendado)
    • Dirección de remitente: [email protected]
  • Puedes omitir esto y configurarlo más tarde en la Configuración de Administración

Finalización

  • Cambia los controladores de sesión y caché a database para producción
  • Genera un CRON_TOKEN para el endpoint de cron basado en web
  • Crea un archivo storage/installed.lock (evita volver a ejecutar el instalador)
  • Muestra una página de éxito con instrucciones para configurar la tarea cron (opciones CLI y URL) y los próximos pasos

Paso 6: Configurar la Tarea Cron

FeedbackPulse necesita una tarea cron para ejecutar tareas programadas. Esto es esencial para:

  • Enviar resúmenes por correo electrónico (diarios/semanales)
  • Procesar expiraciones de períodos de prueba
  • Aplicar políticas de retención de datos
  • Enviar alertas de uso
  • Ejecutar detección de anomalías con IA
  • Enviar informes programados

Opción 1 — Comando CLI (VPS / Dedicado):

crontab -e

Agrega esta línea:

* * * * * cd /var/www/feedbackpulse-saas && php artisan schedule:run >> /dev/null 2>&1

Opción 2 — URL/wget (Alojamiento Compartido):

Si tu panel de alojamiento solo admite cron basado en URL, usa el endpoint de cron web (el CRON_TOKEN se genera automáticamente durante la instalación y se muestra en la página de finalización):

wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"

Consejo: La página de finalización del instalador muestra ambas opciones con la ruta real de tu servidor y el token ya completados. ¡Cópialos desde allí!

Para más detalles, consulta Tareas Cron y Trabajadores de Cola.


Paso 7: Configurar SSL (HTTPS)

HTTPS está muy recomendado por seguridad, especialmente dado que FeedbackPulse maneja datos de autenticación y pago.

Usando Let's Encrypt (Gratuito)

# Instalar Certbot
sudo apt install certbot python3-certbot-nginx # para Nginx
# O
sudo apt install certbot python3-certbot-apache # para Apache

# Obtener el certificado
sudo certbot --nginx -d yourdomain.com # para Nginx
# O
sudo certbot --apache -d yourdomain.com # para Apache

Certbot configurará automáticamente tu servidor web para HTTPS y establecerá la renovación automática.

Para más detalles, consulta Certificados SSL.


Paso 8: Verificar la Instalación

Revisa esta lista de verificación:

VerificaciónCómoResultado Esperado
La página de inicio cargaVisita https://yourdomain.comVer la página de inicio
El inicio de sesión funcionaVisita https://yourdomain.com/loginIniciar sesión con credenciales del superadmin
Panel de administraciónVisita https://yourdomain.com/admin/dashboardVer el panel de administración
Enlace de almacenamientoVisita https://yourdomain.com/storage/Sin error 404
Comprobación de saludVisita https://yourdomain.com/upVer texto "OK"
Cron ejecutándoseComprueba Admin → ConfiguraciónSin advertencias de cron
El correo funcionaAdmin → Configuración → Email → Enviar PruebaRecibir correo de prueba

Pasos Post-Instalación

Una vez completada la instalación:

  1. Revisar los planes de suscripciónAdmin → Plans (editar precios, límites, funcionalidades)
  2. Configurar pasarelas de pagoAdmin → Configuración → Payments (claves de API de Stripe/PayPal)
  3. Personalizar la página de inicioAdmin → Landing Page
  4. Probar el envío de correoAdmin → Configuración → Email → Enviar Correo de Prueba
  5. Configurar DNS con comodín (opcional) — para subdominios de inquilino. Consulta Configuración de DNS con Comodín.
  6. Crear tu primer inquilino — Regístrate en /register en una ventana de incógnito

Solución de Problemas de Instalación

ProblemaSolución
Página en blancoComprueba storage/logs/laravel.log en busca de errores. Generalmente es un problema de permisos.
Error 500 del servidorActiva el modo de depuración temporalmente: establece APP_DEBUG=true en .env y luego revisa el error.
"Class not found"Asegúrate de que el directorio vendor/ esté presente e intacto. Vuelve a subirlo desde el paquete descargado si es necesario.
Conexión a la base de datos rechazadaVerifica las credenciales, asegúrate de que MySQL esté funcionando, comprueba si localhost vs 127.0.0.1 hace diferencia.
El instalador no cargaAsegúrate de que la raíz web apunte al directorio public/.
CSS/JS no cargaLimpia la caché del navegador. Si faltan imágenes, el mecanismo de respaldo de almacenamiento lo maneja automáticamente en alojamiento compartido. En VPS, visita /update como superadmin para volver a crear el enlace simbólico.
Permiso denegadoEjecuta de nuevo los comandos chown y chmod del Paso 2.

Para más información, consulta Solución de Problemas.


Próximos Pasos