Skip to content

Repository files navigation

English | 中文

electerm-web Tweet

This is web app version of electerm app, running in browser, almost has the same features as the desktop version.

GitHub version license JavaScript Style Guide GitHub Sponsors

electerm is open-sourced terminal/ssh/sftp/telnet/serialport/RDP/VNC/Spice/ftp client(Linux, Mac, Windows, Android, HarmonyOS, iOS).

Besides mainstream Windows/macOS/Linux/Android, electerm also supports HarmonyOS, iOS, and older systems — Ubuntu 18, Windows 7, macOS 10+, and special Chinese Linux distributions such as UOS, Kylin, and LoongArch (both old-world and new-world), as well as RISC-V (riscv64) and PowerPC 64-bit little-endian (ppc64le) Linux.

Homepage / Downloads · Theme · Docker · Online demo · Android · HarmonyOS · Apple App Store · Huawei AppGallery · Microsoft Store · Snap Store · deb repo · rpm repo

Features

  • Works as a terminal/file manager, ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice client
  • 🇺🇸 🇨🇳 🇧🇷 🇷🇺 🇪🇸 🇫🇷 🇹🇷 🇭🇰 🇯🇵 🇸🇦 🇩🇪 🇰🇷 Multi-language support(electerm-locales, contributions/fixes welcome)
  • Double click to directly edit (small) remote files.
  • All kind of auth methods: publicKey, password, ssh agent, certificates, otp, netbird etc.
  • Support Zmodem(rz, sz), and Trzsz(trz/tsz).
  • Support ssh related features: tunnel, connection hopping.
  • Customizable UI: themes, background image.
  • Global/session proxy.
  • Quick commands/triggers to do predefined tasks and automattic operations
  • Sync data including bookmarks to github/gitee secret gist/webdav/custom server/electerm cloud
  • Quick input/mirror input to one or all terminals.
  • AI assistant integration (supporting multiple LLM API formats — OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages) to help with command suggestions, script writing, and explaining selected terminal content, create bookmarks/themes, and agent mode to directly do terminal operations
  • Init from url query string wiki
  • Support mobile device(responsive design)

Migration from v2 to v3

Since electerm-web v3, the application uses SQLite instead of NeDB for better performance and stability. If you're upgrading from v2 and have existing data, you'll need to migrate your data.

Migration Steps

  1. Install electerm-data-tool:

    npm install -g electerm-data-tool
  2. Export your data from NeDB:

       # data folder should have a nedb-database child folder
       electerm-data-tool --data-path "/path/to/your/data-folder-which-has-nedb-database-sub-folder" --app-type web migrate
  3. Start electerm-web v3 and go to the Data Sync panel

  4. Import your data: Upload the data.json file in the Data Sync panel to restore your data

Download

todo

Upgrade

todo

Support

Would love to hear from you, please tell me what you think, submit an issue, Start a new discussion, create/fix language files or create pull requests, all welcome.

Sponsor this project

github sponsor

https://github.com/sponsors/electerm

kofi

https://ko-fi.com/zhaoxudong

wechat donate

wechat donate

Prerequisites

  • git
  • Nodejs 24, npm, recommend use fnm to install nodejs/npm
  • python/make tools, for Linux: sudo apt install -y make python g++ build-essential, for MacOS: install Xcode, for Windows, install vs studio or npm install --global --production windows-build-tools

One line script to deploy from source code

for Linux or Mac

curl -o- https://electerm.org/scripts/one-line-web.sh | bash

or

wget -qO- https://electerm.org/scripts/one-line-web.sh | bash

for Windows

Invoke-WebRequest -Uri "https://electerm.org/scripts/one-line-web.bat" -OutFile "one-line-web.bat"
cmd.exe /c ".\one-line-web.bat"

Deploy from docker image

Check electerm-web-docker

Dev

# tested in ubuntu16.04+/mac os 10.13+ only
# needs nodejs/npm, suggest using nvm to install nodejs/npm
# https://github.com/creationix/nvm
# with nodejs 22.x

git clone git@github.com:electerm/electerm-web.git
cd electerm-web
cp .sample.env .env
# edit DB_PATH to set db path, default path ./database
# to use same data as desktop electerm
# for Mac OS DB_PATH="/Users/<your-user-name>/Library/Application Support/electerm"
# for Linux OS DB_PATH="/home/<your-user-name>/.config/electerm"
# for Windows OS DB_PATH="C:\\Users\\<your-user-name>\\AppData\\Roaming\\electerm"
npm config set legacy-peer-deps true
npm i

# start webpack dev server
npm start

# in a separate terminal session run app
npm run dev

#then visit http://127.0.0.1:5580 with browser

# code format check
npm run lint

# code format fix
npm run fix

Build && run in production

npm run build

# run production server
npm run prod

# or ./build/bin/run-prod.sh

#then visit http://127.0.0.1:5577 with browser

Run in server

# Edit .env, set
ENABLE_AUTH=1 # if not enabled, everyone can use it without login
DISABLE_LOCAL_TERMINAL=1 # disable local terminal for safety
SERVER_SECRET=some-server-secret
SERVER_PASS=some-login-pass-word

# run prod app
./run-electerm-web.sh

# Check examples/nginx.conf examples/nginx-ssl.conf  for domain binding nginx conf example

License

MIT

About

Running electerm as web app

Topics

Resources

Contributing

Stars

173 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages