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.

Read

Deploy 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.

Read

Deploy a Docker Compose stack

Pro

Send a docker-compose.yml to your server over SSH, deploy the whole stack and manage it from the desktop without a control panel.

Read

Bind a domain with automatic HTTPS

Pro

Point a domain at a container and get a Caddy reverse proxy with automatically renewed TLS certificates, configured over SSH.

Read

Redeploy from GitHub Actions

Pro

Give 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.

Read

Monitor a server and send email alerts

Pro

Configure 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.

Read

Zero-downtime blue-green releases

Pro

How 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.

Read

Where 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.

Read

Troubleshooting

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.

Read

Uninstall 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.

Read

Quick start

  1. 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.

  2. 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.

  3. 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.

  4. 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. 1.Buy Pro — the license key is emailed after payment is verified.
  2. 2.In MihraOps, open the License screen.
  3. 3.Paste the license key exactly as written in the receipt.
  4. 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. 1.In the app settings, create the deploy webhook and copy the URL.
  2. 2.Add it to your repository as the MIHRAOPS_WEBHOOK_URL secret.
  3. 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