À propos du projet

Termix est une plateforme de gestion de serveurs gratuite, open-source et auto-hébergée, présentée comme une alternative auto-hébergée à Termius. Elle réunit terminaux SSH, bureaux à distance, transferts de fichiers, tunnels, gestion de conteneurs, métriques et automatisations dans une interface unique disponible sur le web, le desktop et le mobile. Capacités principales décrites dans le README : - Terminal SSH avec onglets de type navigateur et écran partagé (jusqu'à six panneaux), personnalisation du thème, de la police et des couleurs, et une barre d'outils par session affichant le CPU, la mémoire et le disque en direct, ainsi que des liens vers les fichiers, Docker, les tunnels et les métriques de cet hôte. - Support du bureau à distance pour RDP, VNC et Telnet dans le navigateur, avec onglets et écran partagé, un explorateur de fichiers de lecteur RDP avec téléversement par glisser-déposer, et lancement du client RDP natif sur le desktop Windows. - Tunnels SSH : transfert local, distant et SOCKS dynamique avec reconnexion automatique et vérifications de santé ; tunnels client-serveur stockés localement sur le desktop, avec préréglages pouvant être enregistrés côté serveur. - Gestionnaire de fichiers via SFTP : parcourir, éditer, téléverser, télécharger, renommer, déplacer, supprimer, avec support sudo et aperçus pour le code, les images, l'audio et la vidéo. Les transferts serveur à serveur s'exécutent dans un onglet dédié avec vérifications d'intégrité. L'application desktop offre des vues locales et distantes côte à côte. - Gestion des conteneurs Docker et Podman : démarrer, arrêter, mettre en pause, supprimer, statistiques et accès au shell. Le README précise explicitement qu'il ne vise pas à remplacer Portainer ou Dockge. - Gestionnaire d'hôtes avec étiquettes, dossiers imbriqués colorables, identifiants réutilisables, déploiement automatique de clés SSH, regroupement par hôte parent, édition/export en masse et Quick Connect pour les connexions ponctuelles non enregistrées. - Métriques d'hôtes : CPU, mémoire, disque, réseau, température, GPU NVIDIA, temps de fonctionnement, processus, ports, connexions et informations système sur la plupart des serveurs Linux, avec graphiques d'historique. Les cartes du gestionnaire couvrent les services, les tâches cron, les paquets, les utilisateurs, les règles de pare-feu, WireGuard, Tailscale, les certificats SSL, les journaux et les vérifications de santé. - Automatisations : les déclencheurs incluent les seuils de métriques, la montée/descente d'hôtes, les changements de vérifications de santé, les plannings, les événements de conteneurs et les webhooks entrants. Les étapes peuvent exécuter des commandes et des extraits, contrôler des conteneurs et des tunnels, réveiller des hôtes, appeler des URL, attendre, bifurquer sur des conditions, exécuter d'autres automatisations et notifier via ntfy, Discord ou webhook. Les exécutions de test sont prises en charge. - Flottes : regrouper des hôtes manuellement ou par règles d'étiquettes afin que les nouveaux hôtes rejoignent automatiquement ; exécuter une commande sur tous les hôtes, pousser/tirer des fichiers, installer des paquets et collecter un inventaire OS/noyau/architecture/temps de fonctionnement. - Assistant IA optionnel, désactivé par défaut. Prend en charge OpenAI, Anthropic, Gemini, Ollama ou tout point de terminaison compatible OpenAI. Il lit les hôtes, flottes, extraits et alertes et propose des modifications pour approbation plutôt que de les appliquer ; il ne peut pas accéder aux identifiants, utilisateurs ou paramètres. Les administrateurs peuvent le désactiver à l'échelle de l'instance. - Authentification et utilisateurs : comptes locaux plus connexion OIDC, LDAP, GitHub et Google, avec 2FA TOTP, passkeys WebAuthn et appareils de confiance. Les administrateurs peuvent gérer les utilisateurs, mapper les groupes OIDC aux rôles, voir et révoquer les sessions actives, lier les comptes locaux et OIDC, et lire un journal d'audit. - Rôles et partage : les rôles peuvent être partagés avec des utilisateurs ou des rôles à quatre niveaux (connecter, voir, éditer, gérer), à travers les types d'authentification et les protocoles, avec des remplacements d'identifiants pour les hôtes partagés. - Alertes sur les métriques d'hôtes telles que le CPU, la mémoire et le disque, livrées via ntfy, Discord ou webhook, avec un journal d'historique déclenché/résolu. - Page d'accueil : une grille de widgets par glisser-déposer avec des widgets pour l'état des hôtes, les pings, les liens de services, les signets, la recherche, les horloges, les calendriers, les compte à rebours, les notes, RSS, météo, images, iframes, Docker, tunnels, graphiques de métriques, API personnalisées et un terminal en direct. - Extraits et outils : commandes enregistrées avec variables d'hôte et personnalisées, exécution en un clic, exécution d'une commande sur tous les terminaux ouverts, et historique de commandes consultable avec autocomplétion. - Partage de sessions : partager des sessions terminal, RDP, VNC ou Telnet en direct via des liens sans compte ou avec des utilisateurs Termix spécifiques, en mode lecture seule ou lecture-écriture, avec expiration et révocation, et désactivation globale ou par hôte. - Enregistrement de sessions et journaux pour les sessions terminal, RDP et VNC avec lecture, téléchargement de journaux en texte brut et journaux de connexion. - Connexions série pour routeurs, commutateurs et microcontrôleurs avec débit en bauds, bits de données, bits d'arrêt et parité configurables, utilisant l'API Web Serial ou un backend desktop natif. - Intégration Tailscale : importer les appareils du tailnet comme hôtes et se connecter via Tailscale SSH afin que les ACL régissent l'accès sans identifiants stockés ; Headscale et les points de terminaison personnalisés sont pris en charge. - Intégration Proxmox : importer des hôtes depuis une instance Proxmox et voir les statistiques CPU, mémoire et stockage des nœuds et invités. - Espaces de travail et onglets : enregistrer des ensembles d'onglets avec mises en page fractionnées et les rouvrir ; la dernière session est mémorisée entre les actualisations et les appareils. - Un CLI `termix` installable via `npm install -g @termix-cli/cli` ou un binaire autonome, pour ouvrir des terminaux, exécuter des commandes sur un hôte ou une flotte, déplacer des fichiers via SFTP et gérer les hôtes, extraits et identifiants. - Sécurité : chiffrement par utilisateur des mots de passe et clés, avec chiffrement optionnel de la base de données sur disque. - Environ 30 langues intégrées gérées via Crowdin. Fonctionnalités supplémentaires listées : tableau de bord, graphe réseau, moniteur tmux, clés API limitées à l'utilisateur avec expiration, export/import, SSL automatique avec redirections HTTPS ou certificats apportés, SQLite par défaut avec support PostgreSQL et MySQL, interface React avec thèmes clair/sombre/Dracula et URL plein écran, palette de commandes (double appui sur la touche Maj gauche), raccourcis clavier réassignables, Wake-on-LAN, authentification par proxy de confiance, marque blanche, points de terminaison web intégrés, salles de collaboration et fonctionnalités SSH étendues (hôtes de rebond, Warpgate, invites TOTP, SOCKS5, vérification de clé d'hôte, OPKSSH, tmux, port knocking, transfert d'agent, agent SSH Bitwarden, signature SSH HashiCorp Vault, Step CA, 1Password Connect). Termix ID fournit un identifiant intégré de type sshid.io avec publication de clé publique et émission de certificats depuis une AC intégrée. L'application desktop peut fonctionner de manière autonome avec un backend et une base de données locaux et se synchroniser optionnellement avec un serveur Termix. La prise en charge des plateformes couvre les navigateurs web avec support PWA ; Windows (portable, MSI, Chocolatey) ; Linux (portable, AUR, AppImage, Deb, Flatpak) ; macOS (App Store, DMG, Homebrew) ; iOS/iPadOS ; et Android (Play Store, APK). La documentation d'installation est sur docs.termix.site/install, avec un chart Helm dans `charts/termix` pour Kubernetes. Un exemple de fichier Docker Compose exécute l'image Termix aux côtés de guacd pour les fonctionnalités de bureau à distance. Télémétrie : un ping quotidien anonyme inclut un identifiant d'instance aléatoire, les nombres d'utilisateurs et d'hôtes, la version de l'application et les fonctionnalités utilisées au cours des dernières 24 heures ; il exclut les noms d'utilisateur, noms d'hôtes, adresses IP et identifiants. Il est activé par défaut et peut être désactivé dans les paramètres d'administration ou via `ENABLE_TELEMETRY=false`. Sous licence Apache License 2.0. Le projet est soutenu par des dons, sans abonnements ni plans payants.