CI4 Docker Premium Starter Kit
DocumentationIntroduction
CI4 Docker Premium Starter Kit
The CI4 Docker Premium Starter Kit is a professional base system for developing and deploying CodeIgniter 4 applications, fully containerized and production-ready. Clone, configure, and run in under 10 minutes.
The kit solves the most common problems when starting a serious project:
- Docker infrastructure ready out of the box
- Functional CI4 environment with Shield, Queue and Redis pre-configured
- VIAVI Operations Panel at
/viavi/for health, queues and kit controls - Foundation for real CI/CD pipelines
- Production-ready from day one
| Component | Version | Role |
|---|---|---|
| CodeIgniter 4 | ^4.7 | MVC framework, Shield auth, Queue |
| PHP | 8.2 (FPM) | Runtime, FastCGI |
| Nginx | 1.28-alpine | Reverse proxy, static files |
| MySQL | 8.4 | Primary database |
| Redis | 7-alpine | Cache, sessions, queue backend |
| PHPStan | ^1.11 | Static analysis level 6, zero errors |
| PHPUnit | ^10.5 | Unit, bootstrap, session and DB testing |
| Sentry SDK | ^4.10 | Error capture in production |
Prerequisites
PHP and Composer are not required on the host machine — everything runs inside containers.
- Docker Desktop 4.x or Docker Engine 24.x with Compose v2
- GNU Make
- Git 2.x
Implementation guide
1. Unzip the kit
Unzip the file into your empty project folder.
2. Configure the environment
3. Start the environment
4. Verify the status
5. Quality gates
Configuration
KIT_STAGE
Controls what is served at /. Toggle from the operations panel or via Make:
| Valor | Behavior |
|---|---|
setup |
VIAVI onboarding screen (default) |
building |
VIAVI onboarding screen while you build |
launched |
Serves your application at / |
Default credentials
admin@local.test |
|
| Password | Password123! |
Usage
VIAVI Operations Panel
The kit ships with a built-in operations panel at /viavi/, always available regardless of your application's state.
| URL | Description |
|---|---|
/viavi/ |
Main panel — health, queues, kit controls |
/viavi-dashboard |
Shortcut to the operations panel |
/viavi/profile |
Update email and password |
/viavi/commands |
Makefile command reference |
/health |
Public JSON healthcheck for orchestrators |
Starting your application
- Edit
app/Views/home.phpwith your application home screen. - Define your routes in
app/Config/Routes.php. - Edit
app/Controllers/Home.phpwith your root controller logic. - Launch your app:
Routes reserved by the kit — do not overwrite: /viavi/*, /viavi-dashboard, /health, /login, /post-login, /set-organization/*
Available commands
Deployment
The kit includes deployment guides for three platforms. Select the one that best fits your project.
Railway
Ultimate Tier required
PaaS platform with native MySQL 8 and Redis 7 plugins. Environment variables are injected directly — the .env file is not used in production.
KIT_STAGE must be set in Railway's Variables panel, not in .env.
Render
Ultimate Tier required
Render does not offer MySQL natively — use PlanetScale or Railway MySQL as an external provider. Redis available as a native service.
Render free tier sleeps after 15 minutes of inactivity — use a paid plan for production.
VPS (Ubuntu 24.04)
Ultimate Tier required
Full control. The .env file persists on disk, so the KIT_STAGE switch from the VIAVI panel works correctly in production.