docs
Everything you need to ship.
Short and to the point — from first SSH connection to CI-triggered production deploys.
Guides
One page per question, from the first SSH connection to removing MihraOps from a server.
Connect a VPS over SSH
Add a Linux server to MihraOps with an SSH key or password, verify the host fingerprint and install Docker if the server does not have it yet.
ReadDeploy a Docker image
Pull an image from Docker Hub, GHCR or a private registry, set ports and environment variables, and start it on your server from the desktop.
ReadDeploy a Docker Compose stack
ProSend a docker-compose.yml to your server over SSH, deploy the whole stack and manage it from the desktop without a control panel.
ReadBind a domain with automatic HTTPS
ProPoint a domain at a container and get a Caddy reverse proxy with automatically renewed TLS certificates, configured over SSH.
ReadRedeploy from GitHub Actions
ProGive an application a deploy webhook and trigger a zero-downtime redeploy from GitHub Actions, GitLab CI or any pipeline that can send an HTTP request.
ReadMonitor a server and send email alerts
ProConfigure MihraOps Agent to watch CPU, memory, disk and Docker health on the server, keep incident state and send email with a Gmail app password or your SMTP account.
ReadZero-downtime blue-green releases
ProHow MihraOps starts the new container, waits for it to become healthy and switches traffic before the old one stops — and how it rolls back when something goes wrong.
ReadWhere your credentials live
What MihraOps keeps on your computer, what it stores on your server, and the short list of fields the license backend ever receives.
ReadTroubleshooting
Fixes for the failures people actually hit: SSH connection refused, host key mismatch, certificates that will not issue, webhooks that do nothing, licence activation errors.
ReadUninstall and clean up
What MihraOps leaves behind on your server, and the exact steps to remove all of it if you stop using the app.
ReadQuick start
- 01
Install and open MihraOps
Download the build for your OS and start it. The Free plan needs no account — you land directly on the server list.
- 02
Connect your server
Add the host or IP, SSH user and your key or password. MihraOps verifies the connection, detects Docker and shows live CPU, memory and disk.
- 03
Deploy your first app
Choose an image from Docker Hub or GHCR, set the port and environment variables, hit Deploy. Container status and logs stream into the app.
- 04
Bind a domain (Pro)
Point an A record at your server, enter the domain in MihraOps and the Caddy route plus HTTPS certificate are configured automatically.
Activate a Pro license
- 1.Buy Pro — the license key is emailed after payment is verified.
- 2.In MihraOps, open the License screen.
- 3.Paste the license key exactly as written in the receipt.
- 4.Check the device name and press Activate.
A license can be active on 1 device at a time. Switching machines? Deactivate the old device from the same screen first.
Deploy webhooks for CI
Every app in MihraOps can expose its own deploy webhook. When the URL receives a POST, the server pulls the newest image and redeploys — blue-green, so with zero downtime.
- 1.In the app settings, create the deploy webhook and copy the URL.
- 2.Add it to your repository as the MIHRAOPS_WEBHOOK_URL secret.
- 3.Append one step to your workflow after the image is pushed:
- name: Trigger MihraOps deploy
run: curl -X POST "${{ secrets.MIHRAOPS_WEBHOOK_URL }}"Treat the webhook URL like a password — anyone who has it can trigger a redeploy of that app.
The privacy boundary
MihraOps connects from your desktop directly to your server over SSH. The backend is used for licensing/updates and an anonymous daily usage tally derived from the update check; it is never in the path of your infrastructure.
Never sent to the backend: SSH private keys and passphrases, server passwords, Git tokens and Docker registry tokens.
Troubleshooting
“License not found” during activation
Copy the key exactly as it appears in the license email — no leading or trailing spaces. Still stuck? Contact us and we will look into it.
“Activation limit reached”
The license is already active on another device. Open its License screen and deactivate it, then activate the new machine.
The webhook does not trigger a deploy
Verify the secret contains the full URL, that your workflow sends a POST request, and that the image tag your app tracks was actually updated.
The Linux AppImage does not start
Make it executable first: chmod +x mihraops-latest.AppImage — then run it again.
Need a human?
Send a message through the contact page, or email us directly — we read every message ourselves.
Open the contact page