Why self-host your SSH console
A desktop SSH client keeps your hosts and keys on a single computer; a cloud service like Termius syncs them through a third party, for a per-user subscription. Termix takes the third road: a server you host, reachable from any browser, the desktop app or a phone, with accounts and role-based sharing for the whole team.
Running it on a VPS rather than on a machine inside the network it manages has one simple advantage: when that network goes down, the console stays reachable. That is exactly when you need it.
What Termix gives you
- SSH terminal — tabs, split screen, history, a command palette and reusable snippets.
- SFTP files — browse, edit and transfer files, including from one server to another.
- Docker — container list, logs, stats and console over SSH, with no agent to install.
- Metrics — live CPU, memory, disk and network for every host.
- Credential vault — passwords and keys encrypted per user and reusable across hosts.
- Teams — accounts, roles, four-level host sharing, audit log, TOTP and passkeys.
- Plugins — RDP/VNC remote desktop, SSH tunnels, Kubernetes, Proxmox, OIDC SSO, enabled as you need them.
Termix, Termius or a desktop SSH client?
Scroll the table
| Termix (self-hosted) | Termius | Desktop SSH client | |
|---|---|---|---|
| Where your hosts and keys live | On your VPS | Synced through the vendor's service | On a single computer |
| Licence | Apache-2.0, open source | Proprietary | Varies (OpenSSH, PuTTY: free) |
| Cost | The price of the VPS | Subscription for sync and teams | Free |
| Access from a browser | Yes | No, app to install | No |
| Team host sharing | Yes, roles and audit log | Yes, team plans | No |
| Docker, SFTP files, metrics | Built in through plugins | SFTP, no Docker | Separate tools |
Prerequisites
An Ubuntu 24.04 VPS with 1 GB of RAM and 2 GB of disk is enough: Termix uses about 330 MB at idle. You need Docker with the Compose plugin, plus a hostname for HTTPS access — a sub-domain of one of your domains, or the free sub-domain that comes with a ServOrbit VPS.
Install Termix with Docker Compose
Create the Compose file
Create an
/opt/termixdirectory and put the followingdocker-compose.ymlin it. The port is published on the loopback only: nginx exposes it over HTTPS.services: termix: image: ghcr.io/termix-ssh/termix:26.10.4 restart: unless-stopped ports: - "127.0.0.1:8080:8080" environment: PORT: "8080" volumes: - termix-data:/app/data volumes: termix-data: {}Start the container
Start Termix and follow its boot:
docker compose up -d docker compose logs -f termixOn first start, Termix generates its own secrets (JWT, database key, encryption key) and stores them in the
/app/datavolume. The lineTermix backend started successfullytells you it is ready, within seconds.Publish Termix over HTTPS
In the
serverblock of your nginx vhost, proxy traffic to the container. TheUpgradeandConnectionheaders are required: the terminal runs over WebSockets.location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 1h; }Then get a certificate (Certbot or similar). When you install from the ServOrbit Marketplace, this step is done for you.
Create the administrator account
Open your HTTPS address: Termix shows the sign-up form, and the first account created becomes the administrator. Create it right away, then turn off public registration in the admin settings. Then add a host (address, SSH port, user, key or password): the terminal opens in a tab.
Close the door right after installing
As long as no account exists, anyone who reaches the address can create the administrator account. Create yours as soon as the installation finishes, turn off registration, then enable TOTP or a passkey. A console that holds your SSH keys deserves the same protection as the servers themselves.
Back up and update
All the data — SQLite database, generated encryption keys, plugins — lives in the termix-data volume. Archive it regularly:
docker run --rm -v termix_termix-data:/data -v "$PWD":/backup alpine \
tar czf /backup/termix-$(date +%F).tar.gz -C /data .Keep that archive somewhere safe: without the keys it holds, saved credentials can no longer be decrypted. To update, change the image tag in the Compose file, then run docker compose pull && docker compose up -d.
The plugins to turn on first
Termix ships with its official plugins; an administrator enables, updates or removes them from the Plugins tab. For a first install on a VPS, four are often enough: SSH Terminal and File Manager for daily work, Docker to drive your servers' containers without opening a session, and Host Metrics to see at a glance which server is saturated.
Next come the ones that serve a team: TOTP and Passkeys for two-factor authentication, Single sign-on to plug in an OpenID Connect provider you already host (Authentik, Pocket ID, ZITADEL), and Session Recording if you need a record of a contractor's work. Turn off what you do not use: every disabled plugin is one less surface to maintain, and the Usage Statistics plugin, which sends a small anonymous daily report, can be switched off like the others.
Troubleshooting
The terminal opens and closes right away. The reverse proxy is not forwarding WebSockets: check the Upgrade and Connection headers in the nginx vhost, then reload nginx with nginx -t && systemctl reload nginx.
Connecting to a host fails. From the VPS, first try the same connection on the command line (ssh -p <port> <user>@<host>): if it fails too, the problem is the firewall or the key, not Termix. For a host only reachable from your internal network, go through a bastion or a VPN such as WireGuard.
Saved credentials no longer open after a restore. The restored volume is missing the encryption keys generated on first start: restore the whole termix-data volume, never the SQLite database alone.
The interface stops responding. Read the logs with docker compose logs --tail 100 termix: on start-up Termix logs every stage (database, plugins, backend), and the last line shown tells you where it stopped.
One-click install from the ServOrbit Marketplace
The ServOrbit Marketplace installs Termix on your VPS with no command line: it deploys the container, configures nginx over HTTPS with WebSockets and gives you the access address in your client area. Pick a sub-domain of one of your domains or the VPS's free sub-domain, then create your administrator account on first access.