ZacharyZcR bfd441e1f3 Fix SSH host metrics authentication bug after credential changes
Problem: When users changed host authentication credentials, the main SSH
connection worked fine, but metrics collection failed with "All configured
authentication methods failed" error.

Root Cause: The metrics collection system (server-stats.ts) had its own
separate authentication implementation that only supported legacy password/key
fields and didn't integrate with the credential-based authentication system.

Solution:
- Remove duplicate HostRecord type, use unified SSHHostWithCredentials
- Import and use ssh-host.service for consistent credential resolution
- Update fetchAllHosts() to properly resolve credentials using getHostWithCredentials()
- Enhance buildSshConfig() with same authentication logic as main connections
- Add proper error handling for missing credentials
- Support both credential-based and legacy authentication methods

Benefits:
- Eliminates authentication logic duplication (follows "good taste" principle)
- Metrics collection now works after changing host credentials
- Uses single source of truth for credential resolution
- Maintains backward compatibility with legacy authentication
- Better error messages for debugging authentication issues

Now both main SSH connections and metrics collection use the same robust
authentication system, eliminating the authentication divergence that caused
the metrics failures.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 15:42:43 +08:00
2025-09-03 00:14:49 -05:00
2025-09-03 00:14:49 -05:00
2025-08-18 23:59:48 -05:00
2025-09-05 12:41:21 -05:00
2025-09-05 12:41:21 -05:00
2025-08-12 12:04:47 +02:00
2025-08-31 00:47:16 -05:00
2025-08-07 02:20:27 -05:00
2025-08-07 02:20:27 -05:00
2025-09-05 12:41:21 -05:00
2025-08-14 01:24:05 -05:00
2025-08-07 02:20:27 -05:00
2025-09-05 12:41:21 -05:00

Repo Stats

English English | 中文 中文

GitHub Repo stars GitHub forks GitHub Release Discord

Top Technologies

React Badge TypeScript Badge Node.js Badge Vite Badge Tailwind CSS Badge Docker Badge SQLite Badge Radix UI Badge


Termix Banner

If you would like, you can support the project here!
GitHub Sponsor

Overview

Termix Banner

Termix is an open-source, forever-free, self-hosted all-in-one server management platform. It provides a web-based solution for managing your servers and infrastructure through a single, intuitive interface. Termix offers SSH terminal access, SSH tunneling capabilities, and remote file editing, with many more tools to come.

Features

  • SSH Terminal Access - Full-featured terminal with split-screen support (up to 4 panels) and tab system
  • SSH Tunnel Management - Create and manage SSH tunnels with automatic reconnection and health monitoring
  • Remote File Editor - Edit files directly on remote servers with syntax highlighting, file management features (uploading, removing, renaming, deleting files)
  • SSH Host Manager - Save, organize, and manage your SSH connections with tags and folders
  • Server Stats - View CPU, memory, and HDD usage on any SSH server
  • User Authentication - Secure user management with admin controls and OIDC and 2FA (TOTP) support
  • Modern UI - Clean interface built with React, Tailwind CSS, and Shadcn
  • Languages - Built-in support for English and Chinese

Planned Features

  • Improved Admin Control - Give more fine-grained control over user and admin permissions, share hosts, etc
  • Theming - Modify theming for all tools
  • Improved Terminal Support - Add more terminal protocols such as VNC and RDP (anyone who has experience in integrating RDP into a web-application similar to Apache Guacamole, please contact me by creating an issue)
  • Mobile Support - Support a mobile app or version of the Termix website to manage servers from your phone

Installation

Visit the Termix Docs for more information on how to install Termix. Otherwise, view a sample docker-compose file here:

services:
  termix:
    image: ghcr.io/lukegus/termix:latest
    container_name: termix
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - termix-data:/app/data
    environment:
      PORT: "8080"

volumes:
  termix-data:
    driver: local 

Support

If you need help with Termix, you can join the Discord server and visit the support channel. You can also open an issue or open a pull request on the GitHub repo.

Show-off

Termix Demo 1 Termix Demo 2

Termix Demo 3 Termix Demo 4 Termix Demo 5

License

Distributed under the Apache License Version 2.0. See LICENSE for more information.

S
Description
Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities.
Readme 462 MiB
2026-01-01 04:20:12 +00:00
Languages
TypeScript 98.4%
JavaScript 0.8%
CSS 0.3%
Shell 0.3%