Termix is a self-hosted, open-source platform that consolidates server administration tasks—SSH terminal, remote desktop (RDP/VNC), file management, and Docker control—into a single web-based interface. Designed for sysadmins, DevOps engineers, and homelab enthusiasts, it eliminates the need for multiple tools by providing a unified, secure, and cross-platform way to manage remote infrastructure.
Built with React, Tailwind CSS, and Shadcn, Termix runs as a web app, desktop application (Windows, macOS, Linux), PWA, or mobile app (iOS/Android). It uses encrypted SQLite for data storage, supports OIDC and TOTP authentication, and includes automatic SSL via Let’s Encrypt. Deployment is flexible via Docker, AppImage, MSI, AUR, or Homebrew, making it ideal for both personal and team environments.
What You Get
- SSH Terminal Access - Full-featured browser-based terminal with split-screen (up to 4 panels), tabbed sessions, custom themes, fonts, and persistent tabs that survive refreshes.
- Remote Desktop Access - Native RDP, VNC, and Telnet support over the browser with split-screen and full customization, powered by Guacamole backend.
- SSH Tunnel Management - Create and monitor SSH tunnels with automatic reconnection, health checks, and support for -l (local) and -r (remote) port forwarding.
- Remote File Manager - Browse, edit, upload, download, rename, and delete files on remote servers with sudo privileges; supports code, images, audio, and video files.
- Docker Management - Start, stop, pause, and remove containers; view live stats and execute commands inside containers via integrated terminal (not a full replacement for Portainer).
- SSH Host Manager - Organize SSH connections with tags, folders, and reusable credentials; automate SSH key deployment and manage jump hosts and Warpgate connections.
- Server Stats Dashboard - Real-time monitoring of CPU, memory, disk, network, uptime, firewall rules, and open ports on Linux-based servers.
- RBAC & User Authentication - Role-based access control with admin controls, OIDC integration (e.g., Google, Auth0), TOTP 2FA, session monitoring, and account linking.
- Database Encryption - All server credentials and configuration stored in encrypted SQLite files with documented security practices.
- Automatic SSL Setup - Built-in Let’s Encrypt certificate generation and HTTPS redirection with no manual configuration required.
- Multi-Platform Support - Available as web app, desktop (Windows, macOS, Linux), PWA, and native mobile apps (iOS, Android) with offline capability.
- Command Palette & Snippets - Quick-access command palette (double-shift), reusable command snippets, and batch execution across multiple terminals.
- Network Graph - Visualize your homelab topology by mapping SSH connections with real-time status indicators on the dashboard.
- Data Export/Import - Export and import SSH hosts, credentials, and file manager data for backup or migration between installations.
- Multi-Language Support - Built-in localization for ~30 languages via Crowdin, with community-driven translations.
Common Use Cases
- Managing a homelab server farm - A home user uses Termix to monitor and control 10+ Linux servers via SSH, view real-time stats, and edit config files—all from a single dashboard with network visualization.
- Remote development team collaboration - A DevOps team shares SSH access to production servers using RBAC roles, TOTP 2FA, and encrypted storage to ensure secure, auditable access without exposing SSH ports to the public internet.
- Running a personal cloud server - A sysadmin uses Termix’s file manager and Docker controls to manage a self-hosted Nextcloud and media server, accessing files and containers without installing additional tools.
- Mobile server administration on the go - A field technician connects to remote Linux devices via Termix’s iOS/Android app to restart services, view logs, and transfer files using SSH and file manager—all without a laptop.
Under The Hood
Architecture
- Modular monorepo structure with clear separation between frontend and backend layers, isolating applications like TerminalApp and GuacamoleApp in dedicated feature folders
- Dependency injection via service providers reduces coupling to low-level SSH libraries, promoting testable and maintainable connection logic
- React components follow atomic design principles, composing reusable UI primitives into feature-specific apps through composition
- Unified type system and URL-based state management enable shared core logic between Electron and web clients, supporting deep linking and dynamic routing
- Backend services adopt functional, single-responsibility patterns to abstract system commands into structured metrics
- Theme system leverages Tailwind CSS with custom CSS variables to ensure consistent theming across desktop, mobile, and web interfaces without duplication
Tech Stack
- React 18 and TypeScript frontend powered by Vite, with Radix UI and Tailwind CSS for robust component styling and theming
- Express.js backend with Drizzle ORM and better-sqlite3 for type-safe, local-first database interactions
- Electron-based desktop packaging with native support for Windows, Linux, and macOS, including custom notarization workflows
- XTerm.js and Monaco Editor integrated for terminal emulation and in-browser code editing
- Comprehensive build tooling with modular TypeScript configs, ESLint, Prettier, and Commitlint for code consistency
- Docker-based development environment with volume mounting and multi-port exposure for SSH tunneling and persistent data
Code Quality
- Code is well-organized with clear separation of concerns, but error handling is largely reactive, relying on generic try-catch blocks without custom error types or graceful recovery
- Naming conventions are consistent and descriptive, though TypeScript type safety is inconsistently enforced across modules
- Critical logic such as permission validation and SSH session management lacks unit or integration tests, reducing confidence in long-term reliability
- Linting and static analysis are implied through tooling configurations, but explicit rules and pre-commit hooks are not evident
- Utility functions like PermissionManager demonstrate architectural foresight, yet their absence from test suites poses maintainability risks
What Makes It Unique
- Native GitHub-based alert system that dynamically fetches and caches documentation-driven advisories without requiring a dedicated backend
- Unified terminal and file management interface with deep SSH integration, enabling real-time remote file diffing and editing over a single persistent connection
- Adaptive UI that intelligently switches layouts between desktop and mobile based on window size, with intelligent debounce to prevent visual flickering
- Permission system with wildcard role-based access control and automatic permission expiration via database triggers
- Embedded Guacamole support for RDP/VNC/Telnet protocols, unifying multiple remote access methods under a single extensible framework
- Custom Tailwind theme with deep CSS variable-based theming for sidebar, card, and overlay components, supporting seamless dark/light mode transitions