This guide applies to Symfony 6.4 LTS and PHP 8.1 or newer. You need a live24h account, a workspace and an API key with write permission – see the shared steps .
Install
Composer installation:
composer require live24h/symfony-adapter
Register the bundle in config/bundles.php:
// config/bundles.php
return [
// ...
Live24h\SymfonyAdapter\Live24hMonitorBundle::class => ['all' => true],
];
Then import the bundle’s routing, for example in config/routes/live24h.yaml:
# config/routes/live24h.yaml
live24h_monitor:
resource: '@Live24hMonitorBundle/Resources/config/routes.php'
Create config/packages/live24h_monitor.yaml for the host configuration. It holds api_base (default https://api.live24h.eu), site_url (the public URL of the app to scan) and cache_pool (default cache.app):
# config/packages/live24h_monitor.yaml
live24h_monitor:
api_base: 'https://api.live24h.eu'
site_url: 'https://your-app.example'
cache_pool: 'cache.app'
The API key is not a config key – you enter it at runtime in the Settings UI under /admin/live24h/settings, where it is shown masked. A listing on the Packagist marketplace will follow.
Secure the path
The bundle is mounted under /admin/live24h and must be secured by the host behind a role and firewall. Restrict the path in the Symfony security via access_control:
# config/packages/security.yaml
security:
access_control:
- { path: ^/admin/live24h, roles: ROLE_ADMIN }
You then reach the Health Center under /admin/live24h/health.
Step by step
You will find the full, illustrated flow in the overview . Here are the steps for Symfony:
- Open the Health Center under
/admin/live24h/health. - In the settings, check the stored API key and test the connection.
- Start the analysis of your app.
- Review the Website Health Score and the recommendations.
- Select the checks – locked suggestions are marked “From Pro” and stay visible.
- Create the checks in live24h with one click.
Alternatively via console command
For headless and repeatable rollouts, the console command is available:
# Dry-run: shows scan, modules, score and suggestions as a report
php bin/console live24h:scan
# Create: creates the default suggestions
php bin/console live24h:scan --apply
The command suits deploy pipelines and cron, because it updates the scan without a back-end interface. Without --apply, it runs as a dry run.
Troubleshooting and tips
The Health Center under /admin/live24h/health is not reachable.
Check whether the bundle is registered in config/bundles.php and the routing is imported, and clear the cache with php bin/console cache:clear. Also make sure your access_control entry allows access for your role.
The call to /admin/live24h is not secured.
The protection is up to the host. Set an access_control entry for ^/admin/live24h in config/packages/security.yaml and put the route behind your firewall.
“Test connection” fails.
Check api_key (write permission required), api_base (https://api.live24h.eu) and whether the server is allowed to connect outbound. Hosting firewalls occasionally block outgoing requests.
Messenger workers or Scheduler tasks don’t appear.
Background jobs are discovered at container build time. After changes to transports or schedules, clear the cache with php bin/console cache:clear so the discovery is refreshed. The worker heartbeat is opt-in.
A heartbeat check stays on “Waiting”. This is normal and not an error: a heartbeat waits for the first signal from the monitored worker (the ping to the heartbeat URL). As long as the Messenger worker or Scheduler task has not reported in yet, the check stays on “Waiting” – not on “Down”. With the first run, the status switches to “Operational”.
A suggestion is marked “From Pro”. The check type is not included in your plan. You can deselect it or upgrade your plan .
Frequently asked questions
Health Center or console command – which one? Both lead to the same result. The Health Center is customer-friendly, the console command suits headless and repeatable rollouts in deploy pipelines and cron.
Do I need a shop or a CMS? No. The bundle is intended for custom Symfony apps and APIs and contains no commerce modules.
Are mail settings checked? Yes, informatively: MX, SPF, DKIM and DMARC are evaluated and made visible, but trigger no active mail check.