Issue Opened
Issue #21 opened: docs: Add comprehensive MkDocs documentation site
Overview
Create a modern, comprehensive documentation site using MkDocs Material theme, hosted on GitHub Pages. This should be the go-to resource for understanding what Laravel Coolify does, how the generated stack works, and why the architectural decisions make sense.
Why This Matters
- Discoverability: Good docs make the package more accessible
- Onboarding: New users can understand the full picture before diving in
- Architecture Decisions: Document why we chose app + postgres + dragonfly
- Stack Details: Explain what the generated Dockerfile actually does
Proposed Structure
docs/
├── index.md # Hero page with quick value prop
├── getting-started/
│ ├── installation.md # composer require, coolify:install
│ ├── configuration.md # .env setup, config options
│ └── first-deployment.md # coolify:provision walkthrough
├── the-stack/
│ ├── overview.md # What gets generated and why
│ ├── dockerfile.md # Multi-stage build explained
│ ├── supervisor.md # Process management (fpm, nginx, horizon, reverb)
│ ├── nginx.md # Production nginx config
│ └── php-config.md # OPcache, memory, etc.
├── architecture/
│ ├── why-coolify.md # Coolify vs other platforms
│ ├── postgres-dragonfly.md # Why this combo works so well
│ ├── horizon-queues.md # Queue architecture
│ └── reverb-websockets.md # Real-time architecture
├── commands/
│ ├── install.md # coolify:install
│ ├── provision.md # coolify:provision
│ ├── deploy.md # coolify:deploy
│ ├── status.md # coolify:status
│ └── logs.md # coolify:logs
├── dashboard/
│ ├── overview.md # What the dashboard shows
│ ├── authentication.md # Securing the dashboard
│ └── api.md # Dashboard API endpoints
├── advanced/
│ ├── customization.md # Overriding generated configs
│ ├── multi-app.md # Multiple apps in one project
│ └── ci-cd.md # GitHub Actions integration
└── reference/
├── config.md # Full config reference
└── env-vars.md # All environment variables
Theme & Features
Use MkDocs Material with modern features:
theme:
name: material
palette:
- media: "(prefers-color-scheme: light)"
scheme: default
primary: indigo
accent: indigo
toggle:
icon: material/brightness-7
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: indigo
accent: indigo
toggle:
icon: material/brightness-4
name: Switch to light mode
features:
- navigation.instant
- navigation.tracking
- navigation.tabs
- navigation.sections
- navigation.expand
- navigation.top
- content.code.copy
- content.code.annotate
- search.suggest
- search.highlight
markdown_extensions:
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- pymdownx.tabbed:
alternate_style: true
- admonition
- pymdownx.details
- attr_list
- md_in_html
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
Key Content to Include
The Stack Page
Visual diagram (mermaid) showing:
┌─────────────────────────────────────────┐
│ Coolify Server │
├─────────────────────────────────────────┤
│ ┌─────────────────────────────────┐ │
│ │ Your Laravel App │ │
│ │ ┌─────────┐ ┌────────────────┐│ │
│ │ │ Nginx │ │ PHP-FPM ││ │
│ │ └─────────┘ └────────────────┘│ │
│ │ ┌─────────┐ ┌────────────────┐│ │
│ │ │ Horizon │ │ Reverb ││ │
│ │ └─────────┘ └────────────────┘│ │
│ └─────────────────────────────────┘ │
│ ┌──────────┐ ┌──────────────────┐ │
│ │ Postgres │ │ Dragonfly │ │
│ │ (DB) │ │ (Cache/Sessions) │ │
│ └──────────┘ └──────────────────┘ │
└─────────────────────────────────────────┘
Why Postgres + Dragonfly
- PostgreSQL: Battle-tested, full-featured RDBMS
- Dragonfly: Redis-compatible but faster, lower memory
- Both managed by Coolify with automatic backups
- Connection strings auto-configured
Dockerfile Explained
Annotated walkthrough of each stage:
- Why multi-stage builds matter
- Caching strategy for faster builds
- Production optimizations
GitHub Actions Workflow
name: Deploy Docs
on:
push:
branches: [main]
paths: ['docs/**', 'mkdocs.yml']
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: pip install mkdocs-material pymdown-extensions
- run: mkdocs gh-deploy --force
Acceptance Criteria
- MkDocs Material theme with dark/light mode
- All command documentation complete
- Stack architecture explained with diagrams
- Dockerfile walkthrough with annotations
- GitHub Pages deployment working
- Search functionality working
- Mobile responsive
- Code blocks with copy button
Labels
documentation, enhancement