---
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]]
