Termix
Plugin-based server management tool that you host yourself.
- Replaces
-
Paid SSH client services, such as Termius.
All open-source alternatives to Termius
- Difficulty
-
Difficulty: Easy
1 service, 1 volume mount, no env values to set, no elevated host access. Heuristic score 0 of 11: easy.
- Stack
TypeScript (language)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
Apache-2.0(OSI-approved open source) - Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/Termix-SSH/Termix/blob/7b7b17e/README.md, read on .
- Repository
GitHub stats
- Stars
- 15,619
- Forks
- 754
- Open issues and pull requests
- 11
- Last push
- 2026-10-22
- Latest release
- v26.10.4
- Released
- 2026-10-21
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as Apache-2.0.
Compose file
services:
termix:
image: ghcr.io/termix-ssh/termix:latest
container_name: termix
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- termix-data:/app/data
environment:
PORT: "8080"
# Multi-instance deployments should point every backend at the same
# Redis. Without it, collaboration rooms keep their single-instance
# in-memory fallback.
# REDIS_URL: "redis://redis:6379"
# TERMIX_REDIS_PREFIX: "termix:collab"
# TERMIX_STEP_CA_REDIS_PREFIX: "termix:step-ca"
# Hardened deployments can require keys from environment variables or
# Docker secrets mounted through JWT_SECRET_FILE, DATABASE_KEY_FILE,
# ENCRYPTION_KEY_FILE and INTERNAL_AUTH_TOKEN_FILE.
# TERMIX_REQUIRE_EXTERNAL_SECRETS: "true"
# Trusted reverse-proxy authentication is disabled by default. When
# enabled, do not expose this container directly to untrusted clients.
# TRUSTED_PROXY_AUTH_ENABLED: "true"
# List the address your authenticating proxy connects from, as this
# container sees it (for a proxy container on termix-net, its IP there).
# Keep it narrow: published ports can reach the container from the
# Docker gateway, so do not trust whole private ranges.
# TRUSTED_PROXY_AUTH_TRUSTED_PROXIES: "172.20.0.10"
# TRUSTED_PROXY_AUTH_ROLE_MAP: '{"operators":["user"]}'
# TRUSTED_PROXY_AUTH_USERNAME_HEADER: "x-forwarded-username"
# TRUSTED_PROXY_AUTH_ROLE_HEADER: "x-forwarded-role"
networks:
- termix-net
volumes:
termix-data:
driver: local
networks:
termix-net:
driver: bridge
From the app's own repository: github.com/Termix-SSH/Termix/blob/7b7b17e/docker/docker-compose.yml.
Compose file from the app repository.
Install
- Docker with the Compose plugin (github.com/Termix-SSH/Termix/blob/7b7b17e/docker/docker-compose.yml)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the compose file as docker-compose.yml (github.com/Termix-SSH/Termix/blob/7b7b17e/docker/docker-compose.yml)
Use the compose file shown above.
- Start it (github.com/Termix-SSH/Termix/blob/7b7b17e/docker/docker-compose.yml)
docker compose up -d - Open the app (github.com/Termix-SSH/Termix/blob/7b7b17e/docker/docker-compose.yml)
Open http://localhost:8080. The compose file publishes host port 8080 for the termix service.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: termix: ghcr.io/termix-ssh/termix:latest. A later pull can get a different version. (github.com/Termix-SSH/Termix/blob/7b7b17e/docker/docker-compose.yml, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 8080 (termix). A port without a host address listens on all host network interfaces. (github.com/Termix-SSH/Termix/blob/7b7b17e/docker/docker-compose.yml, checked 2026-10-22)
Signals
- Open issues and pull requests: 11
- Last push: 2026-10-22 (0 days before this page was built)
- Latest release: v26.10.4 on 2026-10-21 (0 days before this page was built)