Matomo Analytics

19 August 2026

The SSL and tenant update

This one has been brewing for a while. SSL certificates and tenants just received their biggest overhaul since we l...

This one has been brewing for a while. SSL certificates and tenants just received their biggest overhaul since we launched them, and they got it together, because the two belong together.

If you run a multi-tenant setup on Ploi (looking at you, tenancyforlaravel folks), this update is for you. And even if you never touch tenants, your SSL management just got a lot more flexible.

Hold multiple certificates per site

A site is no longer limited to a single SSL certificate. You can now install certificates next to each other, Let's Encrypt next to ZeroSSL next to an uploaded certificate, and swap between them with a single Activate click.

Requesting a new certificate no longer touches your live configuration until you activate it, so replacing a certificate is now a zero-risk operation: the old one stays installed and can be re-activated at any time.

Every certificate keeps its own files on the server, expiry dates are read per certificate (not just the one being served), and requests that die halfway no longer strand a certificate in limbo. The API grew along with it: certificate responses now expose the active state, and there is a new activate endpoint.

Tenants are now a first-class feature

Tenants used to hide behind a button on the Manage tab. No more: they have their own place in the site menu, and the overview got a full redesign. Every tenant now shows a live status while it is being installed or removed, the list is paginated and searchable (some of you run hundreds of tenants on a single site, we see you), and a small view button takes you straight to the tenant's domain.

Every tenant gets the full certificate toolkit

The real headline: everything described above also works per tenant. Each tenant can hold multiple certificates, and each row expands into its own certificate list with activate, force-renew, download and delete actions.

ZeroSSL, uploaded custom certificates and HTTP/3 are now available for tenants too, giving them full parity with your main domain.

We also closed two long-standing requests along the way: requesting a tenant certificate can now include the www variant with a single checkbox (and the www redirect is only configured when the certificate actually covers it), and changing a site's system user now correctly rewrites all tenant configurations.

Under the hood

To make all of this possible we migrated every tenant on the platform, over 13,000 of them, from loose settings into real, first-class records. The migration ran fully automatic with zero downtime, and it unlocks the roadmap for what is next: think bulk operations and richer per-tenant insights.

Changelog

As always, plenty more shipped since the last update. The highlights:

Added

  • Multiple SSL certificates per site, with an activate selector in the panel and a new activate endpoint on the API.

  • Tenants: own section in the site menu, live install/remove status, search and pagination, and a view button.

  • Multiple certificates per tenant with activate, force-renew, download and delete, including ZeroSSL, uploaded certificates and HTTP/3.

  • Tenant certificates can include the www variant via a checkbox, and support DNS provider validation on the API.

  • Ploi MCP server with OAuth and 60 curated tools, so AI assistants can manage your servers, plus a connected applications overview on the API keys page.

  • Log in with Google.

  • Wildcard subdomains option when creating a site.

  • Multiple uptime monitors per site on distinct paths.

  • Backups: create-and-run in one go, duplicate configurations (with bucket/remote override), pick an exact backup time, and filter backup tables by server.

  • Scripts API: trigger one-off runs and run scripts as any system user.

  • API: zero-downtime deployment activation, quick-deploy status on site and repository endpoints, and a status attribute on the deploy ping response.

  • Synced sites and applications deploy automatically after the primary deployment completes.

  • A dedicated "Deployment failed" notification event.

  • Dashboard favorites are now per user instead of per team.

  • Redesigned API keys page with permission presets.

  • Granular team permissions with parent inheritance, covering full server and site management.

  • AWS Calgary region (ca-west-1).

  • An email notification when a server build fails.

  • Firewall rules are now synchronized from the server's actual ufw ruleset.

Improved

  • A broad panel design pass: modernized layout, redesigned context sidebar, the server manage page organized into tabs, and a refreshed create-server screen with an advanced settings modal.

  • Heavy pages now load instantly with skeleton placeholders while data streams in.

  • Mobile performance: menus and animations are smooth again on phones.

  • The server insights refresh button can be used every 5 minutes instead of once per hour.

  • CPU cores and memory are visible in the server sidebar.

  • Paused cronjobs and daemons show a warning indicator.

  • UpCloud regions are fetched live instead of from a static list.

  • Server update counts no longer include Ubuntu phased updates, so the number you see is the number that installs.

Fixed

  • Tenant certificates no longer duplicate when certbot reports "not yet due for renewal".

  • Changing a site's system user or domain now rewrites the tenant webserver configurations, and domain renames are atomic.

  • The www subdomain and tenant SSL no longer conflict, and a www variant can even be its own tenant now.

  • Certificate expiry dates are read from each certificate's own files, and interrupted certificate requests clean up after themselves.

  • Firewall rule changes are serialized per server, fixing rare silent rule loss, and IPv6 CIDR rules are no longer inserted at position 1.

  • Cronjob entries are written literally, so shell characters in commands are never expanded on save.

  • The default PHP-FPM pool socket is locked down from isolated site users.

  • Cloudflare DNS now fetches all pages of records instead of only the first.

  • Bitbucket integration updated for their 2026 API changes, with clear errors instead of empty commit lists.

  • Server provisioning recovers from interrupted package installs, and certbot can no longer hang a server build.

  • Uninstalling the default PHP version now promotes the remaining version to default.

  • Backups: silent SFTP upload failures are surfaced, custom-named archives work again, and nightly backups keep their configured time.

  • Live deployment logs stream through Redis, making them faster and lighter on busy servers.

  • Site cloning detects silent transfer failures and handles zero-downtime symlinks correctly.

That's it for this round. As always: found something off, or missing a feature you need? Let us know through support or drop it on the roadmap. Two items in this very update started as roadmap requests.

19 August 2026

477 views

Back to news

Ready to dive in?
Start your free trial today.

Create an account and enjoy your 5-day free trial — no credit card required.

Start your free trial