CI4 Docker Premium Starter Kit

Documentación

Introducción

CI4 Docker Premium Starter Kit

El CI4 Docker Premium Starter Kit es un entorno base profesional para desarrollar y desplegar aplicaciones CodeIgniter 4 completamente contenerizadas y listas para producción. Clona, configura y ejecuta en menos de 10 minutos.

El kit resuelve de raíz los problemas más comunes al arrancar un proyecto serio:

  • Infraestructura Docker lista desde el primer arranque
  • Entorno CI4 funcional con Shield, Queue y Redis preconfigurados
  • Panel de operaciones VIAVI en /viavi/ para health, queues y controles del kit
  • Base sólida para pipelines CI/CD reales
  • Production-ready desde el día uno
Componente Versión Rol
CodeIgniter 4 ^4.7 Framework MVC, Shield auth, Queue
PHP 8.2 (FPM) Runtime, FastCGI
Nginx 1.28-alpine Reverse proxy, archivos estáticos
MySQL 8.4 Base de datos principal
Redis 7-alpine Cache, sesiones, cola
PHPStan ^1.11 Análisis estático nivel 6
PHPUnit ^10.5 Tests unitarios y de integración
Sentry SDK ^4.10 Captura de errores en producción

Requisitos previos

PHP y Composer no son necesarios en tu máquina local — todo corre dentro de contenedores.

  • Docker Desktop 4.x o Docker Engine 24.x con Compose v2
  • GNU Make
  • Git 2.x

Guía de implementación

1. Descomprime el kit

Descomprime el archivo en tu carpeta de proyecto vacía.

2. Configura el entorno

$ cp .env.example .env
$ # Edita .env con tus valores locales

3. Inicia el entorno

$ make setup
# Ejecuta: build + up + migrate + seed + healthcheck

4. Verifica el estado

$ curl http://localhost:8080/health
// Respuesta esperada
{
  "status": "ok",
  "database": { "status": "ok" },
  "redis": { "status": "ok" }
}

5. Quality gates

$ make stan # PHPStan nivel 6 — sin errores
$ make rector # Rector dry-run — sin cambios
$ make test # PHPUnit — todos los suites deben pasar

Configuración

KIT_STAGE

Controla qué se sirve en /. Puedes cambiarlo desde el panel de operaciones o con Make:

Valor Comportamiento
setup Pantalla de onboarding VIAVI (default)
building Pantalla de onboarding mientras construyes
launched Sirve tu aplicación en /
$ make launch # KIT_STAGE=launched
$ make stage-building # KIT_STAGE=building
$ make stage-setup # KIT_STAGE=setup

Credenciales por defecto

Cambia estas credenciales inmediatamente después del primer login.
Email admin@local.test
Password Password123!

Uso

Panel de operaciones VIAVI

El kit incluye un panel de operaciones en /viavi/, siempre disponible independientemente del estado de tu aplicación.

URL Descripción
/viavi/ Panel principal — health, queues, controles
/viavi-dashboard Acceso directo al panel
/viavi/profile Cambiar email y contraseña
/viavi/commands Referencia de comandos Make
/health Healthcheck público en JSON

Arrancar tu aplicación

  1. Edita app/Views/home.php con tu pantalla principal.
  2. Define tus rutas en app/Config/Routes.php.
  3. Edita app/Controllers/Home.php con tu lógica.
  4. Activa tu app:
$ make launch

Rutas reservadas por el kit — no las sobreescribas: /viavi/*, /viavi-dashboard, /health, /login, /post-login, /set-organization/*

Comandos disponibles

$ make setup # Build, up, migrate, seed, healthcheck
$ make test # PHPUnit — todos los suites
$ make stan # PHPStan nivel 6
$ make rector # Rector dry-run
$ make migrate # Migraciones pendientes
$ make seed # Ejecutar seeders
$ make launch # KIT_STAGE=launched
$ make deploy # Deploy (ver scripts/deploy.sh)

Despliegue

El kit incluye guías de despliegue para tres plataformas. Selecciona la que mejor se adapte a tu proyecto.

Railway

Ultimate Tier requerido

Plataforma PaaS con plugins de MySQL 8 y Redis 7 nativos. Las variables de entorno se inyectan directamente — el archivo .env no se usa en producción.

$ railway login
$ railway link
$ railway run php spark migrate --all

KIT_STAGE debe configurarse en el panel de variables de Railway, no en .env.

Render

Ultimate Tier requerido

Render no ofrece MySQL nativo — usa PlanetScale o Railway MySQL como proveedor externo. Redis disponible como servicio nativo.

El tier gratuito de Render duerme tras 15 minutos de inactividad — usa un plan de pago para producción.

VPS (Ubuntu 24.04)

Ultimate Tier requerido

Control total. El archivo .env persiste en disco, por lo que el switch de KIT_STAGE desde el panel VIAVI funciona correctamente en producción.

$ ./scripts/deploy.sh v1.0.0
# backup → pull → migrate → healthcheck

FAQ

Conocimiento básico es suficiente. El kit incluye documentación clara y scripts que hacen el trabajo pesado. Con make setup tienes el entorno corriendo en minutos.

Sí. Cualquier sistema con Docker Desktop instalado puede correr este kit sin modificaciones.

Sí, con excepciones. Las rutas reservadas del kit (/viavi/*, /health, /login) no deben sobreescribirse. Todo lo demás es tuyo.

No. El panel requiere autenticación. Solo usuarios con credenciales válidas pueden acceder a /viavi/.

Sí. La licencia permite uso en proyectos propios y de clientes. Una licencia por proyecto.

Recibirás notificaciones por email y podrás descargar la nueva versión desde tu panel de licencias en VIAVI.