Self-hosted Runs entirely on Cloudflare

Every WordPress site you run, in one dashboard.

KontrolWP pulls in what needs your attention across all your sites: updates, plugins, users, broken links and comments waiting for review. Handle it from one place, without logging in to each site.

Your dashboard, your Cloudflare account, behind Cloudflare Access.

Your own accountDeploys to your Cloudflare account with one button.
Behind AccessOnly people you allow can open the dashboard.
One plugin per siteKontrolWP Connect pairs each site with a key.
No inbound callsSites never call the dashboard, so it can stay private.

Features

Everything you check on each site, checked for you.

KontrolWP syncs every site in the background and puts the work in one list, so you fix things instead of hunting for them.

Updates

Every core, plugin and theme update across all sites, grouped and queued with one click. Each site installs them one at a time.

Plugins

Install, activate, deactivate and delete plugins, and set auto-updates, on one site or many at once.

Users

Every user across all sites, grouped by email. Add people, change roles, send password resets or remove them everywhere.

Broken links

Scan published posts and pages for broken and unresponsive links and images, then remove them or jump straight to the editor. Scans also run on a schedule.

Comments

Every comment held for moderation, from every site, with Approve, Spam and Trash right in the list.

Magic Login

Open any site's admin with a one-time link that lasts 60 seconds. No passwords to look up, and logins still show in activity logs.

Analytics

Connect Umami Cloud or your own Umami to see visitors, pageviews and bounce rate on each site's page.

Domain

DNS records and registration details for each site's domain, with a warning when it expires within 30 days.

Background sync

Every site is checked every hour by default. Choose anything from every 15 minutes to every 6 hours.

How it works

Built for the person who looks after a lot of sites.

Update everything, safely, from one list.

When the same plugin needs updating on five sites, it shows once. Update one site, or all of them, and watch each one move from Queued to Updated.

  • Updates run one at a time per site, in the order you queued them
  • Failures show on the site that failed, with the reason
  • Turn WordPress's own auto-updates on or off across sites
  • KontrolWP Connect keeps itself up to date

Find broken links before your visitors do.

Scan a site's published content and KontrolWP checks every link and image from Cloudflare, not from your server. Each problem shows where it appears, with a button that opens that post's editor.

  • Broken, unresponsive and couldn't-check results, kept apart
  • Remove a link from every post it appears in, ignore it, or check it again
  • Scheduled scans at midnight every 1, 3, 5 or 7 days
  • Broken links across all sites on the Overview

See how each site is doing.

Connect Umami and each site's page shows visitors, visits, pageviews, bounce rate and visit duration, compared with the period before. The Analytics tab adds pages, referrers, browsers, countries and who is on the site right now.

  • Works with Umami Cloud or a self-hosted Umami
  • Matches each site to its Umami website by domain, or the one you pick

Security

Your sites, your account, your keys.

KontrolWP is not a service you sign up for. It is a Cloudflare Worker you deploy, so your site list and credentials never leave your own account.

You

Sign in through Cloudflare Access with the login methods you choose.

  • Cloudflare Access
  • Any browser
  • Phone or desktop
Access

KontrolWP

The dashboard and API run as one Worker, with a database and queue in your account.

  • Workers
  • D1
  • Queues
  • Cron Triggers
Signed HTTPS

Your WordPress sites

KontrolWP Connect answers only requests signed with that site's own secret.

  • KontrolWP Connect
  • Any host

Locked down by default

Every API call checks the Cloudflare Access token, so a misconfigured route still refuses access.

Secrets stay encrypted

Each site's secret is encrypted in the database with a key only your Worker holds.

Sites never call home

KontrolWP only makes outbound requests, so the dashboard can live on a private hostname.

Get started

Up and running in three steps.

The database, queue and migrations are set up for you on the first deploy.

Deploy

Click Deploy to Cloudflare and pick your account. Cloudflare copies the project and builds it for you.

Secure

The setup screen walks you through turning on Cloudflare Access, so only you can open the dashboard.

Connect

Install KontrolWP Connect on a site, then choose Add site and paste the site's address and Connection Key.

kontrolwp2.…
Cloudflare WorkersD1QueuesCron TriggersCloudflare Access

FAQ

Questions, answered.

What do I need to run KontrolWP?

A Cloudflare account and WordPress sites you can install a plugin on. KontrolWP uses Workers, D1, Queues and Cloudflare Access, all in your own account.

Does it work with any WordPress host?

Yes. Your sites don't need to be on Cloudflare. KontrolWP reaches each site over HTTPS through the KontrolWP Connect plugin, wherever it is hosted.

Can anyone else see my dashboard?

Only the people you allow in Cloudflare Access. KontrolWP checks the Access token on every request, and your sites never need to reach the dashboard.

How does a site connect?

KontrolWP Connect creates a Connection Key, shown under Settings, KontrolWP Connect. Paste it into Add site with the site's address. Creating a new key in the plugin stops the old one working straight away.

Will updating many sites at once overload them?

No. Each site works through its own queue one update at a time, and a slow or broken site never holds up the others.

Does Magic Login skip two-factor authentication?

Only for that one sign-in. The link works once, expires after 60 seconds, and checks the user is still an administrator. Password logins keep their two-factor prompt.

Take control of every WordPress site you run.

Deploy KontrolWP to your Cloudflare account and connect your first site.