https://github.com/haydenk/symfony-poly-stack
Full-featured Symfony 8 starter with web auth, JWT API, EasyAdmin, Scheduler, and swappable DB backends — runs in a devcontainer
https://github.com/haydenk/symfony-poly-stack
api-platform bootstrap caddy devcontainer doctrine easyadmin jwt mise mysql php postgresql rest-api sqlite starter-template symfony symfony8 webpack-encore
Last synced: about 4 hours ago
JSON representation
Full-featured Symfony 8 starter with web auth, JWT API, EasyAdmin, Scheduler, and swappable DB backends — runs in a devcontainer
- Host: GitHub
- URL: https://github.com/haydenk/symfony-poly-stack
- Owner: haydenk
- Created: 2026-04-10T23:59:52.000Z (3 months ago)
- Default Branch: develop
- Last Pushed: 2026-04-11T01:54:29.000Z (3 months ago)
- Last Synced: 2026-04-11T03:26:12.771Z (3 months ago)
- Topics: api-platform, bootstrap, caddy, devcontainer, doctrine, easyadmin, jwt, mise, mysql, php, postgresql, rest-api, sqlite, starter-template, symfony, symfony8, webpack-encore
- Language: PHP
- Size: 160 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Symfony Poly Stack
A full-featured Symfony 8 / PHP 8.5 example application demonstrating web
authentication, a JWT REST API, an admin panel, database fixtures, and a scheduler —
all running inside a devcontainer with swappable database backends
(PostgreSQL, MySQL, SQLite).
## Quick Start
Requires [Docker](https://www.docker.com/) + [VS Code Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
(or local PHP 8.5) and [mise](https://mise.jdx.dev/).
```bash
# 1. Open the project in its devcontainer
# 2. Create .env — see docs/getting-started.md for the template
mise run setup # install deps, generate secrets, create DB, migrate
mise run dev # start Caddy + PHP-FPM + Scheduler → http://localhost:8000
mise run db:seed # optional: demo accounts (admin@example.com / password)
```
## Services
PostgreSQL 18, MySQL 8.4, Redis 8, and Mailpit run alongside the app container and
are reachable on `127.0.0.1` at their default ports; Caddy serves the app on
`localhost:8000` and Mailpit's UI is on `localhost:8025`. Details in
[docs/services.md](docs/services.md).
> **Upgrading from PostgreSQL 17?** Recreate the data volume:
> `docker volume rm symfony-poly-stack_postgres-data` — see
> [docs/services.md](docs/services.md#bundled-services).
## Documentation
| Topic | |
|---|---|
| [Getting Started](docs/getting-started.md) | Requirements, `.env` template, setup, dev server |
| [Services & Devcontainer](docs/services.md) | Bundled services, networking, Codespaces support |
| [Application Guide](docs/application.md) | Web routes, JWT API, admin panel |
| [Database](docs/database.md) | Connections, backend switching, migrations, fixtures |
| [Mise Tasks](docs/tasks.md) | Full task reference |
| [Testing & Code Quality](docs/quality.md) | PHPUnit, PHPStan level 8, Rector, php-cs-fixer |
| [Dagger CI](docs/dagger-ci.md) | Containerized quality suite (`mise ci`) |
| [Architecture](docs/architecture.md) | Tech stack and project layout |
## Everyday Commands
```bash
mise run test # PHPUnit suite
mise run quality # lint + analyse + rector + test, concurrently
mise run ci # same suite in Dagger containers (run from the host)
mise run db:use sqlite # switch database backend
```
The full list: [docs/tasks.md](docs/tasks.md).
## License
Licensed under the [GNU Affero General Public License v3.0 or later](LICENSE)
(`AGPL-3.0-or-later`).