October 2026 update

5 new features 13 improvements 7 bug fixes

New features 5 items

AI diagnostics for failed deployments

When a deployment fails, Ploi Cloud now works out why by itself. About 15 seconds after the failure, a card on the deployment page names the most likely root cause and lists the steps to fix it, with links to the matching documentation.

Before: A failed deployment left you with the build and runtime logs, and finding the cause was up to you. After: The deployment page tells you what went wrong and what to change.

Team roles that limit what members can do

The role you give a team member now decides what they can do, in the dashboard and through the API. Owners can also change a member's role straight from the members list.

Before: A role was only a label, and every member could create, change and delete resources. After: Members can only view, editors can create, deploy and change resources without deleting them, and admins can also delete resources and manage billing and team settings. Only the owner manages members and deletes the team.

Require two-factor authentication for your team

Team owners can switch on Require two-factor authentication in the team settings. Members without two-factor keep their membership, but the dashboard sends them to their security settings until they turn it on, and the API refuses their requests for that team.

Managed databases in the API

The API can now list, create and delete managed databases and show the plans you can pick from. You can also read the password, change database properties, IP filtering and the maintenance window, and add, reset and remove database users. AI assistants connected to Ploi Cloud can do the same, except delete a database.

Change the maintenance window of a managed database

The Maintenance card on a managed database's overview is now a form. Pick a day and a time in UTC and save it.

Before: The dashboard showed the maintenance window but couldn't change it. After: Move maintenance to a quiet moment for your application yourself.

Improvements 13 items

Nightwatch and Inertia SSR are free

Nightwatch and Inertia SSR run inside your application on small fixed resources, so they no longer add to your bill or your cost overview. The cost overview used to price Nightwatch at about €13.88 a month. The edit dialog also stopped offering a memory size for them, because that setting never reached the service.

Valkey hands Laravel the variables it expects

New Valkey services on Laravel and Statamic applications turn on Expose env variables as Redis by default. Your application gets REDIS_URL, REDIS_HOST, REDIS_PORT and REDIS_PASSWORD and connects without any remapping. Applications that already have a Redis service keep VALKEY_*, and existing Valkey services keep their current setting. You can set the option through the API and in YAML as well.

Secrets can use your service variables

An environment secret can now reference the variables your services inject, such as ${VALKEY_PASSWORD} or ${DB_HOST}. Set CACHE_URL to redis://:${VALKEY_PASSWORD}@${VALKEY_HOST}:${VALKEY_PORT} and your application receives the real values. When a secret has the same name as an injected variable, your secret wins.

An email when a domain loses its certificate

When a domain on your application has gone about a week without a valid SSL certificate, the team owner gets an email with the steps to fix it, and a second one after two weeks. We renew certificates automatically as long as the domain points to us, so the email tells you which DNS target to use, or to remove the domain if it now lives elsewhere. It only goes out for certificates that expired, not for domains still waiting on their first one.

See why a service restarted

The logs dialog of a service now shows why it last restarted and when, for example out of memory 5 minutes ago, or the exit code it stopped with.

Uptime monitoring follows your domains

You can now monitor a subdomain under a wildcard domain. Monitoring only accepts domains attached to the application, and when you remove the monitored domain, the monitor moves to the application's main address. The Monitoring tab also warns you when the monitored domain is no longer attached.

Commands and file transfers through the API pick an instance for you

Running a command or transferring a file through the API no longer needs an instance name. Leave it out and the request goes to the first running web instance. Listing instances now also returns each instance's containers and when it started.

Redesigned emails

We rebuilt every email we send to match the dashboard, with the same colours and typefaces and our company details in the footer.

One-click newsletter unsubscribe

Mail clients such as Gmail and Apple Mail now show an unsubscribe button on our newsletter. The unsubscribe link asks you to confirm first, so a link scanner that opens it can't unsubscribe you by accident.

Updated data processing agreement

The data processing agreement under Billing is now version 2.1. It lists where each kind of data lives for every region, adds Lettermint, Anthropic and Oh Dear as sub-processors, and brings the list of security measures up to date. Oh Dear is only involved when you turn on uptime monitoring, and Anthropic only handles support conversations.

MinIO runs a pinned build

MinIO services now run a fixed, maintained build of MinIO instead of whichever image was newest when the service started, so a restart can't change the version under you.

Tags in the settings sidebar

An application's tags now show at the bottom of its settings sidebar.

Documentation

The API authentication guide explains why requests need a User-Agent header and what the 403 with error code 1010 means. The Redis guide covers using Valkey as Redis, the secrets guide shows how to reference service variables, and the infrastructure as code guide explains how secrets and domains are kept or removed.

Bug fixes 7 items

Fixed YAML without secrets or domains removing them

Applying infrastructure as code YAML that had no secrets or domains section removed all your custom secrets and domains. Leaving a section out now keeps what you have. An empty list still removes everything in it, and auto-generated secrets such as APP_KEY always stay.

Fixed the API showing placeholder service credentials

The API listed placeholder values such as user and password for the variables your services inject, and some names didn't match what your application receives. It now shows the real names and values, including DB_* for databases and the Valkey password. The service endpoint masks passwords, also inside connection URLs.

Fixed quick deploy refusing to turn on

Some applications linked to a Git account had no Git provider stored, so quick deploy couldn't be switched on for them. The provider now follows the linked Git account, and we filled it in for existing applications. Changing an application's repository through the API also picks a matching Git account when you don't send one.

Fixed a rejected VAT number causing an error page

Entering a VAT number that Stripe doesn't accept showed an error page. You now get a message under the field, and your billing details stay as they were, including your previous VAT number.

Fixed two-factor setup after an abandoned attempt

If you started setting up two-factor authentication and left before entering a code, you couldn't turn it on afterwards. Setup works again from the start.

Fixed object storage stuck in setup

Creating or deleting a bucket could leave object storage stuck on a setup status. We now check its status again after every bucket change.

Fixed a status for services without one

The API and AI assistants reported a status for Nightwatch and Inertia SSR, which run inside your application and have no status of their own. The status is now empty for them, and a new hide_status field tells you why.

Important notes

  • • Team roles take effect right away. Members with the Member role can now only view, so check your members list and give people Editor or Admin where they need more.
  • • Leaving secrets or domains out of your YAML now keeps them. Send an empty list to remove them all.
  • • New Valkey services on Laravel and Statamic applications get REDIS_* variables instead of VALKEY_*. Existing services keep what they have.
  • • Nightwatch and Inertia SSR no longer count towards your bill.

Share this update