Plesk extension for Cloudflare DNS

Cloudflare Pro for Plesk

Sync Plesk DNS records with Cloudflare using token-scoped access, record comparison, API logs, per-user settings, and background sync jobs.

DNSImport, export, sync
TokensPer-user access
LogsCloudflare API calls
JobsBackground sync

Overview

Built for Cloudflare DNS operations inside Plesk.

Cloudflare Pro links accessible Plesk domains to matching Cloudflare zones, compares local and remote DNS records, and exposes safe actions for import, export, sync, delete, proxy toggles, and troubleshooting logs.

The extension keeps Cloudflare tokens scoped to the logged-in Plesk user, stores settings in SQLite, and uses queued sync jobs so larger zones can run with visible progress instead of long blocking requests.

Typical workflows

  • Push Plesk DNS records into a Cloudflare zone.
  • Pull Cloudflare DNS records back into Plesk.
  • Compare mismatched records before deciding what to keep.
  • Inspect Cloudflare API request and response details while debugging.

Documentation

Operator and developer docs.

The documentation set covers installation, extension architecture, controller/API behavior, and security notes for token handling, logging, and permissions.

Installation

Requirements, install commands, local package builds, first run, and troubleshooting logs.

Architecture

Extension layout, repositories, sync flow, event hooks, storage, and Plesk integration details.

API

Controller actions, Cloudflare routes, sync jobs, tokens, logs, settings, and record actions.

Security

Token storage, owner scoping, permissions, request logging, uninstall cleanup, and operational notes.

Features

Everything exposed by the extension.

Cloudflare Pro is organized around Domains, record comparison, Tokens, API Logs, Settings, and About. Each area is built for fast scanning and repeated DNS operations from the Plesk panel.

Domain discovery

Finds Cloudflare zones that match accessible Plesk domains and stores linked zone metadata per user.

Record comparison

Shows local-only, Cloudflare-only, mismatched, and synced records with search, pagination, sorting, and bulk selection.

Import and export

Pull Cloudflare DNS records into Plesk or push Plesk DNS records to Cloudflare using queued background jobs.

Single record actions

Select DNS records and run Push, Pull, or Delete only for the records that need attention.

Proxy controls

Toggle Cloudflare proxy state for supported A, AAAA, and CNAME records.

Token storage

Add, validate, edit, and delete Cloudflare API tokens without exposing another user's credentials.

API logs

Search, paginate, view, copy, and remove Cloudflare API request and response logs.

Settings

Control autosync, token validation, API logging, safe delete cleanup, subdomain www companions, and proxy defaults per user.

Autosync

Use Plesk events to push supported DNS changes to Cloudflare when autosync is enabled.

Option reference

Every option available in the UI.

Domains tab

  • View: opens the DNS record comparison page.
  • Export: pushes local Plesk records to Cloudflare.
  • Import: pulls Cloudflare records into Plesk.
  • Sync: processes DNS records through a persisted sync job.
  • Auto Sync: enables event-based pushing for that linked domain.

Record page

  • Back: returns to Domains.
  • Import / Export / Sync All: runs bulk domain record operations.
  • Push / Pull / Delete: appears after selecting records.
  • Search: searches across type, name, status, and values.
  • Proxy: changes Cloudflare proxy state where supported.

Tokens tab

  • Add Token: opens the credential drawer.
  • Validate: calls Cloudflare token verification.
  • Edit: updates the token name or token value.
  • Delete: removes the token and linked domain rows.

API Logs tab

  • Search logs: filters logged Cloudflare requests.
  • View: opens request and response details.
  • Copy: copies request and response JSON.
  • Remove Logs: clears stored logs for the current user.

Settings tab

  • Enable Autosync: allows automatic DNS pushes.
  • Validate token before sync: verifies token status before sync jobs.
  • Log Cloudflare API calls: stores explicit Cloudflare API request logs.
  • Create www record for subdomains: creates matching Cloudflare-only www records during subdomain autosync and removes the companion record when that subdomain is deleted.
  • Remove records automatically on domain delete: removes concrete deleted child hostnames only; ambiguous apex delete events are skipped to protect the zone.
  • Proxy defaults: controls default proxy state for new A, AAAA, and CNAME records.

Supported DNS records

  • A, AAAA, CNAME, MX, TXT, PTR, CAA, DS, DNSKEY, TLSA, and SRV.
  • TLSA and SRV use Cloudflare structured data fields.
  • Cloudflare proxy controls are limited to A, AAAA, and CNAME records.

Screenshots

Light and dark theme screenshots.

Pick a screen, then drag the handle to compare the Plesk light and dark appearances.

Cloudflare Pro domains dark theme Cloudflare Pro domains light theme

Install

Install or build the extension.

Use the rolling latest package for most installations, or build the ZIP locally from the repository.

plesk bin extension --install-url https://github.com/ghostcompiler/cloudflare-pro/releases/download/latest/cloudflare-pro.zip
sh packaging/build.sh
plesk bin extension --install cloudflare-pro-1.0.5.zip
  1. Open the affected service plan or subscription in Plesk.
  2. Enable Cloudflare Pro access where needed.
  3. Add a Cloudflare API token with Zone Read, DNS Read, and DNS Edit permissions.
  4. Validate the token, then open Domains to confirm matching zones are linked.
  5. Use View to compare records and run Import, Export, or Sync All as needed.

Troubleshooting

Useful paths and logs.

Panel logs

tail -n 200 /var/log/plesk/panel.log
tail -n 200 /var/log/sw-cp-server/error_log
tail -n 200 /usr/local/psa/admin/logs/panel.log

Important data

  • Module data: /usr/local/psa/var/modules/cloudflare-pro
  • SQLite storage: cloudflare-pro.sqlite
  • Frontend assets: htdocs/public/assets
  • Extension metadata: meta.xml

API Logs are intended for explicit Cloudflare actions such as validate, sync, push, pull, delete, and proxy updates. Passive page refresh reads are excluded from API log writes.