Skip to content

Installation

Guide to installing and configuring Doggy Framework.

Prerequisites

  • PHP >= 8.2
  • ext-ctype, ext-iconv
  • PostgreSQL >= 14
  • Composer >= 2.5

Directory Structure

my-app/
├── Caddyfile              # FrankenPHP config (Mercure Hub, compression, cache)
├── config/
│   ├── bundles.php
│   ├── packages/          # 31 bundle config files
│   └── services.yaml
├── src/
│   ├── Annotation/        # Ef.php, EfGroup.php
│   ├── Entity/            # Organization, Platform, Security, Storage, System, Traits
│   ├── Controller/        # Admin, Api, Security
│   ├── Service/           # AI, Storage, Security, Task, Platform, etc.
│   └── ...
├── templates/             # 143 Twig templates
└── public/                # Entry point

Installing Dependencies

PostgreSQL

bash
# macOS
brew install postgresql@14
brew services start postgresql@14

# Ubuntu/Debian
sudo apt install postgresql-14
sudo systemctl start postgresql

Create the database:

bash
createdb app

Mercure Hub

The Mercure Hub is built into FrankenPHP and configured via the Caddyfile — no separate installation needed. See Mercure Setup.

Starting the Application

bash
# Development
symfony serve

# Production (FrankenPHP Worker mode)
cd my-app && php -d variables_order=EGPCS bin/runtime -vvv

FrankenPHP reads Caddyfile config automatically and listens on http://localhost:8000.

Initialize Database

bash
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
php bin/console doctrine:fixtures:load

Initialize Base Data

bash
# Initialize admin accounts (three officers)
php bin/console app:init-officers

# Generate static menu
php bin/console app:ef:init-admin-menu

Default Accounts

RoleUsernameInitial Password
System Adminadminadmin123
Security Officersecuritysecurity123
Auditorauditorauditor123

⚠️ Change all default passwords in production.

Access

Next Steps

Open Source under MIT | Copyright © 2026 Doggy