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
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:
| Variable | Descripcion | Ejemplo |
|---|---|---|
DATABASE_URL | Cadena de conexion PostgreSQL | postgresql://user:pass@localhost:5432/certexi |
NEXTCLOUD_URL | URL de su instancia Nextcloud | https://cloud.example.com |
NEXTCLOUD_CLIENT_ID | Client ID de OAuth2 | abc123... |
NEXTCLOUD_CLIENT_SECRET | Client Secret de OAuth2 | xyz789... |
JWT_SECRET | Secreto para firma JWT (32+ chars) | Generado via openssl |
NEXT_PUBLIC_APP_URL | URL publica de su aplicacion | https://app.example.com |
NEXTAUTH_SECRET | Secreto de autenticacion | Generado 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" }
}
}