Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Kirby 3 Doctor

Release Downloads Build Status Coverage Status Maintainability

Plugin to check health of your CMS installation

Commerical Usage

This plugin is free but if you use it in a commercial project please consider to


  • unzip as folder site/plugins/kirby3-doctor or
  • git submodule add site/plugins/kirby3-doctor or
  • composer require bnomei/kirby3-doctor



Usage Kirby Panel

    type: doctor
    label: Perform checks
    # progress: Performing checks...

Usage Kirby API (post Authentification)

let doctor = fetch('')
  .then(response => response.json())
  .then(json => {

Provided Checks

  • CheckPHPVersion (zendframework): Kirby installation requirements
  • CheckPHPExtension (zendframework): Kirby installation requirements
  • CheckKirbyFolders (zendframework): Read/Write-Access to core Kirby folders
  • CheckComposerSecurity:
  • CheckGitFolder: No public .git folder
  • CheckHtaccess: Has a .htaccess file
  • CheckKirbyAccount: Has at least one account
  • CheckKirbyCacheSize: Cache folder not too big
  • CheckKirbyLicense: License exists (on non localhost)
  • CheckKirbyMediaSize: Media folder not too big
  • CheckKirbySystem: Kirby build-in system checks
  • CheckKirbyVersion: Is Kirby up-to-date
  • CheckSSL: Using https scheme

Custom Checks

You can add custom checks or disable build checks using the checks setting in the config file.

return [
    '' => [
        "MyNamespace\\MyClass" => true, // enable new
        "Bnomei\\CheckComposerSecurity" => false, // disable build-in
    // ...

You can also use your own plugin to define checks (since 1.2.0). Many thanks to @fabianmichael for the great idea.

Kirby::plugin('my/plugin', [        // your plugin
  '' => [       // required option id
    "MyNamespace\\MyClass" => true, // enable new

Contribute: You have an idea for a check or a plugin defining a check? Please create a new issue or submit a PR.

Settings Default Description
expire 24*60 minutes to cache the results and not run tests again
debugforce true will expire the cache every time if option('debug') is true as well.
checks [] example: ["MyNamespace\\MyCheckClass" => true, "Bnomei\\CheckGitFolder" => false] Attention: Namespaces must use \\-notion.
log.enabled true will create a log file if Kirby Log Plugin is installed as well.
log callback to kirbyLog()



This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please create a new issue.



It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.