Skip to content

安装

本指南将帮助你完成 Doggy Framework 的安装和初始化配置。

前置条件

  • PHP >= 8.2
  • ext-ctype, ext-iconv
  • PostgreSQL >= 14
  • Composer >= 2.5
  • Docker 和 Docker Compose(必需,提供数据库和 Mercure Hub)

目录结构

my-app/
├── Caddyfile              # FrankenPHP 配置(含 Mercure Hub、压缩、缓存)
├── docker-compose.yml     # 数据库 + Mercure Hub 服务编排
├── config/
│   ├── bundles.php
│   ├── packages/          # 31 个 Bundle 配置文件
│   └── 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 等
│   └── ...
├── templates/             # 143 个 Twig 模板
└── public/                # 入口文件

Docker 部署

bash
git clone git@github.com:doggy/skeleton.git my-app
cd my-app
cp .env.example .env
# 编辑 .env 配置数据库连接与 Mercure JWT 密钥
docker compose up -d

Docker Compose 包含两个服务:

服务镜像说明
databasepostgres:14-alpinePostgreSQL 数据库,数据持久化到 named volume
mercuredunglas/mercureMercure SSE 实时推送 Hub,含健康检查

应用本身在宿主机通过 FrankenPHP 运行,不容器化 PHP。

启动应用

应用在宿主机通过 FrankenPHP 运行:

bash
# 开发环境
symfony serve

# 生产环境(FrankenPHP Worker 模式)
cd my-app && php -d variables_order=EGPCS bin/runtime -vvv

FrankenPHP 自动从 Caddyfile 读取配置,监听 http://localhost:8000

初始化数据库

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

初始化基础数据

bash
# 初始化管理员账号(三员)
php bin/console app:init-officers

# 生成静态菜单
php bin/console app:ef:init-admin-menu

默认账号

角色用户名初始密码
系统管理员adminadmin123
安全保密员securitysecurity123
安全审计员auditorauditor123

⚠️ 生产环境必须修改所有默认密码。

访问

下一步

基于 MIT 协议开源 | Copyright © 2026 Doggy