DigitalOcean
DigitalOcean
DigitalOcean shows what your connected DigitalOcean accounts run, read live from DigitalOcean. You can see whether your App Platform apps are live, follow their deployments, read their logs, and watch your droplets' CPU, memory, load and bandwidth. With an account set to read and write you can also deploy, restart and roll back apps, change their environment and domains, power droplets, and change cloud firewalls and reserved IPs.
In the sidebar under Servers & apps → DigitalOcean. Needs nothing else. Handles secrets: the module holds a DigitalOcean token, so every change an agent makes here goes to a person first.
Nothing is copied into MaxSuite. Every screen asks DigitalOcean live. MaxSuite stores only the account itself and whether its token still works.
This page is separate from the DigitalOcean provider account under Integrations (provider accounts). That one brings droplets and other resources onto the Services page. This module keeps its own token. You may enter the same token in both places, and each is checked on its own.
If more than one account is switched on, a picker at the top chooses which one you are looking at. Until an account is connected, only the Accounts tab shows.
Overview
The At a glance card counts apps that are live, deploying, and failed or down; droplets running and off; and alert policies. Below that is a list of what needs attention, or "Nothing needs attention."
Apps
Every App Platform app with its live address, health, newest deployment, region and what it runs. Health is one of:
- live;
- deploying: a deployment is in progress;
- failed: the newest deployment failed, but an older one still serves;
- down: it failed and nothing serves.
Click an app to open it. It has these parts:
- Deployments: phase, why it started, progress and when. Click Refresh until the newest reads ACTIVE or ERROR; the page does not refresh by itself. On a deployment still building you can Cancel this deployment. On an earlier good one you can Roll back: code, settings and environment go back as they were. A rolled-back app is pinned until you make it permanent or undo it.
- Logs: choose Run, Build or Deploy, and optionally one component, then Show log. Secrets are scrubbed from every line.
- Environment: the app's variables, app-wide or per component, with scope Build and run, Build only or Run only. Add variable sets one from a typed value or from a stored secret. A secret value is never shown. Saving redeploys the app.
- Domains: the app's custom domains, their state, why one failed, and when its certificate ends. Add a domain as Alias or Primary — the main address. Removing a domain stops the app serving it. Both redeploy the app.
At the top of an app: Deploy now, Rebuild without cache and Restart now, each confirmed first.
Droplets
Each droplet with its status, size, region, whether DigitalOcean's monitoring agent runs on it, and its monthly price in USD. Pick one to see five charts: CPU used, Memory used, Load (1 min), Public in and Public out, over the last hour, 6 hours, day or week. Memory and load need DigitalOcean's monitoring agent on the droplet; without it, the chart says why it is missing.
Click Power on for a droplet that is off, or Reboot or Shut down — takes it offline for one that is running. A hard power off and a power cycle are only for agents and the API.
Network
- Firewalls: each cloud firewall with its rules and the droplets it covers. Add rule takes a direction (inbound or outbound), a protocol (TCP, UDP or ICMP), ports and addresses. Removing a rule is confirmed with "Remove this rule; what it lets through stops". Removing the rule for SSH can lock you out.
- Reserved IPs: addresses that stay the same while the droplet behind them changes, and which droplet each points at.
Projects
Your DigitalOcean projects. Pick one to see what is in it, by kind and id.
Databases
Managed database clusters with engine, version, status, region and size. Connection details are never shown.
Alerts
DigitalOcean's monitoring alert policies: what each watches, when it fires, whether it is on and who it tells. They are set up in DigitalOcean and shown here so nobody has to go there to look.
Accounts
Each connected account with its token state (working or failing, the last error, and when it was checked), its access (read only or read and write), and whether it is switched on.
Connect an account
- In DigitalOcean, create a personal access token. Read-only is enough to see everything.
- Open Accounts and click Connect account.
- Enter a name, paste the Personal access token, and choose What Max may do: Read only or Read and write.
- Click Connect. The token is checked with DigitalOcean first, then stored sealed. It is never shown again, here or to any agent.
Any reader can click Check to test a token now. With write access you can also Replace token, Allow changes or Make read only, Switch off or Switch on, and Remove an account. Connecting, replacing a token, removing an account and allowing changes must be done by a person signed in as themselves. An API key or an agent is refused.
A read-only account refuses every change, whoever asks.
Who can do what
| Permission | In plain words |
|---|---|
See DigitalOcean (digitalocean:read) | Open the page and read every tab: projects, apps with their environment and domains, deployments, logs, droplets and their graphs, firewalls and reserved IPs. Check an account's token. |
Change DigitalOcean (digitalocean:write) | Connect, change and remove accounts; deploy, restart and roll back apps; change their environment and domains; power droplets; change firewalls and reserved IPs. |
Accounts belong to the whole workspace. Everyone who can see DigitalOcean sees every account. See People, roles and permissions.
What happens on its own
| Job | When | What it does |
|---|---|---|
account-health | Every 30 minutes | Checks each switched-on account's token with DigitalOcean. A working token reads working; a failing one reads failing with DigitalOcean's message. Nobody is notified: the badge on Accounts is the only sign. Switched-off accounts are not checked. |
Needs
Nothing else needs to be switched on. Changing a droplet's .env file (an agent tool) needs a device enrolled on that droplet.
What agents can do
Reads run straight away. Every change asks a person first, because the module holds a token. A change also needs an account set to read and write. When several accounts are on and a call names none, the tool refuses and lists them. No tool returns a token, a secret variable or a database's connection details. See Agents and approvals.
See the estate (read-only): digitalocean.accounts, digitalocean.overview, digitalocean.projects, digitalocean.projectResources, digitalocean.alerts, digitalocean.databases.
Apps and deployments (read-only): digitalocean.apps, digitalocean.app, digitalocean.deployments, digitalocean.deployment, digitalocean.logs, digitalocean.appEnv, digitalocean.appDomains.
Run apps (asks first):
digitalocean.deployAppstarts a new deployment, optionally without the cache.digitalocean.restartApprestarts running components without rebuilding.digitalocean.cancelDeploymentcancels a build still in progress.digitalocean.rollbackApprolls back to one of the last ten good deployments;digitalocean.commitRollbackmakes it permanent;digitalocean.revertRollbackundoes it.
App settings (asks first):
digitalocean.setAppEnvsets or unsets variables, from typed values or named secrets, then redeploys.digitalocean.addAppDomainanddigitalocean.removeAppDomainadd or remove a custom domain, then redeploy.
Droplets (read-only): digitalocean.droplets, digitalocean.dropletMetrics, digitalocean.dropletEnvJob (what a .env job changed, never a value).
Droplets (asks first):
digitalocean.dropletActionpowers on, shuts down, powers off, reboots or power-cycles a droplet.digitalocean.dropletEnvchanges a service's.envon a droplet through its enrolled device, then restarts it.
Network (read-only): digitalocean.firewalls, digitalocean.reservedIps.
Network (asks first): digitalocean.addFirewallRules, digitalocean.removeFirewallRules, digitalocean.attachFirewall, digitalocean.detachFirewall, digitalocean.assignReservedIp, digitalocean.unassignReservedIp. An unassigned reserved IP is still billed.