Integrations on a server
A CoreCP machine can carry products that are not ours: a malware scanner, a tuning agent for the database, the paid edition of the web server, an application installer. Each of them needs a licence key, and each vendor has its own idea of w
Written for: Administrator
A CoreCP machine can carry products that are not ours: a malware scanner, a tuning agent for the database, the paid edition of the web server, an application installer. Each of them needs a licence key, and each vendor has its own idea of where that key should live.
CoreCP has exactly one idea, and this page is it.
Servers → the server → Integrations.
What the screen shows
One row per integration, with four things about it:
- whether the product is installed, running and healthy on this machine;
- the state of its licence key — present, missing, empty, or insecure, which means the file is readable by somebody other than root;
- whether the vendor has actually accepted that key, where the vendor offers a way to ask;
- which section of the panel the integration belongs to, so you know where its own screens are.
Clicking a row opens the details, and that is where a key is entered.
Keys live on the node, and only there
This is a decision, not an implementation detail, and it has a price worth knowing about up front: rebuilding a node means entering its keys again.
The panel is a courier. When you type a key here it travels sealed over the mTLS connection to that machine's agent, is written at mode 0600 owned by root, and the panel keeps no copy — not in its database, not in its log, not in the audit entry, which names the integration and the node and never the value.
Which means the panel cannot show you a key back either. Every read answers presence, the file mode, when it last changed, and a verdict — never material.
The same thing from a shell, on the node:
# Store a key. Through standard input, never as an argument: an argument is
# visible in the process list of a shared machine for as long as it runs.
printf '%s' '<the key>' | corectl integration credential set cpguard --stdin
# What is there, without saying what it is.
corectl integration credential status cpguard
# And take it away again.
corectl integration credential clear cpguardAn integration with more than one credential names which one:
printf '%s' '<serial>' | corectl integration credential set litespeed --credential serial --stdin
corectl integration credential status litespeed --credential consoleThe key field appears where the refusal would be
An integration whose required key is missing shows the field and no install button. That is on purpose: the node refuses an installation without its licence material anyway, before anything on the machine changes, and it refuses identically whether you came through addon install or through webserver set litespeed --edition lsws.
$ corectl addon install cpguard
integration_credential_missing: cpguard needs its licence key first
file: /etc/corecp/secrets/cpguard-license.key
repair: printf '%s' '<key>' | corectl integration credential set cpguard --stdin
CoreCP keeps no copy of it — the key lives on this node.corectl doctor reports the same thing standing still, so a missing key is visible before somebody tries to install something.
The cards under the list
LiteSpeed
The edition this machine runs, its version, the state of the serial, and the cache. Two buttons:
- Open the WebAdmin console — a one-time sign-on into LiteSpeed's own admin interface, in a tab of its own. The console's own password lives on the node at
/etc/corecp/secrets/litespeed-console.passand never reaches the panel. - New console password — mints a new one and forgets the old.
corectl litespeed status
corectl litespeed console # a 90-second sign-on
corectl litespeed console --reset # a new password
corectl litespeed console --off # turn the console off and forget itThere is deliberately no LiteSpeed configuration screen. Tuning stays with the drop-in engine and the server profiles, which is where every other service on the machine is tuned.
Database tuning
The tuning agent, what it recommends, and the button that applies it. Applying runs behind the drop-in engine's net — configuration test, restart, health check, and putting back what was there if the database does not come back healthy — which is what makes it safe to offer as a button at all.
corectl db tuner status
corectl db tuner apply --dry-run # say what would change, change nothing
corectl db tuner apply
corectl db tuner rollbackThe vendor's own graphs are a deep link from the card. The vendor documents no customer API (checked 2026-08-13; see docs/integrations.md), so the deep link is the route to them and there is no copy of those graphs here.
There is no per-account version of this and there will not be: the agent reads server-wide query statistics, which on a shared machine is every customer's traffic. A customer's own slow queries are in the log viewer, scoped by the node.
Servers → Database tuning is the same card for every database node at once, with bulk apply. Bulk apply is a queue — one machine at a time, and a failure stops the queue. Restarting eight databases at the same moment is not a tuning pass, it is an outage.
Installatron
Behind a platform feature flag, off by default until the vendor answers our request for a CoreCP profile (the draft and the evidence under it are in docs/addons.md). Off means there is no route and no screen at all. On without a server means one sentence explaining what is missing. On with a server means customers get Open Installatron on their WordPress page, which opens the vendor's own interface in a new tab, already signed in.
What the scanner found
Servers → the server → Malware is the other half of this page: the infected files on this machine, with quarantine, restore, disable and delete as tasks, and the break-in monitor's switch beside them.
A customer sees the same screen bounded to their own home directory, on the Malware tab of their account. The scoping is the node's: it resolves the owner of a path from CoreCP's own record of who owns which home, not from the name the vendor's scanner wrote down.
corectl cpguard detections --limit 20
corectl cpguard detections --account demo
corectl cpguard scan start --domain example.nl
corectl cpguard act quarantine --id 42 --account demo
corectl cpguard lfd status
corectl cpguard lfd set onThe break-in monitor's events are merged into the security log source, so "who tried to get in" stays one column rather than two lists:
corectl logs tail security --since -1h --level warningWhere to read further
docs/integrations.md carries the whole picture for platform administrators — which vendor surface each integration actually uses, why, and what was measured rather than assumed.