Docker Manager
Overview
Docker Manager lets users deploy containerized applications (Grafana, WordPress, Uptime Kuma, and more) onto their KVM instances directly from the control panel. Users can browse a community-driven app catalog, configure environment variables and port mappings, and deploy with a single click. The platform handles Docker installation, container orchestration, and real-time status reporting automatically.
Docker apps are a free feature bundled with instances -- there is no additional billing for running containers.
Admin Setup
App Catalog Source
The app catalog is fetched from a GitHub repository. The repository URL is configurable in System Settings. By default, it points to the community-maintained catalog at github.com/ReadyDedisLLC/hypervisor.io-docker-manager.
Each app in the repository contains:
app.json-- App metadata, environment variable definitions, and port mappingsdocker-compose.yml-- The Docker Compose configurationicon.png-- App icon (128x128)
The catalog is cached for 5 minutes to minimize API requests. Hosting providers can fork the repository and add custom applications specific to their platform.
Email Notifications
When a Docker app is successfully deployed, an email notification is sent to the instance owner containing:
- App name and instance IP
- Access URL (e.g.,
http://{instance-ip}:{host-port}) - Port mappings for all exposed services
- Credentials (environment variables marked as password type)
- A link back to the control panel
This uses the standard email template system -- customize the template under System Settings → Email Templates if needed.
Prerequisites
- A Linux instance with a cloud-init enabled image (Ubuntu 22.04+, Debian 12+, Rocky 9, AlmaLinux 9, etc.)
- The instance must be in a Running state to deploy apps
- Docker Engine must be installed on the instance (see next section)
Installing Docker on an Instance
Docker Engine and Docker Compose are installed automatically via cloud-init when the option is enabled during instance creation.
During Instance Creation
- On the instance creation form (Admin or User panel), locate the Install Docker Engine checkbox
- Check the box -- this is only available for Linux cloud-init images
- Create the instance as normal
Docker's official repository is added to the instance and docker-ce, docker-ce-cli, containerd.io, and docker-compose-plugin are installed during first boot.
If an existing instance was created without Docker, it can be reinstalled with the Docker checkbox enabled. Note that reinstalling will erase all data on the instance.
Verification
After the instance boots, verify Docker is installed by connecting via SSH:
docker --version
docker compose version
Supported Distributions
Docker installation via the official repository is supported on:
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
- Debian 12
- Rocky Linux 9
- AlmaLinux 9
The Docker Tab
Once Docker is enabled on an instance, a Docker tab appears in the instance management page (both Admin and User panels).
If the Docker tab is opened on an instance that was created without the "Install Docker" option, a notice is displayed explaining that Docker is not available and suggesting a reinstall with Docker enabled.
The Docker tab also requires the instance to be in a running state. If the instance is stopped or suspended, a notice will be displayed.
App Catalog
Click Deploy App to open the application catalog. The catalog displays a grid of available applications. Each app card shows:
- Icon and Name
- Category (monitoring, CMS, database, etc.)
- Short description
- Minimum requirements (RAM, storage)
Use the search bar to find apps by name or description. Filter by category using the category tabs (All, Databases, CMS, Monitoring, etc.).
Deploying an App
- Navigate to the Docker tab on the instance manage page
- Browse or search the app catalog
- Click on an app to open the Deploy modal
Environment Variables
The deploy modal displays input fields generated from the app's definition. Each variable includes:
- Label -- Human-readable name (e.g., "Admin Username")
- Type -- Text input or password input
- Default value -- Pre-filled when provided by the app definition
- Required flag -- Highlighted if the variable must be set
- Auto-generate button -- For password fields, click to generate a secure random value
Example for Grafana:
| Variable | Label | Default |
|---|---|---|
GF_SECURITY_ADMIN_USER | Admin Username | admin |
GF_SECURITY_ADMIN_PASSWORD | Admin Password | (auto-generate) |
Port Mappings
The modal also shows a table of port mappings from the app definition:
- Container Port -- Fixed, defined by the app (e.g.,
3000for Grafana) - Host Port -- Editable, defaults to the container port. Change this if the default port is already in use on the instance
- Protocol -- TCP or UDP
- Label -- What the port is for (e.g., "Web UI")
Deploying
Click Deploy to start the process. The app files are delivered to the instance, Docker Compose pulls the container images and starts the containers. Deployment status updates in real time via WebSocket -- no page refresh needed.
Apps are installed to /opt/docker-apps/{project-name}/ inside the instance.
Deploying a Custom Compose App
For applications not in the catalog:
- Click Custom Compose on the Docker tab
- Enter the Compose URL -- a direct link to a
docker-compose.ymlfile (e.g., a GitHub raw URL) - Enter an Application Name
- Optionally add environment variables as key-value pairs
- Optionally add port mappings (host port, container port, protocol)
- Click Deploy
The deployment process is identical to catalog apps.
Managing Deployed Apps
The top section of the Docker tab displays a table of all deployed apps on the instance.
Status Badges
| Status | Description |
|---|---|
| Pending | Deployment initiated, waiting to execute |
| Deploying | Docker Compose is pulling images and starting containers |
| Running | Containers are up and healthy |
| Stopped | Containers have been stopped |
| Error | Deployment failed -- check the error message for details |
Control Actions
Each deployed app has the following action buttons:
| Action | Description |
|---|---|
| Open App | Opens the application in a new browser tab using the instance IP and first mapped port |
| Check Status | Queries the current container status |
| Logs | Opens a live log viewer panel showing Docker Compose logs |
| Start | Starts stopped containers |
| Stop | Stops running containers |
| Restart | Restarts containers |
| Remove | Stops and removes containers, networks, volumes, and the deployment record |
Log Viewer
The log viewer panel displays Docker Compose logs in a dark-themed code editor. Click Refresh to fetch the latest logs, or close the panel when done.
Error Recovery
If a deployment fails, an error overlay appears on the app card with the error message and a Retry Deployment button. Click it to re-attempt the deployment with the same configuration.
Community Contributions
The app catalog is open-source and community-contributable. Hosting providers can fork the repository to maintain a custom catalog, or contribute apps back to the community. Each app requires:
app.json-- Metadata, environment variable definitions, port mappings, and supported distro listdocker-compose.yml-- The Docker Compose configurationicon.png-- App icon (128x128)
Each app in the catalog specifies its own supported_distros list. The deploy modal will warn if the instance OS is not in the app's supported list.