Public | Automated Build

Last pushed: a month ago
Short Description
Wetty web terminal
Full Description

Wetty Docker

Terminal over HTTP and HTTPS. Wetty is an alternative to
ajaxterm/anyterm but much better than them because wetty uses ChromeOS'
terminal emulator (hterm) which is a full fledged implementation of
terminal emulation written entirely in Javascript. Also it uses
websockets instead of Ajax and hence better response time.

Original version:

hterm source -

Dockerized Version

This repo includes a Dockerfile you can use to run a Dockerized version of wetty.

Just do:

    docker run --name term -e WETTY_USER=your_user -e WETTY_HASH='<your hash between simple quotes>' -p 3000:3000 -dt freeflyer/wetty

Hash must be between single quotes, if not it will be truncated by special chars
you can generate it like that :

    mkpasswd  -m sha-512 -S <your_salt> <<< <yourpass>

or simply copy it from your /etc/shadow

If you don't specify user & hash, the default is term/term.

Visit the appropriate URL in your browser

Compose File

The IP is binded on localhost on this example because I recommand using
this behind a proxy preferably on https..

    image: freeflyer/wetty
      - WETTY_USER=your_user
      - WETTY_HASH=<your hash between simple quotes>
      - ""
      - front

Proxy Setting

If you are running app.js as root and have a proxy you have to use:

Else if you are running app.js as a regular user you have to use:<username>

Note that if your proxy is configured for HTTPS you should run wetty without SSL.


A good solution is to use traefik as a proxy, it integrates nicely with docker

With swarm/docker-compose you should add something like that to your yaml file :

    - "traefik.domain=your-hostname"
    - "traefik.backend=wetty"
    - "traefik.enable=true"
    - "traefik.port=3001"
    - "traefik.frontend.entryPoints=https,http"
    - "traefik.frontend.redirect.entryPoint=https"
    - "traefik.frontend.redirect.permanent=true"
    - "traefik.frontend.rule=Host:<your-hostname>"
    - "<your-docker-network-name>"

In this example you have a dedicted domain for your wetty frontend, it's https enabled with a redirection http to https.

see for more info.


* Not tested *
Put the following configuration in nginx's conf:

location /wetty {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 43200000;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;


Here is an apache proxy configuration example:

ProxyPass /wetty
ProxyPassReverse /wetty
<Location /wetty>
    # Auth changes in 2.4 - see
    AuthUserFile /etc/apache2/xmisspasswd
    AuthType Basic
    AuthName "WTF"
    Require valid-user

Latest Changes

Now based on node:alpine distribution


  • Add supervisord or any other watchdog like tool...
  • (DREAM) Browser plugin for ssh-key based login..
Docker Pull Command
Source Repository