tTerm funktioniert jetzt im Browser
Bisher lebte tTerm in Telegram: Befehle an deine Server direkt aus einem Chat. Heute starten wir tTerm Web, ein echtes Terminal in deinem Browser. Alle deine Server und Computer in einem Tab, jeder Befehl in einem eigenen Block und keine Schlüssel auf deinem Gerät.
Warum ein Browser, wenn es einen Bot gibt
Der Bot ist praktisch, wenn du nur ein Handy dabeihast: einen Dienst neu starten, den Speicherplatz prüfen, die Frage eines Installers beantworten. Aber für längere Arbeit braucht es einen großen Bildschirm: mehrere Tabs nebeneinander, vim und htop im Vollbild, einen Verlauf, in dem der Befehl von gestern leicht zu finden ist.
Dafür ist tTerm Web da. Es öffnet sich in jedem Browser, auf Laptop, Tablet oder Handy, und auf dem Gerät, von dem aus du arbeitest, muss nichts installiert werden.
Jeder Befehl in einem eigenen Block
In einem gewöhnlichen Terminal läuft alles in einem einzigen Strom zusammen, und du musst mit bloßem Auge suchen, wo ein Befehl endete und der nächste begann. In tTerm kommt jeder Befehl als eigener Block: der Befehl, seine Ausgabe, der Exit-Code, die Zeit, das Verzeichnis und der git-Branch.
Du kannst einen Block samt Ausgabe kopieren, einklappen oder erneut ausführen. Während ein Befehl läuft, erscheint seine Ausgabe live, und sobald er fertig ist, wird der Block zu einfachem Text, der sich leicht markieren und kopieren lässt.
Eine Eingabezeile wie im Editor
Unten gibt es eine eigene Eingabezeile. Shift+Enter beginnt eine neue Zeile, ein Befehl aus deinem Verlauf wird grau vorgeschlagen, Tab vervollständigt. Der Verlauf wird bei uns gespeichert, deshalb ist er auf all deinen Geräten derselbe.
Über der Zeile siehst du, wo du bist: Verzeichnis und Branch. Klick darauf und wähl einen anderen Eintrag aus der Liste, dann läuft cd oder git switch als ganz normaler Block. Und vor einem gefährlichen Befehl, nach dem nichts mehr zu retten ist, fragt tTerm noch einmal nach.
vim, htop und sudo
Vollbildprogramme öffnen sich über den ganzen Terminalbereich und funktionieren wie gewohnt, sudo ebenso. Wenn du keine Blöcke willst, gibt es einen klassischen Modus: ein durchgehendes Terminal, so wie du es gewohnt bist.
Das Terminal schließt sich nicht mit dem Tab
Das Terminal lebt auf unserem Server, nicht in deinem Browser. Klapp deinen Laptop mitten in einem Build auf einem Server zu: Der Build läuft weiter, und seine Ausgabe bleibt erhalten. Öffne tTerm auf einem anderen Gerät, und das Terminal ist sofort da.
Tabs aus verschiedenen Projekten öffnen sich nebeneinander und tragen den Projektcode: P/web-01, A/api-prod. Cmd+K öffnet die Palette: zu einem beliebigen Terminal springen, ein neues auf einer beliebigen Maschine öffnen oder eine Aktion ausführen.
So verbindest du eine Maschine
Ein Linux-Server verbindet sich mit einem Befehl. tTerm Web zeigt ihn an, wenn du eine Maschine hinzufügst, und du führst ihn auf dem Server aus:
$ curl -sSL https://connect.tterm.net/s/… | sudo sh
Der Installer legt auf dem Server einen Benutzer namens tterm an, fügt seiner Datei authorized_keys eine Zeile hinzu und gibt ihm sudo über eine eigene Datei in /etc/sudoers.d. sshd_config rührt er nicht an, sshd startet er nicht neu, und Ports öffnet er keine. Ein paar Sekunden später erscheint der Server in deiner Liste.
Ein Computer mit macOS oder Linux verbindet sich über einen kleinen Agenten. Er läuft unter deinem Benutzer und baut die Verbindung zu unserem Server selbst auf, deshalb sind keine eingehenden Ports nötig, und der Computer kann hinter NAT stehen. Der Agent lässt sich mit einem Befehl deinstallieren.
Sicherheit
Wir verbinden uns mit deinen Maschinen, deshalb haben wir den Zugriff so gebaut, dass er leicht zu vergeben und genauso leicht wieder zu entziehen ist.
- Deine Schlüssel brauchen wir nicht. Für jede Verbindung signiert tTerm ein neues SSH-Zertifikat mit deinem Namen darin. Es gilt nur für diesen einen Server und läuft zwei Minuten später ab.
- Signieren strikt getrennt. Die Schlüssel, mit denen wir signieren, liegen in einem separaten Prozess ohne Netzwerk. Das Hauptprogramm kann sie nicht lesen, nur um eine Signatur bitten, und jede Signatur wird protokolliert.
- Keine Mittelsmänner. Der tTerm-Server steht in der EU. Die Seite und die Terminals verbinden sich direkt mit ihm: Cloudflare kümmert sich bei uns nur um DNS und sieht deine Befehle nie.
- Leicht zu entziehen. Entferne einen Server in tTerm, und tTerm entfernt seinen Zugriff dort selbst; antwortet der Server nicht, zeigt tTerm den Befehl, der das auf dem Server erledigt. Wie du alles andere entfernst, was der Installer eingerichtet hat, steht ganz oben im Skript selbst.
- Open Source. tTerm Web und der Agent sind Open Source unter der Lizenz AGPL-3.0. Das Installationsskript ist kurz, und es lohnt sich, es vor dem Ausführen zu lesen.
Was es kostet
Solange tTerm Web in der Beta ist, ist es für alle kostenlos.
Kostenpflichtige Tarife kommen später, und wir sagen dir lange vorher Bescheid.
Was ist mit dem Bot
@tTermNetBot bleibt und funktioniert weiter: Befehle an deine Server direkt aus dem Chat, wenn du nur ein Handy dabeihast. Vorerst laufen Bot und Web-App getrennt, jeweils mit einer eigenen Liste von Maschinen. Später führen wir sie zusammen.
Wie es weitergeht
Der nächste große Schritt ist die Arbeit im Team: Rollen in einem Projekt, ein gemeinsames Befehlsprotokoll und das Zuschauen im Terminal eines Teammitglieds, wobei die Person, der zugeschaut wird, immer sieht, wer zuschaut. Computer mit Windows werden noch nicht unterstützt; um sie kümmern wir uns später.
Probier tTerm Web aus
Melde dich mit deiner E-Mail-Adresse an: Du bekommst einen Code, und auf deinen eigenen Geräten reicht danach ein kurzer Code. Dein erster Server ist in einer Minute verbunden.
Kostenlos starten