85 lines
3.3 KiB
Markdown
85 lines
3.3 KiB
Markdown
---
|
|
title: WeTTY
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, remote-access, ssh, web-shell, terminal]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Remote+Access, https://github.com/butlerx/wetty]
|
|
---
|
|
|
|
# 🌐 WeTTY
|
|
|
|
> Terminal SSH minimaliste directement dans le navigateur, sans client lourd.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Attribut | Valeur |
|
|
|----------|--------|
|
|
| **Nom** | WeTTY (Web Terminal) |
|
|
| **Slug** | wetty |
|
|
| **Description** | Client SSH web basé sur xterm.js et node-pty |
|
|
| **Site officiel** | https://butlerx.github.io/wetty/ |
|
|
| **Repository** | https://github.com/butlerx/wetty |
|
|
| **Stars** | 5 294 ⭐ |
|
|
| **Licence** | MIT |
|
|
| **Langage principal** | TypeScript / Node.js |
|
|
| **Catégorie** | Remote Access |
|
|
| **Tags** | [catalogue, remote-access, ssh, web-shell, terminal] |
|
|
|
|
## 📝 Description
|
|
WeTTY est l'une des solutions les plus légères pour ouvrir un terminal SSH dans un navigateur. Le projet combine **xterm.js** côté front (rendu terminal précis, support des couleurs et raccourcis) avec **node-pty** côté back (pty réel) pour offrir une expérience proche d'un SSH natif, sans rien installer côté client.
|
|
|
|
L'idée est volontairement minimaliste : une page web, un prompt login/password SSH, et c'est tout. Il n'y a pas de gestion d'utilisateurs multiples, pas d'audit centralisé, pas de MFA. C'est un "petit" outil, parfait pour un homelab, un accès ponctuel depuis un poste où l'on ne peut pas installer de client SSH, ou pour fournir un shell d'urgence derrière un VPN.
|
|
|
|
Il s'authentifie soit contre un compte local Linux, soit via une clé SSH si configurée.
|
|
|
|
## 🚀 Installation
|
|
### Via Docker (recommandé)
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
wetty:
|
|
image: wettyoss/wetty:latest
|
|
container_name: wetty
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
command: --ssh-host=localhost --ssh-port=22
|
|
```
|
|
|
|
### Installation manuelle
|
|
```bash
|
|
npm install -g wetty
|
|
wetty --sshhost=localhost --sshport=22 --port=3000
|
|
```
|
|
|
|
## ⚙️ Configuration
|
|
- Authentification via PAM (compte Linux local) ou clé SSH avec `--ssh-key`.
|
|
- Forcer HTTPS en le plaçant derrière un reverse proxy (Traefik, Caddy, Nginx).
|
|
- Désactiver le login par mot de passe et n'autoriser que la clé SSH.
|
|
- Personnaliser l'invite, le titre et la favicon via options CLI.
|
|
|
|
## 🔗 Alternatives
|
|
- **Sshwifty** — alternative plus moderne, support Telnet et SSH.
|
|
- **ttyd** — encore plus minimaliste (C, un seul binaire).
|
|
- **Apache Guacamole** — bien plus complet (RDP/VNC/SSH + utilisateurs) mais lourd.
|
|
|
|
## 🔒 Sécurité
|
|
- WeTTY n'implémente **aucune authentification supplémentaire** : il s'appuie sur l'authentification SSH standard. À protéger impérativement derrière un reverse proxy avec HTTPS et idéalement une auth basique ou SSO en amont.
|
|
- **Pas d'audit** : les logs sont ceux de SSH côté serveur.
|
|
- Ne jamais exposer WeTTY directement sur Internet sans auth supplémentaire.
|
|
|
|
## 📚 Ressources
|
|
- Démo en ligne : https://butlerx.github.io/wetty-demo/
|
|
- Documentation : https://github.com/butlerx/wetty#readme
|
|
|
|
## 🔗 Pages Liées
|
|
- [[cat-remote-access]]
|
|
- [[app-sshwifty]] — alternative moderne à WeTTY
|
|
- [[app-traefik]] — reverse proxy avec HTTPS
|
|
- [[app-authelia]] — SSO à placer devant
|
|
- [[securisation-home-lab]]
|
|
- [[recettes-docker-compose]]
|