Managing Apps
Apps are the center of Dokku Pro. The web UI covers an app's whole lifecycle - deploying, configuring, scaling, and inspecting it - so you rarely need to drop to the command line. The dashboard lists every app and its status.
Overview and Lifecycle
Create and delete apps, with a typed confirmation before an app is destroyed. Deleting an app returns you to the app list and shows a toast; the app is marked "deleting" in the list until the background destroy finishes and it drops out.
From the Actions menu in the app header - and from the status row on the Overview tab - you can start, stop, restart, and rebuild the app. Stopping is always confirmed, and the available actions reflect whether the app is not deployed, running, stopped, or deploy locked. You can also toggle deploy locking and turn on maintenance mode, which serves a maintenance page to all visitors.
Any change that triggers a rebuild (environment variables, buildpacks, scaling, resource limits, or an explicit rebuild) runs as a queued background job. The UI surfaces each queued job as a toast with a link to follow it on the Activity tab, and reports when the job completes or fails.
Domains
Manage an app's domains with inline editing and a DNS hint for routing new domains.
TLS Certificates
A unified TLS tab switches between Let's Encrypt and a manually uploaded certificate. Let's Encrypt is enabled with a registration email and a production or staging ACME server, runs as a queued background job while the certificate is issued, and then shows the issued certificate's status, expiry, and covered hostnames along with a disable action. A manual certificate can be uploaded when Let's Encrypt is not managing the certificate, and admins can toggle the server-wide auto-renewal cron job.
Environment Variables
Environment variables are edited through batched staging: edits, additions, and unsets accumulate in a client-side draft instead of deploying one at a time. A Rows view offers masked values with reveal and mask controls, copy buttons, inline editing, per-variable staging chips, and a composer for staging new variables. A .env view edits the whole config as text and previews the delta before applying it back to the draft.
A commit bar summarizes the pending changes and deploys them together in a single
config:set when saved, requiring an explicit acknowledgement before any variable is unset,
or discards the draft entirely.
Scaling and Resources
Scale process counts and set memory limits, memory reserves, and CPU limits per process type.
Build Configuration
Configure how the app is built and run:
- Buildpacks, including their ordering.
- Builder selection and build directory configuration.
- Scheduler selection.
HTTP Basic Authentication
Protect an app with HTTP basic authentication, including allowed users and allowed IP addresses that bypass authentication.
Logs
View live logs with a source selector that switches the stream between application (container stdout/stderr), nginx access, and nginx error logs, plus process filtering for application logs and pause and follow controls. Logs stream over a WebSocket, so when a proxy or CDN blocks the connection the tab shows a connection-error banner with a Retry action and a link to the WebSocket requirements.
Activity
An Activity tab lists the app's recent commands in a master-detail layout: selecting a
command shows its context, status, timing, exit code, links to the related user and services,
and its lineage, and live-tails its logs while it runs or shows the full log once complete.
Viewing job logs requires the job:read permission; without it the tab shows an
access-denied message.
Settings
Rename an app from the Settings tab, with a typed confirmation and an option to skip the rebuild that would otherwise run afterwards. The rename runs as a queued background job, and the app's team access, webhook configuration, and activity history all follow it to the new name. Datastore linking with credential reveal is also managed here.