Sign inSign up

techbygiusi/oneshell

By techbygiusi

Updated 12 months ago
Archived

OneShell is a sleek web SSH client with encrypted sessions, drag-drop UI, and real-time terminal.

Image
Networking
Web servers
Monitoring & observability
0

865

techbygiusi/oneshell repository overview

⚠️ Disclaimer This project was built with the assistance of AI tools and a strong dose of curiosity. I’m not a professional developer — just passionate about learning and experimenting. Expect imperfections, and feel free to contribute or share feedback! Work in Progress

OneShell Logo

OneShell is a modern, web-based SSH terminal that lets you manage and connect to servers directly from your browser — securely and with style.


✨ Features

  • 🔐 WebSocket-based secure SSH sessions
  • 💾 Save and manage multiple SSH connections
  • 📡 Live connection status (with ping)
  • ⬇ Export and ⬆ Import your connection profiles as JSON
  • 🧲 Drag & drop sorting of connections
  • 🎨 Themed terminal with custom fonts and colors
  • 📁 Clean UI with logo branding and upload/download buttons

Screenshot


🚀 Getting Started

Pull from Docker Hub
docker pull techbygiusi/oneshell
Run with Host Networking (Linux Only)
docker run --rm -d   --network host   --name oneshell   techbygiusi/oneshell

🔸 This allows the container to access devices on the host's local network, enabling full LAN ping and SSH.

Or Run with Port Mapping
docker run --rm -d   -p 3000:3000   --name oneshell   techbygiusi/oneshell

Then open your browser at:
👉 http://localhost:3000


⚙️ Alternative: Run via Docker Compose
For all platforms (port mapping):
version: '3.8'

services:
  oneshell:
    image: techbygiusi/oneshell:latest
    container_name: oneshell
    restart: unless-stopped
    ports:
      - "3000:3000"
For Linux with host network:
version: '3.8'

services:
  oneshell:
    image: techbygiusi/oneshell:latest
    container_name: oneshell
    restart: unless-stopped
    network_mode: host

🖐 Save one of the above snippets as docker-compose.yml Then run:

docker-compose up -d

🧠 How it Works

OneShell uses:

  • xterm.js for rendering terminal output
  • node-pty to handle interactive pseudo-terminal processes
  • sshpass and ssh for the underlying connection
  • Encrypted password storage in the browser via AES-GCM

🛠️ Customization

Want your own logo, colors, or favicon?
Edit the file:

/public/index.html

Update the following:

  • 🔄 Logo → <img src="images/logo.png"... />
  • 🎨 Favicon → <link rel="icon" href="images/favicon.ico" />
/public/stylesheets/style.css
  • 🌈 Theme → Theme configuration
/public/stylesheets/colors.css
  • 🌈 Theme → CSS colore variables configuration

📂 Volumes & Persistence

If you'd like to persist connection settings between container restarts, mount a volume:

docker run -d -p 3000:3000   -v $(pwd)/data:/app/connections   --name oneshell   techbygiusi/oneshell

📦 Development

Clone the repo and run it locally:

git clone https://github.com/techbygiusi/OneShell
cd oneshell
npm install
node server.js

📝 License

MIT License
© OneBitLabs / Calma Media

Tag summary

Content type

Image

Digest

sha256:96ef7e091

Size

169.9 MB

Last updated

12 months ago

docker pull techbygiusi/oneshell