-
Notifications
You must be signed in to change notification settings - Fork 0
⭐ Architecture Overview
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)