dumbterm
A stupidly simple web-based terminal emulator, with common tools and Starship enabled!
100K+
A stupidly simple web-based terminal emulator, with common tools and Starship enabled! 🚀
ctrl+f or cmd+f)# Pull and run with one command
docker run -p 3000:3000 \
-v ./data:/root/data \
-v ./config:/root/.config \
-e DUMBTERM_PIN=1234 \
-e SITE_TITLE=DumbTerm \
-e BASE_URL=http://localhost:3000 \
-e ALLOWED_ORIGINS=http://localhost:3000 \
-e ENABLE_STARSHIP=true \
-e TZ=America/Los_Angeles \
-e LOCKOUT_TIME=15 \
-e MAX_SESSION_AGE=24 \
dumbwareio/dumbterm:latest
Create a docker-compose.yml file or use the provided one:
services:
dumbterm:
image: dumbwareio/dumbterm:latest
container_name: dumbterm
restart: unless-stopped
ports:
- ${DUMBTERM_PORT:-3000}:3000
volumes:
- ${DUMBTERM_CONFIG:-./config}:/root/.config
- ${DUMBTERM_DATA_DIR:-./data}:/root/data
environment:
# Container timezone
TZ: ${DUMBTERM_TZ:-America/Los_Angeles}
# The title shown in the web interface
SITE_TITLE: ${DUMBTERM_SITE_TITLE:-DumbTerm}
# Recommended PIN protection (leave empty to disable)
DUMBTERM_PIN: ${DUMBTERM_PIN:-1234}
# The base URL for the application
BASE_URL: ${DUMBTERM_BASE_URL:-http://localhost:3000}
ENABLE_STARSHIP: ${ENABLE_STARSHIP:-true}
LOCKOUT_TIME: ${DUMBTERM_LOCKOUT_TIME:-15} # Minutes
# Session duration in hours before requiring re-authentication
MAX_SESSION_AGE: ${DUMBTERM_MAX_SESSION_AGE:-24} # Hours
# (OPTIONAL) - List of allowed origins for CORS
# ALLOWED_ORIGINS: ${DUMBTERM_ALLOWED_ORIGINS:-http://localhost:3000}
Then run:
docker compose up -d
npm install
Tip
#### Windows specific: - If you encounter issues with `node-pty` you can try using [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) or may need to install: - `Node.js v16` (Look into [nvm for windows](https://github.com/coreybutler/nvm-windows) for multi node version support): - `winget install CoreyButler.NVMforWindows` - with nvm installed use: `nvm install 16 && nvm use 16` - `windows-build-tools` through Visual Studio Installer `MSVC v142 - VS 2019 C++ {arch} Build Tools` - Contact us or View the [official Microsoft documentation](https://github.com/microsoft/node-pty?tab=readme-ov-file#windows) for more details
cp .env.example .env > Set environment variables in .env:PORT=3000 # Port to run the server on
DUMBTERM_PIN=1234 # Optional PIN protection
SITE_TITLE=DumbTerm # Custom site title
BASE_URL=http://localhost:3000 # Base URL for the application
npm start
| Variable | Description | Default | Required |
|---|---|---|---|
| PORT | Server port | 3000 | No |
| BASE_URL | Base URL for the application | http://localhost:PORT | No |
| DUMBTERM_PIN | PIN protection (numeric) | None | No |
| SITE_TITLE | Site title displayed in header | DumbTerm | No |
| TZ | Container timezone | America/Los_Angeles | No |
| ENABLE_STARSHIP | Enable Starship prompt (docker only) | true | No |
| NODE_ENV | Node environment mode (development or production) | production | No |
| ALLOWED_ORIGINS | Allowed CORS origins (comma-separated list) | * (all origins) | No |
| DEBUG | Enable debug logging | FALSE | No |
| LOCKOUT_TIME | Custom Pin Lockout Time (in minutes) | 15 | No |
| MAX_SESSION_AGE | Duration of authenticated session (in hours) | 24 | No |
| DEMO_MODE | Enable demo mode with simulated terminal | false | No |
ENABLE_STARSHIP to false in your environment variables.Tip
copy and paste one of the starship preset commands below into DumbTerm and that's it!
Warning
**Note:** If running locally or mapped volume to your actual `starship.toml` config, the preset commands will overwrite your existing `starship.toml` file. Make sure to back it up as needed.
| Preset Name | Command | Preview |
|---|---|---|
| Nerd Font Symbols | starship preset nerd-font-symbols -o ~/.config/starship.toml | ![]() |
| Bracketed Segments | starship preset bracketed-segments -o ~/.config/starship.toml | ![]() |
| Plain Text Symbols | starship preset plain-text-symbols -o ~/.config/starship.toml | ![]() |
| No Runtime Versions | starship preset no-runtime-versions -o ~/.config/starship.toml | ![]() |
| No Empty Icons | starship preset no-empty-icons -o ~/.config/starship.toml | |
| Pure Prompt | starship preset pure-preset -o ~/.config/starship.toml | ![]() |
| Pastel Powerline | starship preset pastel-powerline -o ~/.config/starship.toml | ![]() |
Tokyo Night (DumbTerm Default with mods) | starship preset tokyo-night -o ~/.config/starship.toml | ![]() |
| Gruvbox Rainbow | starship preset gruvbox-rainbow -o ~/.config/starship.toml | ![]() |
| Jetpack | starship preset jetpack -o ~/.config/starship.toml | ![]() |
| No Nerd Fonts | starship preset no-nerd-font -o ~/.config/starship.toml | n/a |
starship preset -l in DumbTerm.For more details, visit the Starship Presets page.
~/.config/starship.toml file in your set volume mount or within the container./root/.config/starship.toml.starship.toml file to the container using Docker volumes.DumbTerm provides a comprehensive set of keyboard shortcuts for efficient terminal management. The modifier keys vary by operating system:
Ctrl+Alt+{key}Ctrl+Cmd+{key}| Action | Windows/Linux | macOS |
|---|---|---|
| New Terminal | Ctrl+Alt+T | Ctrl+Cmd+T |
| Close Terminal | Ctrl+Alt+W | Ctrl+Cmd+W |
| Rename Terminal | Ctrl+Alt+R | Ctrl+Cmd+R |
| Search in Terminal | Ctrl+F | Cmd+F |
| Next Terminal | Ctrl+Alt+> or Ctrl+Alt+. | Ctrl+Cmd+> or Ctrl+Cmd+. |
| Previous Terminal | Ctrl+Alt+< or Ctrl+Alt+, | Ctrl+Cmd+< or Ctrl+Cmd+, |
| Switch to Terminal 1-9 | Ctrl+Alt+[1-9] | Ctrl+Cmd+[1-9] |
Ctrl+F (Windows/Linux) or Cmd+F (macOS) to open the search barIt is highly recommended to set a strong PIN, use HTTPS, use ALLOWED_ORIGINS, and integrate with an auth provider (i.e. Authentik / Authelia / tinyauth, etc).
We're dumb, but not stupid. Use a full-featured auth provider for production use.
DumbTerm includes the following XTerm.js addons to enhance your terminal experience:
| Addon | Description |
|---|---|
| @xterm/addon-attach | Attaches a terminal session to a websocket |
| @xterm/addon-canvas | Renderer that uses canvas to draw terminal content (used as fallback after webgl) |
| @xterm/addon-clipboard | Clipboard integration for copy/paste support |
| @xterm/addon-fit | Automatically resize terminal to fit its container |
| @xterm/addon-image | Display images inline in the terminal |
| @xterm/addon-ligatures | Font ligatures support |
| @xterm/addon-search | Search text in the terminal buffer |
| @xterm/addon-serialize | Serialize terminal output to string or HTML |
| @xterm/addon-unicode11 | Additional Unicode 11 character width support |
| @xterm/addon-web-links | Automatically hyperlink URLs in terminal |
| @xterm/addon-webgl | Renderer that uses WebGL for better performance (default render method) |
git checkout -b feature/amazing-feature)git push origin feature/amazing-feature)See Development Guide for local setup and guidelines.
Made with ❤️ by DumbWareio & gitmotion
Got an idea? Open an issue or submit a PR
Content type
Image
Digest
sha256:5c501c542…
Size
293.7 MB
Last updated
10 months ago
docker pull dumbwareio/dumbtermPulls:
3,988
Last week