coolify/.ai/core/technology-stack.md
Andras Bacsai 3f7c5fbdf9 Consolidate AI documentation into .ai/ directory
- Create .ai/ directory as single source of truth for all AI docs
- Organize by topic: core/, development/, patterns/, meta/
- Update CLAUDE.md to reference .ai/ files instead of embedding content
- Remove 18KB of duplicated Laravel Boost guidelines from CLAUDE.md
- Fix testing command descriptions (pest runs all tests, not just unit)
- Standardize version numbers (Laravel 12.4.1, PHP 8.4.7, Tailwind 4.1.4)
- Replace all .cursor/rules/*.mdc with single coolify-ai-docs.mdc reference
- Delete dev_workflow.mdc (non-Coolify Task Master content)
- Merge cursor_rules.mdc + self_improve.mdc into maintaining-docs.md
- Update .AI_INSTRUCTIONS_SYNC.md to redirect to new location

Benefits:
- Single source of truth - no more duplication
- Consistent versions across all documentation
- Better organization by topic
- Platform-agnostic .ai/ directory works for all AI tools
- Reduced CLAUDE.md from 719 to ~320 lines
- Clear cross-references between files
2025-11-18 14:58:59 +01:00

6.7 KiB

Coolify Technology Stack

Complete technology stack, dependencies, and infrastructure components.

Backend Framework

Laravel 12.4.1 (PHP Framework)

  • Purpose: Core application framework
  • Key Features:
    • Eloquent ORM for database interactions
    • Artisan CLI for development tasks
    • Queue system for background jobs
    • Event-driven architecture

PHP 8.4.7

  • Requirement: ^8.4 in composer.json
  • Features Used:
    • Typed properties and return types
    • Attributes for validation and configuration
    • Match expressions
    • Constructor property promotion

Frontend Stack

Livewire 3.5.20 (Primary Frontend Framework)

  • Purpose: Server-side rendering with reactive components
  • Location: app/Livewire/
  • Key Components:
    • Dashboard - Main interface
    • ActivityMonitor - Real-time monitoring
    • MonacoEditor - Code editor

Alpine.js (Client-Side Interactivity)

  • Purpose: Lightweight JavaScript for DOM manipulation
  • Integration: Works seamlessly with Livewire components
  • Usage: Declarative directives in Blade templates

Tailwind CSS 4.1.4 (Styling Framework)

  • Configuration: postcss.config.cjs
  • Extensions:
    • @tailwindcss/forms - Form styling
    • @tailwindcss/typography - Content typography
    • tailwind-scrollbar - Custom scrollbars

Vue.js 3.5.13 (Component Framework)

  • Purpose: Enhanced interactive components
  • Integration: Used alongside Livewire for complex UI
  • Build Tool: Vite with Vue plugin

Database & Caching

PostgreSQL 15 (Primary Database)

  • Purpose: Main application data storage
  • Features: JSONB support, advanced indexing
  • Models: app/Models/

Redis 7 (Caching & Real-time)

  • Purpose:
    • Session storage
    • Queue backend
    • Real-time data caching
    • WebSocket session management

Supported Databases (For User Applications)

  • PostgreSQL: StandalonePostgresql
  • MySQL: StandaloneMysql
  • MariaDB: StandaloneMariadb
  • MongoDB: StandaloneMongodb
  • Redis: StandaloneRedis
  • KeyDB: StandaloneKeydb
  • Dragonfly: StandaloneDragonfly
  • ClickHouse: StandaloneClickhouse

Authentication & Security

Laravel Sanctum 4.0.8

  • Purpose: API token authentication
  • Usage: Secure API access for external integrations

Laravel Fortify 1.25.4

  • Purpose: Authentication scaffolding
  • Features: Login, registration, password reset

Laravel Socialite 5.18.0

  • Purpose: OAuth provider integration
  • Providers:
    • GitHub, GitLab, Google
    • Microsoft Azure, Authentik, Discord, Clerk
    • Custom OAuth implementations

Background Processing

Laravel Horizon 5.30.3

  • Purpose: Queue monitoring and management
  • Features: Real-time queue metrics, failed job handling

Queue System

  • Backend: Redis-based queues
  • Jobs: app/Jobs/
  • Processing: Background deployment and monitoring tasks

Development Tools

Build Tools

  • Vite 6.2.6: Modern build tool and dev server
  • Laravel Vite Plugin: Laravel integration
  • PostCSS: CSS processing pipeline

Code Quality

  • Laravel Pint: PHP code style fixer
  • Rector: PHP automated refactoring
  • PHPStan: Static analysis tool

Testing Framework

  • Pest 3.8.0: Modern PHP testing framework
  • Laravel Dusk: Browser automation testing
  • PHPUnit: Unit testing foundation

External Integrations

Git Providers

  • GitHub: Repository integration and webhooks
  • GitLab: Self-hosted and cloud GitLab support
  • Bitbucket: Atlassian integration
  • Gitea: Self-hosted Git service

Cloud Storage

  • AWS S3: league/flysystem-aws-s3-v3
  • SFTP: league/flysystem-sftp-v3
  • Local Storage: File system integration

Notification Services

  • Email: resend/resend-laravel
  • Discord: Custom webhook integration
  • Slack: Webhook notifications
  • Telegram: Bot API integration
  • Pushover: Push notifications

Monitoring & Logging

  • Sentry: sentry/sentry-laravel - Error tracking
  • Laravel Ray: spatie/laravel-ray - Debug tool
  • Activity Log: spatie/laravel-activitylog

DevOps & Infrastructure

Docker & Containerization

  • Docker: Container runtime
  • Docker Compose: Multi-container orchestration
  • Docker Swarm: Container clustering (optional)

Web Servers & Proxies

  • Nginx: Primary web server
  • Traefik: Reverse proxy and load balancer
  • Caddy: Alternative reverse proxy

Process Management

  • S6 Overlay: Process supervisor
  • Supervisor: Alternative process manager

SSL/TLS

  • Let's Encrypt: Automatic SSL certificates
  • Custom Certificates: Manual SSL management

Terminal & Code Editing

XTerm.js 5.5.0

  • Purpose: Web-based terminal emulator
  • Features: SSH session management, real-time command execution
  • Addons: Fit addon for responsive terminals

Monaco Editor

  • Purpose: Code editor component
  • Features: Syntax highlighting, auto-completion
  • Integration: Environment variable editing, configuration files

API & Documentation

OpenAPI/Swagger

  • Documentation: openapi.json (373KB)
  • Generator: zircote/swagger-php
  • API Routes: routes/api.php

WebSocket Communication

  • Laravel Echo: Real-time event broadcasting
  • Pusher: WebSocket service integration
  • Soketi: Self-hosted WebSocket server

Package Management

PHP Dependencies (composer.json)

{
  "require": {
    "php": "^8.4",
    "laravel/framework": "12.4.1",
    "livewire/livewire": "^3.5.20",
    "spatie/laravel-data": "^4.13.1",
    "lorisleiva/laravel-actions": "^2.8.6"
  }
}

JavaScript Dependencies (package.json)

{
  "devDependencies": {
    "vite": "^6.2.6",
    "tailwindcss": "^4.1.4",
    "@vitejs/plugin-vue": "5.2.3"
  },
  "dependencies": {
    "@xterm/xterm": "^5.5.0",
    "ioredis": "5.6.0"
  }
}

Configuration Files

Build Configuration

  • vite.config.js: Frontend build setup
  • postcss.config.cjs: CSS processing
  • rector.php: PHP refactoring rules
  • pint.json: Code style configuration

Testing Configuration

  • phpunit.xml: Unit test configuration
  • phpunit.dusk.xml: Browser test configuration
  • tests/Pest.php: Pest testing setup

Version Requirements

Minimum Requirements

  • PHP: 8.4+
  • Node.js: 18+ (for build tools)
  • PostgreSQL: 15+
  • Redis: 7+
  • Docker: 20.10+
  • Docker Compose: 2.0+
  • Ubuntu: 22.04 LTS or 24.04 LTS
  • Memory: 2GB+ RAM
  • Storage: 20GB+ available space
  • Network: Stable internet connection for deployments