{"id":18664591,"url":"https://github.com/electerm/electerm-web","last_synced_at":"2025-04-05T16:04:22.617Z","repository":{"id":203876794,"uuid":"710600561","full_name":"electerm/electerm-web","owner":"electerm","description":"Running electerm as web app","archived":false,"fork":false,"pushed_at":"2025-03-20T12:34:00.000Z","size":929,"stargazers_count":120,"open_issues_count":10,"forks_count":21,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T15:03:28.364Z","etag":null,"topics":["electerm","react","serialport","sftp","ssh","telnet","terminal"],"latest_commit_sha":null,"homepage":"https://electerm.html5beta.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/electerm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"electerm","open_collective":"electerm","custom":"https://paypal.me/zhaoxudongPS"}},"created_at":"2023-10-27T03:24:52.000Z","updated_at":"2025-03-29T12:46:43.000Z","dependencies_parsed_at":"2023-11-27T08:24:50.624Z","dependency_job_id":"d6ce3858-d06c-400d-8d60-8200fd7fbf2b","html_url":"https://github.com/electerm/electerm-web","commit_stats":{"total_commits":96,"total_committers":2,"mean_commits":48.0,"dds":0.01041666666666663,"last_synced_commit":"aca4103861f3c4465b1ff96508173a8207000abb"},"previous_names":["electerm/electerm-web"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electerm%2Felecterm-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electerm%2Felecterm-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electerm%2Felecterm-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/electerm%2Felecterm-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/electerm","download_url":"https://codeload.github.com/electerm/electerm-web/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361615,"owners_count":20926642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electerm","react","serialport","sftp","ssh","telnet","terminal"],"created_at":"2024-11-07T08:24:11.466Z","updated_at":"2025-04-05T16:04:22.569Z","avatar_url":"https://github.com/electerm.png","language":"JavaScript","readme":"\u003ch1 align=\"center\" style=\"padding-top: 60px;padding-bottom: 40px;\"\u003e\n    \u003ca href=\"https://electerm.github.io/electerm\"\u003e\n        \u003cimg src=\"https://github.com/electerm/electerm-resource/raw/master/static/images/electerm.png\", alt=\"\" /\u003e\n    \u003c/a\u003e\n\u003c/h1\u003e\n\n[中文](README_cn.md)\n\n# electerm-web [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Open%20sourced%20terminal%2Fssh%2Fsftp%20client(linux%2C%20mac%2C%20win)\u0026url=https%3A%2F%2Fgithub.com%2Felecterm%2Felecterm-web\u0026hashtags=electerm,ssh,terminal,sftp)\n\nThis is web app version of [electerm app](https://github.com/electerm/electerm), running in browser, almost has the same features as the desktop version.\n\nPowered by [manate](https://github.com/tylerlong/manate)\n\n[![GitHub version](https://img.shields.io/github/release/electerm/electerm/all.svg)](https://github.com/electerm/electerm/releases)\n[![license](https://img.shields.io/github/license/electerm/electerm.svg)](https://github.com/electerm/electerm-dev/blob/master/LICENSE)\n[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)\n[![Get it from the Snap Store](https://img.shields.io/badge/Snap-Store-green)](https://snapcraft.io/electerm)\n[![Get it from the Microsoft Store](https://img.shields.io/badge/Microsoft-Store-blue)](https://www.microsoft.com/store/apps/9NCN7272GTFF)\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/electerm?label=Sponsors)](https://github.com/sponsors/electerm)\n\nOpen-sourced terminal/ssh/telnet/serialport/sftp client(linux, mac, win).\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/electerm/electerm-resource/raw/master/static/images/electerm.gif\", alt=\"\" /\u003e\n\u003c/div\u003e\n\n## Features\n\n- Works as a terminal/file manager or ssh/telnet/serialport/RDP/VNC/sftp client\n- Global hotkey to toggle window visibility (similar to guake, default is `ctrl + 2`)\n- Multi platform(linux, mac, win)\n- 🇺🇸 🇨🇳 🇧🇷 🇷🇺 🇪🇸 🇫🇷 🇹🇷 🇭🇰 🇯🇵 🇸🇦 🇩🇪 🇰🇷 Multi-language support([electerm-locales](https://github.com/electerm/electerm-locales), contributions/fixes welcome)\n- Double click to directly edit (small) remote files.\n- Auth with publicKey + password.\n- Support Zmodem(rz, sz).\n- Support ssh tunnel.\n- Support [Trzsz](https://github.com/trzsz/trzsz)(trz/tsz), similar to rz/sz, and compatible with tmux.\n- Transparent window(Mac, win).\n- Terminal background image.\n- Global/session proxy.\n- Quick commands\n- UI/terminal theme\n- Sync bookmarks/themes/quick commands to github/gitee secret gist\n- Quick input to one or all terminals.\n- Init from url query string [wiki](https://github.com/electerm/electerm-web/wiki/Init-from-url-query-string)\n- Support mobile device(responsive design)\n- AI assistant integration (supporting [DeepSeek](https://www.deepseek.com), OpenAI, and other AI APIs) to help with command suggestions, script writing, and explaining selected terminal content\n\n## Download\n\ntodo\n\n## Upgrade\n\ntodo\n\n## Support\n\nWould love to hear from you, please tell me what you think, [submit an issue](https://github.com/electerm/electerm-web/issues/new/choose), [Start a new discussion](https://github.com/electerm/electerm-web/discussions/new), [create/fix language files](https://github.com/electerm/electerm-locales) or create pull requests, all welcome.\n\n## Sponsor this project\n\ngithub sponsor\n\n[https://github.com/sponsors/electerm](https://github.com/sponsors/electerm)\n\nkofi\n\n[https://ko-fi.com/zhaoxudong](https://ko-fi.com/zhaoxudong)\n\nwechat donate\n\n[![wechat donate](https://electerm.html5beta.com/electerm-wechat-donate.png)](https://github.com/electerm)\n\n## Prerequisites\n\n- git\n- Nodejs 20+/npm, recommend use [fnm](https://github.com/Schniz/fnm) to install nodejs/npm\n- 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`\n\n## One line script to deploy from source code\n\nfor Linux or Mac\n\n```sh\ncurl -o- https://electerm.html5beta.com/scripts/one-line-web.sh | bash\n```\nor\n\n```sh\nwget -qO- https://electerm.html5beta.com/scripts/one-line-web.sh | bash\n```\n\nfor Windows\n\n```powershell\nInvoke-WebRequest -Uri \"https://electerm.html5beta.com/scripts/one-line-web.bat\" -OutFile \"one-line-web.bat\"\ncmd.exe /c \".\\one-line-web.bat\"\n\n```\n\n## Deploy from docker image\n\nCheck [electerm-web-docker](https://github.com/electerm/electerm-web-docker)\n\n## Dev\n\n```bash\n# tested in ubuntu16.04+/mac os 10.13+ only\n# needs nodejs/npm, suggest using nvm to install nodejs/npm\n# https://github.com/creationix/nvm\n# with nodejs 18.x\n\ngit clone git@github.com:electerm/electerm-web.git\ncd electerm-web\ncp .sample.env .env\n# edit DB_PATH to set db path, default path ./database\n# to use same data as desktop electerm\n# for Mac OS DB_PATH=\"/Users/\u003cyour-user-name\u003e/Library/Application Support/electerm\"\n# for Linux OS DB_PATH=\"/home/\u003cyour-user-name\u003e/.config/electerm\"\n# for Windows OS DB_PATH=\"C:\\\\Users\\\\\u003cyour-user-name\u003e\\\\AppData\\\\Roaming\\\\electerm\"\n\nnpm i\n\n# start webpack dev server\nnpm start\n\n# in a separate terminal session run app\nnpm run dev\n\n#then visit http://127.0.0.1:5580 with browser\n\n# code format check\nnpm run lint\n\n# code format fix\nnpm run fix\n```\n\n## Build \u0026\u0026 run in production\n\n```sh\nnpm run build\n\n# run production server\nnpm run prod\n\n# or ./build/bin/run-prod.sh\n\n#then visit http://127.0.0.1:5577 with browser\n```\n\n## Run in server\n\n```sh\n# Edit .env, set\nENABLE_AUTH=1 # if not enabled, everyone can use it without login\nSERVER_SECRET=some-server-secret\nSERVER_PASS=some-login-pass-word\nSERVER=http://xxx.com # if you want to bind domain\nCDN=http://xxx.com # if you want to use cdn serve static files\n\n# run prod app\n./run-electerm-web.sh\n\n# Check examples/nginx.conf examples/nginx-ssl.conf  for domain binding nginx conf example\n```\n\n## Test\n\n```bash\nnpx playwright install --with-deps chromium\n# or with a proxy if needed\nHTTPS_PROXY=http://127.0.0.1:1087 npx playwright install --with-deps chromium\n# then edit .env, edit test related env\nnpm run test\n```\n\n## License\n\nMIT\n","funding_links":["https://github.com/sponsors/electerm","https://opencollective.com/electerm","https://paypal.me/zhaoxudongPS","https://ko-fi.com/zhaoxudong"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felecterm%2Felecterm-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felecterm%2Felecterm-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felecterm%2Felecterm-web/lists"}