Skip to content

⭐ System Components

Terrence Daniels edited this page Jul 9, 2026 · 2 revisions

System Components This page provides a detailed breakdown of each major subsystem in the project. Understanding these components will help you navigate the codebase, extend the platform, and contribute effectively.

  1. Laravel Backend Key Responsibilities Routing

Controllers

Inertia responses

Database provisioning

SSL management

Persistent volume generation

Environment variable normalization

Health check configuration

Important Directories

app/Actions/Database/ app/Models/ app/Http/Controllers/ app/Traits/

  1. React 18 + Inertia Frontend Key Responsibilities Rendering UI components

Managing client‑side state

Handling user interactions

Receiving props from Laravel

Integrating with Vite

Important Directories

resources/js/Pages/ resources/js/Components/ resources/js/Hooks/

  1. StartActions (Database Provisioning) Each database engine has a dedicated StartAction class responsible for:

SSL setup

Persistent volume generation

Environment variable injection

Docker Compose generation

Start command construction

Healthcheck configuration

List of StartActions StartMysql

StartPostgresql

StartRedis

StartMariadb

StartMongodb

StartKeydb

StartDragonfly

  1. SSL Subsystem Responsibilities CA certificate generation

Database certificate generation

Mounting certs into containers

Enforcing secure transport

Important Files /data/coolify/ssl/

  1. Docker Orchestration Responsibilities Compose file generation

Resource limits

Network configuration

Log drain integration

Custom run options

Important Concepts convertDockerRunToCompose()

generateCustomDockerRunOptionsForDatabases()

  1. Persistent Volume Generator Responsibilities Creating local storage directories

Mapping volumes into containers

Supporting file‑based volumes

Trait GeneratesLocalPersistentVolumes

  1. Testing Architecture Conventions #[TestCase] at class level

#[Test] on every test method

No helpers

No closures

Deterministic tests

DI‑friendly structure

Clone this wiki locally