Saltar al contenido principal

Instalación

Esta guía cubre la instalación manual de Suricatavel con control completo sobre cada componente.

Para instalación rápida automatizada, consulta la Guía de Inicio Rápido.

Paso 1: Instalar PostgreSQL 18 y TimescaleDB

Sección titulada «Paso 1: Instalar PostgreSQL 18 y TimescaleDB»
  1. Añadir repositorios

    Ventana de terminal
    # Añadir repositorio de PostgreSQL
    apt-get install -y gnupg2 wget lsb-release
    mkdir -p /usr/share/keyrings
    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
    # Añadir repositorio de TimescaleDB
    wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /usr/share/keyrings/timescaledb-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/timescaledb-archive-keyring.gpg] https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/timescaledb.list
  2. Instalar paquetes

    Ventana de terminal
    apt-get update
    apt-get install -y postgresql-18 postgresql-client-18 timescaledb-2-postgresql-18
    # Asegurar que el clúster PostgreSQL 18 existe (opcional si ya fue creado por la instalación)
    if ! pg_lsclusters | grep -q "18 main"; then
    pg_createcluster 18 main --start
    fi
    # Optimizar configuración de PostgreSQL
    # --quiet --yes ejecuta de forma no interactiva con la configuración recomendada
    timescaledb-tune --quiet --yes
    systemctl restart postgresql
  3. Crear Base de Datos

    Ventana de terminal
    # Crear base de datos y usuario
    sudo -u postgres psql -c "CREATE USER suricatavel WITH PASSWORD 'tu-contraseña-segura';"
    sudo -u postgres psql -c "CREATE DATABASE suricataveldb OWNER suricatavel;"
Ventana de terminal
# Añadir repositorio PPA de Ondřej Surý
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
add-apt-repository ppa:ondrej/php -y
apt update
# Instalar PHP 8.4 y extensiones
apt install -y php8.4-cli \
php8.4-pgsql php8.4-pdo \
php8.4-mbstring php8.4-xml php8.4-curl \
php8.4-zip php8.4-bcmath php8.4-intl \
php8.4-redis php8.4-opcache
# Opcional: Extensión de Kafka (solo si usas transporte Kafka)
apt install -y php8.4-rdkafka

Verificar instalación de PHP:

Ventana de terminal
php -v
php -m | grep -E "pdo|pgsql|pcntl|posix"
Ventana de terminal
apt install -y nginx

Configurar Nginx para Suricatavel:

Crear /etc/nginx/sites-available/suricatavel (o conf.d/suricatavel.conf en RHEL):

server {
listen 80;
listen [::]:80;
server_name tu-dominio.com;
root /var/opt/suricatavel/public;
index index.php;
error_page 404 /index.php;
# Aplicación principal mediante Octane (Swoole)
location / {
proxy_pass http://127.0.0.1:8089;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# Reverb WebSocket server
location /apps/ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ /\.(?!well-known).* {
deny all;
}
}

Habilitar el sitio:

Ventana de terminal
ln -s /etc/nginx/sites-available/suricatavel /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
Ventana de terminal
apt install -y supervisor
systemctl enable --now supervisor

Paso 5: Configurar repositorio de Suricatavel

Sección titulada «Paso 5: Configurar repositorio de Suricatavel»
Ventana de terminal
# Importar clave GPG
curl -fsSL https://suricatavel.org/suricatavel.gpg | gpg --dearmor -o /etc/apt/keyrings/suricatavel.gpg
# Añadir repositorio
echo "deb [signed-by=/etc/apt/keyrings/suricatavel.gpg] https://repository.suricatavel.org stable main" | tee /etc/apt/sources.list.d/suricatavel.list > /dev/null
# Actualizar caché de paquetes
apt update
Ventana de terminal
apt install -y suricatavel

Lo que hace el paquete:

  1. Crea usuario del sistema suricatavel (sin shell de login)
  2. Instala archivos de aplicación en /var/opt/suricatavel
  3. Crea directorios de trabajo con permisos adecuados
  4. Genera APP_KEY para Laravel
  5. Ejecuta migraciones de base de datos (si la BD está accesible)
  6. Configura workers de Supervisor
  7. Construye cachés de Laravel

Edita el archivo de entorno:

Ventana de terminal
nano /var/opt/suricatavel/.env

Configuración esencial:

Ventana de terminal
APP_NAME=Suricatavel
APP_ENV=production
APP_DEBUG=false
APP_URL=http://tu-dominio.com
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=suricatavel
DB_USERNAME=suricatavel
DB_PASSWORD=tu-contraseña-segura
# Opcional: Configuración de Kafka (Alto rendimiento)
#KAFKA_BROKERS=localhost:9092
#KAFKA_CONSUMER_GROUP_ID=suricatavel
# Opcional: Configuración HTTP (Setup simple)
#SURICATAVEL_AGENT_TRANSPORT=http
#SURICATAVEL_AGENT_HTTP_ENDPOINT=http://tu-dominio.com/api/v1/events
#SURICATAVEL_AGENT_HTTP_TOKEN=tu-token-agente
# Opcional: Redis para caché
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
# Configuración de correo
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=[email protected]
MAIL_PASSWORD=tu-contraseña-smtp
MAIL_ENCRYPTION=tls

Si la base de datos no estaba accesible durante la instalación, ejecuta las migraciones manualmente:

Ventana de terminal
suricatavel deploy --migrate

Reconstruye las cachés después de cambios de configuración:

Ventana de terminal
suricatavel maintenance cache

El paquete suricatavel configura automáticamente Supervisor. Verifica el estado:

Ventana de terminal
suricatavel status

Deberías ver procesos como web, worker, scheduler en estado RUNNING. Si Kafka está habilitado, también deberías ver kafka.

Inicializa la aplicación:

Ventana de terminal
suricatavel boot

O en modo no interactivo (crea usuario admin predeterminado):

Ventana de terminal
suricatavel boot -s

Credenciales predeterminadas:

Ventana de terminal
# Verificar estado del sistema
suricatavel status
# Verificar versión de la aplicación
suricatavel version

Instalar Certbot:

Ventana de terminal
apt install -y certbot python3-certbot-nginx

Obtener certificado SSL:

Ventana de terminal
certbot --nginx -d tu-dominio.com
Ventana de terminal
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Ventana de terminal
chown -R suricatavel:suricatavel /var/opt/suricatavel
chmod -R 755 /var/opt/suricatavel
chmod -R 775 /var/opt/suricatavel/storage
chmod -R 775 /var/opt/suricatavel/bootstrap/cache

Asegurar en /var/opt/suricatavel/.env:

Ventana de terminal
APP_DEBUG=false
APP_ENV=production

Para actualizaciones sin tiempo de inactividad con rollback automático, usa el CLI:

Ventana de terminal
suricatavel update

El comando de actualización gestionará backup, modo mantenimiento, actualización de paquetes y migraciones automáticamente.

Para actualizaciones manuales vía gestor de paquetes:

Ventana de terminal
apt update
apt upgrade suricatavel

Ver la Guía de Inicio Rápido para problemas comunes.

Para preguntas o problemas, consulta las FAQ o contribuye.