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»-
Añadir repositorios
Ventana de terminal # Añadir repositorio de PostgreSQLapt-get install -y gnupg2 wget lsb-releasemkdir -p /usr/share/keyringswget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-archive-keyring.gpgecho "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 TimescaleDBwget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /usr/share/keyrings/timescaledb-archive-keyring.gpgecho "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 -
Instalar paquetes
Ventana de terminal apt-get updateapt-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"; thenpg_createcluster 18 main --startfi# Optimizar configuración de PostgreSQL# --quiet --yes ejecuta de forma no interactiva con la configuración recomendadatimescaledb-tune --quiet --yessystemctl restart postgresql -
Crear Base de Datos
Ventana de terminal # Crear base de datos y usuariosudo -u postgres psql -c "CREATE USER suricatavel WITH PASSWORD 'tu-contraseña-segura';"sudo -u postgres psql -c "CREATE DATABASE suricataveldb OWNER suricatavel;"
-
Añadir repositorios
Ventana de terminal # Añadir repositorio de PostgreSQLdnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm# Deshabilitar módulo postgresql nativodnf -qy module disable postgresql# Añadir repositorio de TimescaleDB (usando el/9 para compatibilidad)tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOF[timescale_timescaledb]name=TimescaleDBbaseurl=https://packagecloud.io/timescale/timescaledb/el/9/\$basearchenabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkeyEOF -
Instalar y Configurar
Ventana de terminal # Instalar PostgreSQL 18 y TimescaleDBdnf install -y postgresql18-server postgresql18 timescaledb-2-postgresql-18# Inicializar base de datos/usr/pgsql-18/bin/postgresql-18-setup initdb# Iniciar y habilitar servicio para que timescaledb-tune pueda conectarsystemctl enable --now postgresql-18# Optimizar configuración de PostgreSQL# --quiet --yes ejecuta de forma no interactiva con la configuración recomendadatimescaledb-tune --quiet --yes# Reiniciar para aplicar cambiossystemctl restart postgresql-18 -
Crear Base de Datos
Ventana de terminal # Crear base de datos y usuariosudo -u postgres psql -c "CREATE USER suricatavel WITH PASSWORD 'tu-contraseña-segura';"sudo -u postgres psql -c "CREATE DATABASE suricataveldb OWNER suricatavel;"
Paso 2: Instalar PHP (8.4 u 8.5)
Sección titulada «Paso 2: Instalar PHP (8.4 u 8.5)»# 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# Añadir repositorio DPA de Ondřej Surý apt install -y lsb-release ca-certificates apt-transport-https software-properties-common curlcurl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' 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# Añadir repositorio Remi dnf install -y epel-release dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# Habilitar PHP 8.4 dnf module reset php -y dnf module enable php:remi-8.4 -y
# Instalar PHP 8.4 y extensiones dnf install -y php php-cli \ php-pgsql php-pdo \ php-mbstring php-xml php-curl \ php-zip php-bcmath php-intl \ php-redis php-opcache php-process \ php-pecl-swoole
# Opcional: Extensión de Kafka (solo si usas transporte Kafka) dnf install -y php-pecl-rdkafkaVerificar instalación de PHP:
php -vphp -m | grep -E "pdo|pgsql|pcntl|posix"Paso 3: Instalar Nginx
Sección titulada «Paso 3: Instalar Nginx» apt install -y nginx dnf install -y nginxConfigurar 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:
ln -s /etc/nginx/sites-available/suricatavel /etc/nginx/sites-enabled/ nginx -t systemctl restart nginx nginx -t systemctl restart nginxPaso 4: Instalar Supervisor
Sección titulada «Paso 4: Instalar Supervisor» apt install -y supervisor systemctl enable --now supervisor dnf install -y supervisor systemctl enable --now supervisordPaso 5: Configurar repositorio de Suricatavel
Sección titulada «Paso 5: Configurar repositorio de Suricatavel»# Importar clave GPGcurl -fsSL https://suricatavel.org/suricatavel.gpg | gpg --dearmor -o /etc/apt/keyrings/suricatavel.gpg
# Añadir repositorioecho "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# Crear archivo de repositorio tee /etc/yum.repos.d/suricatavel.repo > /dev/null << 'EOF'[suricatavel]name=Repositorio Suricatavelbaseurl=https://repository.suricatavel.org/rpm/stable/enabled=1gpgcheck=1gpgkey=https://suricatavel.org/suricatavel.gpgEOF
# Actualizar caché dnf makecachePaso 6: Instalar paquete Suricatavel
Sección titulada «Paso 6: Instalar paquete Suricatavel» apt install -y suricatavel dnf install -y suricatavelLo que hace el paquete:
- Crea usuario del sistema
suricatavel(sin shell de login) - Instala archivos de aplicación en
/var/opt/suricatavel - Crea directorios de trabajo con permisos adecuados
- Genera
APP_KEYpara Laravel - Ejecuta migraciones de base de datos (si la BD está accesible)
- Configura workers de Supervisor
- Construye cachés de Laravel
Paso 7: Configurar la aplicación
Sección titulada «Paso 7: Configurar la aplicación»Edita el archivo de entorno:
nano /var/opt/suricatavel/.envConfiguración esencial:
APP_NAME=SuricatavelAPP_ENV=productionAPP_DEBUG=falseAPP_URL=http://tu-dominio.com
DB_CONNECTION=pgsqlDB_HOST=127.0.0.1DB_PORT=5432DB_DATABASE=suricatavelDB_USERNAME=suricatavelDB_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.1REDIS_PASSWORD=nullREDIS_PORT=6379
# Configuración de correoMAIL_MAILER=smtpMAIL_HOST=smtp.example.comMAIL_PORT=587MAIL_PASSWORD=tu-contraseña-smtpMAIL_ENCRYPTION=tlsSi la base de datos no estaba accesible durante la instalación, ejecuta las migraciones manualmente:
suricatavel deploy --migrateReconstruye las cachés después de cambios de configuración:
suricatavel maintenance cachePaso 8: Verificar workers
Sección titulada «Paso 8: Verificar workers»El paquete suricatavel configura automáticamente Supervisor. Verifica el estado:
suricatavel statusDeberías ver procesos como web, worker, scheduler en estado RUNNING. Si Kafka está habilitado, también deberías ver kafka.
Post-instalación
Sección titulada «Post-instalación»Inicializar Suricatavel
Sección titulada «Inicializar Suricatavel»Inicializa la aplicación:
suricatavel bootO en modo no interactivo (crea usuario admin predeterminado):
suricatavel boot -sCredenciales predeterminadas:
- Email:
[email protected] - Contraseña:
123456
Verificar instalación
Sección titulada «Verificar instalación»# Verificar estado del sistemasuricatavel status
# Verificar versión de la aplicaciónsuricatavel versionSeguridad
Sección titulada «Seguridad»1. Habilitar HTTPS
Sección titulada «1. Habilitar HTTPS»Instalar Certbot:
apt install -y certbot python3-certbot-nginx dnf install -y certbot python3-certbot-nginxObtener certificado SSL:
certbot --nginx -d tu-dominio.com2. Configurar firewall
Sección titulada «2. Configurar firewall» ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw enable firewall-cmd --permanent --add-service=ssh firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload3. Establecer permisos adecuados
Sección titulada «3. Establecer permisos adecuados» 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/cache4. Deshabilitar modo debug
Sección titulada «4. Deshabilitar modo debug»Asegurar en /var/opt/suricatavel/.env:
APP_DEBUG=falseAPP_ENV=productionActualizar Suricatavel
Sección titulada «Actualizar Suricatavel»Para actualizaciones sin tiempo de inactividad con rollback automático, usa el CLI:
suricatavel updateEl comando de actualización gestionará backup, modo mantenimiento, actualización de paquetes y migraciones automáticamente.
Para actualizaciones manuales vía gestor de paquetes:
apt updateapt upgrade suricataveldnf upgrade suricatavelSolución de problemas
Sección titulada «Solución de problemas»Ver la Guía de Inicio Rápido para problemas comunes.
Próximos pasos
Sección titulada «Próximos pasos»- Configurar agentes para enviar eventos
- Desplegar reglas IDS para detección
- Configurar notificaciones para alertas
- Configurar feeds para inteligencia de amenazas
- Revisar opciones de configuración
Para preguntas o problemas, consulta las FAQ o contribuye.