--- title: "Termix SSH Management Platform" description: "Setup and configuration reference for Termix, a self-hosted web-based SSH management platform on LXC 210 (10.10.0.210:8180). Covers deployment, host import, terminal/file/Docker features, RBAC/2FA security, NPM integration, backup/restore, and troubleshooting." type: reference domain: server-configs tags: [termix, ssh, docker, lxc, web-terminal, server-management, security] --- # Termix - SSH Server Management Platform **LXC 210 (n8n)** | **10.10.0.210:8180** | **termix.manticorum.com** Self-hosted, open-source alternative to Termius for comprehensive SSH server management with web-based terminal, file management, Docker control, and monitoring. ## Quick Info | Property | Value | |----------|-------| | **Type** | Docker container on n8n LXC | | **Host OS** | Ubuntu (LXC 210) | | **Host IP** | 10.10.0.210 | | **Port** | 8180 (internal) | | **Public URL** | https://termix.manticorum.com | | **Termix Version** | 1.11.0 (via Docker) | | **Reverse Proxy** | Nginx Proxy Manager (10.10.0.16) | ## Deployment Details - **Deployed on**: Existing n8n LXC (210) to save resources - **Shares container with**: n8n, omni-tools - **Docker compose**: `/opt/termix/docker-compose.yml` - **Data directory**: `/opt/termix/data/` ## Services ### Termix Web App - **Port**: 8080 (internal) - **Tech Stack**: TypeScript/React, SQLite database - **Data**: `/opt/termix/data` (encrypted SQLite) - **Config**: Environment variables in docker-compose ### Docker Engine - Required to run Termix container - Manages Termix app lifecycle ## Management ### Access Container ```bash ssh root@10.10.0.210 # or via Proxmox pct enter 210 ``` ### Service Management ```bash # Status cd /opt/termix docker compose ps # Restart docker compose restart # Logs docker compose logs -f # Stop/Start docker compose down docker compose up -d ``` ### View Termix Logs ```bash docker compose logs -f termix ``` ## Configuration ### Docker Compose Location `/opt/termix/docker-compose.yml` ### Environment Variables Created in `/opt/termix/.env` (if needed): ```env # Termix configuration TERMIX_PORT=8080 # Add any custom env vars as needed ``` ### Data Persistence All Termix data is stored in `/opt/termix/data`: - **Database**: Encrypted SQLite with server credentials - **SSH Keys**: Generated and managed by Termix - **User Settings**: RBAC, 2FA settings, preferences ## Features & Usage ### SSH Terminal - Full-featured web terminal with split-screen (up to 4 panels) - Tab-based interface for multiple sessions - Copy/paste support - Session reconnection ### SSH Tunneling - Create local and remote tunnels - Automatic reconnection with health monitoring - Persistent tunnel configuration ### File Management - Upload/download files via web interface - Remote file editing with syntax highlighting - View code and media files directly - Directory navigation and operations ### Docker Management - List containers across connected servers - Start/stop/pause/remove containers - Exec into containers with web terminal - View container logs and stats ### Server Monitoring - Real-time CPU, memory, disk, network usage - Server uptime tracking - Firewall status visibility - Custom dashboards with network graphs ### Host Management - Save SSH connections with tags and folders - Automated SSH key deployment - Organize servers by environment, project, or location - Quick connect from saved hosts ### Security Features - **RBAC**: Role-based access control for multi-user - **2FA**: TOTP authentication support - **OIDC**: Single sign-on integration - **Encryption**: All credentials encrypted in database ## Initial Setup ### First Login 1. Navigate to https://termix.manticorum.com 2. Create admin account on first run 3. **Important**: Enable 2FA immediately after account creation ### Add Your First Server 1. Click "Add Host" or "+" 2. Enter connection details: - **Hostname**: Server IP or hostname (e.g., `10.10.0.33`) - **Port**: 22 (default SSH) - **Username**: SSH user (e.g., `cal` or `root`) - **Auth**: SSH key (recommended) or password 3. Test connection 4. Organize with tags (e.g., `proxmox`, `docker`, `production`) ### Deploy SSH Keys Termix can generate and deploy SSH keys to your servers: 1. Generate key pair in Termix 2. Use "Deploy SSH Key" feature 3. Termix will add the key to `~/.ssh/authorized_keys` on target server ### Organize Servers Create folders for organization: - **By Environment**: `production/`, `development/`, `homelab/` - **By Function**: `docker-hosts/`, `databases/`, `proxmox/` - **By Location**: `local/`, `cloud/` ## Quick Import: All Home Lab Servers A pre-configured JSON import file is available with all your home lab servers: **File**: `server-configs/termix/homelab-hosts-import.json` ### Import Instructions 1. Log into Termix at https://termix.manticorum.com 2. Go to **Settings** → **Import/Export** 3. Click **Import Hosts** 4. Upload `homelab-hosts-import.json` 5. All 12 servers will be imported with: - Organized folders (Infrastructure, LXC Containers, VMs, Cloud) - Appropriate tags for filtering - Docker management enabled for Docker hosts - File manager with correct default paths - System monitoring enabled - Database tunnel pre-configured for strat-database ### After Import: Configure SSH Keys The import uses SSH key authentication. After importing: 1. Go to each host in Termix 2. Edit host settings 3. Add your SSH private key or generate a new one in Termix 4. Use Termix's "Deploy SSH Key" feature to add keys to servers **Or** use password authentication temporarily: - Edit each host and change `authType` to "password" - Add password in the password field - Later switch to SSH keys for security ### Included Servers | Server | IP | User | Folder | Features | |--------|-----|------|--------|----------| | proxmox | 10.10.0.11 | root | Infrastructure | ⭐ Pinned, Monitoring | | ubuntu-manticore | 10.10.0.226 | cal | Physical Servers | ⭐ Pinned, Docker, Media | | n8n | 10.10.0.210 | root | LXC Containers | ⭐ Pinned, Docker, Automation | | discord-bots | 10.10.0.33 | cal | Virtual Machines | Docker, Dev Bots | | sba-bots | 10.10.0.88 | cal | Virtual Machines | ⭐ Pinned, Docker, Production | | strat-database | 10.10.0.42 | cal | Virtual Machines | Docker, Database, Tunnel | | arr-stack | 10.10.0.221 | root | LXC Containers | Docker, Media Automation | | foundry-lxc | 10.10.0.223 | root | LXC Containers | Docker, Gaming | | openclaw | 10.10.0.224 | root | LXC Containers | Docker, AI Assistant | | gitea | 10.10.0.225 | root | LXC Containers | Git Server, CI/CD | | home-assistant | 10.0.0.28 | root | Virtual Machines | Smart Home | | akamai | 172.237.147.99 | root | Cloud Servers | Docker, Public Cloud | ## Backup ### What to Backup 1. **Termix database**: `/opt/termix/data/` (contains all settings, credentials, SSH keys) 2. **Docker compose**: `/opt/termix/docker-compose.yml` 3. **Environment**: `/opt/termix/.env` (if exists) ### Backup Commands ```bash # Full data directory (includes encrypted database) tar -czf termix-backup-$(date +%Y%m%d).tar.gz /opt/termix # Database only cp /opt/termix/data/termix.db /backups/termix-db-$(date +%Y%m%d).db ``` ### Restore ```bash # Stop Termix cd /opt/termix docker compose down # Restore data tar -xzf termix-backup.tar.gz -C / # Start Termix docker compose up -d ``` ## Upgrades ### Update Termix ```bash cd /opt/termix # Pull latest image docker compose pull # Restart with new image docker compose down docker compose up -d # Check logs for successful start docker compose logs -f ``` ### Check Version View version in Termix web UI: Settings → About ## Integration with NPM Configure reverse proxy on NPM (10.10.0.16): - **Domain**: termix.manticorum.com - **Scheme**: http - **Forward Hostname/IP**: 10.10.0.210 - **Forward Port**: 8180 - **SSL**: Let's Encrypt - **Websockets**: ✅ **MUST BE ENABLED** (required for terminal sessions) - **Block Common Exploits**: Enabled - **Cache Assets**: Disabled (for real-time terminal) ## Troubleshooting ### Container won't start ```bash # Check logs docker compose logs # Common issues: # - Port 8080 already in use # - Missing /opt/termix/data directory # - Permissions on data directory ``` ### Can't connect to servers from Termix ```bash # Ensure Termix container has network access docker exec -it termix ping 10.10.0.11 # Check SSH from container docker exec -it termix ssh -v user@server-ip # Verify firewall rules on target servers ``` ### 502 Bad Gateway on web ```bash # Check Termix is running and listening docker compose ps docker compose logs # Test local connection curl http://localhost:8080 # Verify NPM can reach container curl http://10.10.0.226:8080 ``` ### Terminal sessions disconnect - Ensure websockets are enabled in NPM - Check for network connectivity issues - Verify Termix auto-reconnect settings ### Database corruption ```bash # Stop Termix docker compose down # Restore from backup cp /backups/termix-db-YYYYMMDD.db /opt/termix/data/termix.db # Start Termix docker compose up -d ``` ## Security Notes - All credentials are encrypted in SQLite database - SSH keys are stored securely within Termix - Enable 2FA for all users - Use SSH key authentication instead of passwords where possible - LXC is unprivileged for better isolation - Termix only accessible via HTTPS through NPM - Consider restricting NPM access to internal network only ## Advanced Configuration ### OIDC Integration For single sign-on with external identity provider: 1. Configure OIDC provider (e.g., Authelia, Keycloak) 2. Add OIDC settings to Termix via environment variables 3. Enable OIDC login in Termix settings ### Custom Themes Termix uses Tailwind/Shadcn UI. Themes can be customized if building from source. ### Multi-User Setup 1. Create user accounts in Termix admin panel 2. Assign roles (Admin, User, Viewer) 3. Set per-user server access permissions 4. Enforce 2FA for all users ## Related Documentation - [Official Termix GitHub](https://github.com/Termix-SSH/Termix) - [Termix Documentation](https://github.com/Termix-SSH/Termix/wiki) (check for wiki) - [Proxmox LXC Config](../proxmox/lxc/226.conf) - [Networking Setup](../../networking/CONTEXT.md) ## Deployment Date **Created**: 2026-02-03 **By**: Claude Code (Proxmox Skill) **Tech**: Termix (Docker) on Ubuntu 22.04 LXC ## Next Steps After deployment: 1. ✅ Create LXC 226 on Proxmox 2. ✅ Install Docker and Docker Compose 3. ✅ Deploy Termix via docker-compose 4. ⬜ Configure NPM reverse proxy 5. ⬜ Set up first admin account 6. ⬜ Enable 2FA 7. ⬜ Add home lab servers to Termix 8. ⬜ Deploy SSH keys to managed servers 9. ⬜ Organize servers with tags and folders 10. ⬜ Test terminal, file management, Docker control features