Instalacion e Inicio Rapido

Ponga Certexi en marcha en local o en produccion con Docker Compose, Vercel o despliegue tradicional en menos de 10 minutos.

Última actualización: 2025-02-18

Instalacion e Inicio Rapido

Certexi admite multiples estrategias de despliegue segun los requisitos de su infraestructura. Esta guia cubre todo, desde el desarrollo local hasta despliegues listos para produccion.

Prerrequisitos

Antes de instalar Certexi, asegurese de tener lo siguiente:

  • Node.js 20+ y pnpm 8+
  • PostgreSQL 14+ (15+ recomendado)
  • Docker y Docker Compose (para despliegue en contenedores)
  • Certificados SSL para HTTPS en produccion
ℹ️

Servicios Opcionales

Redis 6+ mejora el rendimiento de la cache. ClamAV proporciona analisis de virus para archivos de evidencia cargados. Sentry habilita el rastreo de errores en produccion. Todos son opcionales pero recomendados para produccion.

Vision General de Opciones de Despliegue

Loading diagram…

Inicio Rapido con Docker Compose

La forma mas rapida de poner Certexi en marcha es con Docker Compose:

git clone https://github.com/certexi/platform.git
cd platform
cp .env.production.example .env.production

Genere secretos seguros para su entorno:

openssl rand -base64 32  # JWT_SECRET
openssl rand -base64 32  # ENCRYPTION_KEY

Inicie todos los servicios:

docker-compose -f docker-compose.production.yml up -d

Esto levanta la aplicacion en el puerto 3000 con PostgreSQL, Redis y ClamAV.

Variables de Entorno

Configure las variables requeridas en .env.production:

VariableDescripcionEjemplo
DATABASE_URLCadena de conexion PostgreSQLpostgresql://user:pass@localhost:5432/certexi
NEXTCLOUD_URLURL de su instancia Nextcloudhttps://cloud.example.com
NEXTCLOUD_CLIENT_IDClient ID de OAuth2abc123...
NEXTCLOUD_CLIENT_SECRETClient Secret de OAuth2xyz789...
JWT_SECRETSecreto para firma JWT (32+ chars)Generado via openssl
NEXT_PUBLIC_APP_URLURL publica de su aplicacionhttps://app.example.com
NEXTAUTH_SECRETSecreto de autenticacionGenerado via openssl
⚠️

Seguridad

Nunca haga commit de .env.production al control de versiones. Use un gestor de secretos como AWS Secrets Manager o Azure Key Vault en entornos de produccion.

Configuracion de Base de Datos

Crear la Base de Datos

CREATE DATABASE certexi_production;
CREATE USER certexi WITH ENCRYPTED PASSWORD 'secure_password';
GRANT ALL PRIVILEGES ON DATABASE certexi_production TO certexi;

-- Enable required extensions
\c certexi_production
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pgcrypto";

Ejecutar Migraciones

export DATABASE_URL="postgresql://certexi:password@localhost:5432/certexi_production?sslmode=require"
pnpm db:push
pnpm db:seed  # Optional: seed initial data
pnpm db:verify

La base de datos incluye 15 tablas, 25 indices y 2 funciones almacenadas que cubren operaciones centrales, eventos ANPR y gestion WHMS.

Despliegue en Vercel

Para una solucion de hosting gestionado:

npm i -g vercel
vercel --prod
vercel env add DATABASE_URL production
vercel env add NEXTCLOUD_URL production
💡

Base de Datos para Vercel

Use un proveedor de PostgreSQL gestionado como Neon, Supabase o AWS RDS. Asegurese de que SSL este habilitado en la cadena de conexion con ?sslmode=require.

Verificar la Instalacion

Despues del despliegue, confirme que todo funciona correctamente:

curl https://your-domain.com/api/health

Respuesta esperada:

{
  "status": "healthy",
  "services": {
    "database": { "status": "healthy" },
    "redis": { "status": "healthy" },
    "nextcloud": { "status": "healthy" }
  }
}

Proximos Pasos