hydrakit / app
The application skeleton every Hydra project starts from.
Requires
- php: >=8.2
- hydrakit/admin: ^0.24
- hydrakit/auth: ^0.24
- hydrakit/authorization: ^0.24
- hydrakit/broadcast: ^0.24
- hydrakit/cache: ^0.24
- hydrakit/console: ^0.24
- hydrakit/core: ^0.24
- hydrakit/csrf: ^0.24
- hydrakit/database: ^0.24
- hydrakit/event: ^0.24
- hydrakit/filesystem: ^0.24
- hydrakit/http: ^0.24
- hydrakit/kernel: ^0.24
- hydrakit/log: ^0.24
- hydrakit/mail: ^0.24
- hydrakit/nyholm: ^0.24
- hydrakit/php-di: ^0.24
- hydrakit/queue: ^0.24
- hydrakit/scheduler: ^0.24
- hydrakit/seo: ^0.24
- hydrakit/session: ^0.24
- hydrakit/symfony-console: ^0.24
- hydrakit/throttle: ^0.24
- hydrakit/validation: ^0.24
- hydrakit/view: ^0.24
- nyholm/psr7: ^1.8
Requires (Dev)
- ext-pdo_sqlite: *
- friendsofphp/php-cs-fixer: ^3.95
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v0.24.0
- v0.23.0
- v0.22.1
- v0.22.0
- v0.21.0
- v0.20.0
- v0.19.0
- v0.18.0
- v0.17.0
- v0.16.0
- v0.15.0
- v0.14.0
- v0.13.0
- v0.12.0
- v0.11.0
- v0.10.2
- v0.10.1
- v0.10.0
- v0.9.17
- v0.9.16
- v0.9.15
- v0.9.14
- v0.9.13
- v0.9.12
- v0.9.11
- v0.9.10
- v0.9.9
- v0.9.8
- v0.9.7
- v0.9.6
- v0.9.5
- v0.9.4
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- v0.8.1
- v0.8.0
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.8
- v0.5.7
- v0.5.6
- v0.5.5
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.1
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.2
- v0.1.1
- v0.1.0
This package is auto-updated.
Last update: 2026-10-02 15:48:02 UTC
README
The skeleton every Hydra PHP framework project starts from. Documentation: hydra.williamhleucka.com/docs.
Status
Experimental. This is a personal project, built in the open for my own use.
- Breaking changes are expected, between any two versions and without notice.
- Anyone curious enough to use it is doing so at their own risk.
Requirements
- PHP 8.2+ and Composer
- Docker + Compose (for the full stack: PHP-FPM, nginx, MariaDB, Redis)
composer.json pins config.platform.php to the oldest version above, so the
committed lock installs on every version the skeleton claims rather than only on
the one it happened to be generated with.
Setup
cp .env.example .env # runs as-is; set APP_DEBUG=true for local dev composer install # resolves the framework packages php bin/console key:generate # writes a fresh APP_KEY into .env
The defaults are the safe ones, not the convenient ones: APP_DEBUG=false, and
the Docker base stack builds with prod.ini. ./bin/dev layers the development
overrides on top, so debugging is something you ask for rather than something
you remember to turn off.
Run
With Docker (full stack):
./bin/dev up -d --build # PHP-FPM + nginx + MariaDB + Redis
Open http://localhost:8080 (the port is APP_PORT in .env).
./bin/dev also opens storage/logs, storage/uploads and storage/public to
every user (mode 1777): PHP-FPM writes the log and uploaded files as www-data,
and the scheduler writes the log as root. It also links public/storage to the
public disk so nginx can serve it.
In production: ./bin/prod runs the same stack behind Caddy on the host.
The whole path, from an empty server to https and shipping a change, is
https://hydra.williamhleucka.com/docs/deploy.html.
Without Docker (public site only):
composer start # php -S localhost:8000 -t public/
Open http://localhost:8000.
The console
./hydra # the command list
./hydra admin:check
./hydra make:source invoice --writable
./hydra is ./bin/exec bin/console — the console inside the php container,
which is where the database and Redis are reachable. php bin/console works
directly too, on a machine with the extensions installed.
Checks
composer qa # static analysis, style, tests
The three also run on their own as composer stan, composer lint and
composer test; composer lint:fix applies the style fixes instead of
reporting them. CI runs the same tools on PHP 8.2 through 8.5, and once more
against the framework's main branch, so a change upstream that breaks the
skeleton fails before it is released rather than after.
Everything else (commands, architecture, configuration, migrations, tests)
lives in the wiki: https://hydra.williamhleucka.com/docs/. AGENTS.md is the
short form for coding agents: the commands, where things go, and one way to
do each thing.