Skip to content

⭐ Architecture Overview

Terrence Daniels edited this page Jul 10, 2026 · 3 revisions

Architecture Overview This project is a full‑stack platform built on top of Laravel, React 18, Docker, and a custom provisioning system for multiple database engines. It extends and restructures the Coolify architecture to provide clearer separation of concerns, improved maintainability, and a modern frontend powered by React.

This document provides a high‑level overview of the system architecture, major subsystems, and the core design principles behind the project.

Core Architectural Principles Modular provisioning system Each database engine (MySQL, PostgreSQL, Redis, etc.) is provisioned through a dedicated StartAction class with predictable structure and behavior.

Declarative Docker orchestration Docker Compose files are generated dynamically based on database configuration, SSL settings, persistent volumes, and custom runtime options.

Modern frontend architecture React 18 + Inertia.js replaces Livewire, providing a predictable, component‑driven UI with client‑side rendering and server‑driven data.

Strict testing conventions All tests follow deterministic patterns using #[TestCase] and #[Test], with no helpers, no closures, and DI‑friendly structure.

Consistent environment variable strategy Runtime environment variables are normalized and injected into containers with predictable naming and fallback behavior.

High‑Level System Diagram

flowchart TD A[Laravel Backend] --> B[StartActions] B --> C[Docker Compose Generator] C --> D[Container Provisioning] D --> E[Running Database Containers]

A --> F[React 18 + Inertia Frontend] F --> A

A --> G[SSL Subsystem] G --> C

A --> H[Persistent Volume Generator] H --> C Major Subsystems

Backend (Laravel) API endpoints Inertia controllers

Database provisioning logic

SSL certificate generation

Persistent volume management

Healthcheck configuration

Environment variable builder

Frontend (React 18 + Inertia.js) Component‑driven UI Client‑side rendering

Server‑driven props

React hooks for state

Vite build pipeline

Database Provisioning System Each database engine has a dedicated StartAction class: StartMysql

StartPostgresql

StartRedis

StartMariadb

StartMongodb

StartKeydb

StartDragonfly

These classes generate:

Docker Compose

SSL configuration

Persistent volumes

Custom runtime options

Healthchecks

Start commands

SSL Subsystem CA certificate generation Per‑database certificate generation

Automatic mounting into containers

Secure transport enforcement

Docker Orchestration Dynamic Compose generation Custom run options

Network configuration

Log drain integration

Resource limits (CPU, memory, swap)

Commit History Note Early commits were made during the initial migration phase and may not include detailed messages. Recent commits follow a structured, descriptive commit message format to reflect ongoing modernization and engineering discipline.

Clone this wiki locally