Blog

tTerm fonctionne désormais dans le navigateur

Jusqu’ici, tTerm vivait dans Telegram : des commandes vers vos serveurs, directement depuis une conversation. Aujourd’hui, nous ouvrons tTerm Web, un vrai terminal dans votre navigateur. Tous vos serveurs et ordinateurs dans un seul onglet, chaque commande dans son propre bloc, et aucune clé sur votre appareil.

Voici tTerm Web : les machines par projet à gauche, les onglets en haut, chaque commande dans son propre bloc.

Pourquoi un navigateur alors qu’il y a un bot

Le bot est très pratique quand vous n’avez qu’un téléphone sous la main : redémarrer un service, vérifier l’espace disque, répondre à la question d’un installateur. Mais un travail plus long réclame un grand écran : plusieurs onglets côte à côte, vim et htop en plein écran, un historique où l’on retrouve facilement la commande de la veille.

C’est à cela que sert tTerm Web. Il s’ouvre dans n’importe quel navigateur, sur un ordinateur portable, une tablette ou un téléphone, et ne demande rien à installer sur l’appareil depuis lequel vous travaillez.

Chaque commande dans son propre bloc

Dans un terminal ordinaire, tout se mélange en un seul flux, et il faut repérer à l’œil où une commande s’est terminée et où la suivante a commencé. Dans tTerm, chaque commande arrive dans son propre bloc : la commande, sa sortie, le code de retour, la durée, le répertoire et la branche git.

Vous pouvez copier un bloc avec sa sortie, le replier ou le relancer. Pendant qu’une commande s’exécute, sa sortie s’affiche en direct, et une fois qu’elle est terminée, le bloc se fige en texte brut, facile à sélectionner et à copier.

Une ligne de saisie comme dans un éditeur

En bas, une ligne de saisie dédiée. Shift+Enter passe à la ligne, une commande de votre historique est suggérée en gris, Tab complète. L’historique est conservé chez nous, il est donc identique sur tous vos appareils.

Au-dessus de la ligne, vous voyez où vous êtes : le répertoire et la branche. Cliquez dessus, faites votre choix dans la liste, et cd ou git switch s’exécute comme un bloc ordinaire. Et avant une commande dangereuse, de celles qui ne laissent plus rien à réparer, tTerm demande confirmation.

vim, htop et sudo

Les programmes plein écran occupent toute la zone du terminal et fonctionnent normalement, sudo aussi. Si vous ne voulez pas de blocs, il existe un mode classique : un terminal continu, comme vous en avez l’habitude.

Le terminal ne se ferme pas avec l’onglet

Le terminal tourne sur notre serveur, pas dans votre navigateur. Fermez votre ordinateur portable en pleine compilation sur un serveur : la compilation continue, et sa sortie est conservée. Ouvrez tTerm sur un autre appareil, et le terminal est là.

Les onglets de différents projets s’ouvrent côte à côte et portent le code du projet : P/web-01, A/api-prod. Cmd+K ouvre la palette : allez à un terminal, ouvrez-en un nouveau sur n’importe quelle machine ou lancez une action.

Comment connecter une machine

Un serveur Linux se connecte en une commande. tTerm Web vous l’affiche quand vous ajoutez une machine, et vous la lancez sur le serveur :

$ curl -sSL https://connect.tterm.net/s/… | sudo sh

L’installateur crée sur le serveur un utilisateur nommé tterm, ajoute une ligne à son authorized_keys et lui donne sudo dans un fichier dédié, dans /etc/sudoers.d. Il ne touche pas à sshd_config, ne redémarre pas sshd et n’ouvre aucun port. Quelques secondes plus tard, le serveur apparaît dans votre liste.

Un ordinateur sous macOS ou Linux se connecte via un petit agent. Celui-ci s’exécute sous votre compte utilisateur et se connecte lui-même à notre serveur, si bien qu’aucun port entrant n’est nécessaire et que l’ordinateur peut se trouver derrière un NAT. L’agent se désinstalle en une commande.

Sécurité

Nous nous connectons à vos machines, c’est pourquoi nous avons conçu l’accès pour qu’il soit facile à donner, et tout aussi facile à retirer.

  • Pas besoin de vos clés. Pour chaque connexion, tTerm signe un nouveau certificat SSH à votre nom. Il n’est valable que pour ce serveur et cesse de fonctionner deux minutes plus tard.
  • Une signature isolée. Les clés qui servent à signer sont conservées dans un processus séparé, sans accès au réseau. Le programme principal ne peut pas les lire, seulement demander une signature, et chaque signature est journalisée.
  • Sans intermédiaire. Le serveur de tTerm se trouve dans l’UE. La page et les terminaux s’y connectent directement : Cloudflare ne gère que notre DNS et ne voit jamais vos commandes.
  • Facile à retirer. Supprimez un serveur dans tTerm, et tTerm retire lui-même son accès au serveur ; si le serveur ne répond pas, tTerm affiche la commande à lancer sur place pour le faire. La marche à suivre pour retirer tout le reste de ce que l’installateur a mis en place figure en tête du script lui-même.
  • Open source. tTerm Web et l’agent sont open source, sous licence AGPL-3.0. Le script d’installation est court, et il vaut la peine de le lire avant de le lancer.

Combien ça coûte

Tant que tTerm Web est en bêta, il est gratuit pour tout le monde.

50machines par personne
24terminaux ouverts
30jours d’historique avec la sortie

Les offres payantes viendront plus tard, et nous vous préviendrons longtemps à l’avance.

Et le bot

@tTermNetBot reste et continue de fonctionner : des commandes vers vos serveurs directement depuis la conversation, quand vous n’avez qu’un téléphone sous la main. Pour l’instant, le bot et l’application web fonctionnent séparément, chacun avec sa propre liste de machines. Plus tard, nous les réunirons.

La suite

La prochaine grande étape, c’est le travail en équipe : des rôles dans un projet, un journal commun des commandes et l’observation du terminal d’un collègue, où la personne observée voit toujours qui la regarde. Les ordinateurs sous Windows ne sont pas encore pris en charge ; nous nous en occuperons plus tard.

Essayez tTerm Web

Connectez-vous avec votre adresse e-mail : vous recevez un code, puis, sur vos propres appareils, un code court suffit. Votre premier serveur se connecte en une minute.

Commencer gratuitement

À lire aussi sur le blog

Tous les articles
Tous les articles