⭐ Found this useful? Install from Packagist · Give it a star on GitHub so more developers can find it.
Database-backed application environment variables with admin CRUD. Values are encrypted at rest with nowo-tech/doctrine-encrypt-bundle. Designed for FrankenPHP worker (no $_ENV / putenv mutation; in-memory cache cleared via ResetInterface).
This bundle is FrankenPHP worker mode friendly.
Bootstrap secrets (
DATABASE_URL,APP_SECRET, encryptor key files,FRANKENPHP_MODE, …) stay in.env. This bundle is for agility on business/integration variables you want to edit without redeploy.
- Doctrine entity
RuntimeEnvVariablewith#[Encrypted]value column - Admin CRUD at
/_runtime_env(REQ-UI-002:ROLE_ADMINby default) RuntimeEnvBagAPI + Twigruntime_env('KEY')— worker-safe memoization +kernel.reset- Configurable
table_prefix(defaultruntime_env→ tableruntime_env_variables) - UiKit-friendly markup (
nowo-ui-*)
- PHP >= 8.2, < 8.6
- Symfony 7.4, 8.0, or 8.1 (see
composer.json; CI exercises 7.4, 8.0, and 8.1) - Doctrine ORM + Doctrine Bundle
nowo-tech/doctrine-encrypt-bundle(Halite recommended)- Twig 3.12+
composer require nowo-tech/runtime-env-bundleRequires a configured DoctrineEncryptBundle profile (Halite recommended). See docs/INSTALLATION.md.
Register routes (Flex recipe copies this):
# config/routes/nowo_runtime_env.yaml
nowo_runtime_env:
resource: .
type: nowo_runtime_env# config/packages/nowo_runtime_env.yaml
nowo_runtime_env:
enabled: true
table_prefix: runtime_env
panel:
enabled: true
path_prefix: /_runtime_env
security:
access_roles: [ROLE_ADMIN]
allow_unauthenticated: false # never true in productionFull tree: docs/CONFIGURATION.md.
use Nowo\RuntimeEnvBundle\Service\RuntimeEnvBag;
public function __construct(private RuntimeEnvBag $runtimeEnv) {}
public function __invoke(): void
{
$token = $this->runtimeEnv->get('MY_API_TOKEN');
}{{ runtime_env('MY_API_TOKEN') }}See docs/USAGE.md for more examples.
make setup-hooks
make up
make test
make phpstan
make cs-checkDemo: cd demo/symfony8 && make up → http://localhost:8026 — see demo/README.md.
- Installation
- Configuration
- Usage
- Contributing
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
- GitHub Spec Kit
- Demo with FrankenPHP (development and production)
- GitHub Actions CI requirements
- PSR evaluation (REQ-CS-007)
- Code of Conduct
- Tests: PHPUnit (PHP) under
tests/Unit/ - Coverage:
- PHP: 100%
- TS/JS: N/A
- Python: N/A
- Badge / CI: PHPUnit coverage job on PHP 8.2 + Symfony 7.4
MIT. See LICENSE.
Nowo.tech · Héctor Franco Aceituno
