π¦ SharkShell β Secure web-based SSH client with multi-tab terminals and workspace management
3.6K
Secure, Self-Hosted Web SSH Client
By Greatshark Technologies
SharkShell is a modern, self-hosted web-based SSH terminal and keystore manager. Connect to remote servers directly from your browser with enterprise-grade security.
| Feature | Description |
|---|---|
| π₯οΈ Multi-Tab Terminals | Open multiple SSH sessions in tabbed terminals |
| π Workspaces | Organize sessions into named workspaces with persistence |
| π Encrypted Keystore | AES-256-GCM encryption for all stored credentials |
| π SSH Key Management | Generate, upload, download, and organize SSH keys |
| π₯ Host & Key Groups | Color-coded groups with glowing visual indicators |
| πΎ Session Persistence | Sessions survive page refresh β click to reconnect |
| π¨ Modern UI | Glassmorphic design with dark mode and micro-animations |
# Download the compose file
curl -O https://raw.githubusercontent.com/sushilkumarsahani41/SharkShell/main/docker-compose.yml
# Start SharkShell
docker compose up -d
Open http://localhost:8080β π
To change the port, create a .env file next to docker-compose.yml:
COMPOSE_PORT=9000
Upgrading is a single command:
docker compose pull && docker compose up -d
Your database and secrets are in named volumes β they survive every upgrade automatically.
docker run -d \
--name sharkshell \
-p 8080:80 \
-v sharkshell-pgdata:/app/pgdata \
-v sharkshell-secrets:/app/secrets \
greatsharktech/sharkshell:latest
Set all four DB_* vars β SharkShell skips the internal PostgreSQL and connects to yours instead.
Docker Compose β add to .env:
DB_HOST=your-db-host
DB_USER=your-user
DB_PASSWORD=your-password
DB_NAME=sharkshell
Docker Run:
docker run -d \
--name sharkshell \
-p 8080:80 \
-e DB_HOST=your-db-host \
-e DB_USER=your-user \
-e DB_PASSWORD=your-password \
-e DB_NAME=sharkshell \
-v sharkshell-secrets:/app/secrets \
greatsharktech/sharkshell:latest
First-Time Setup: On your initial visit, SharkShell detects a fresh database and shows the Admin Account Setup screen. Create your admin account β open registration is disabled immediately afterward to secure your instance.
Data Persistence: All data lives in named Docker volumes (
sharkshell-pgdata,sharkshell-secrets). Bothdocker runanddocker composeuse the same volume names, so you can switch between the two without losing anything.
All settings are optional β SharkShell auto-generates secure defaults if not provided.
| Variable | Default | Description |
|---|---|---|
DB_HOST | postgres | Database hostname |
DB_PORT | 5432 | Database port |
DB_USER | sharkshell | Database user |
DB_PASSWORD | auto-generated | Database password (strong random) |
DB_NAME | sharkshell | Database name |
ENCRYPTION_KEY | auto-generated | AES-256 key (64-char hex string) |
JWT_SECRET | auto-generated RSA | JWT signing key (RSA 2048-bit keypair) |
COMPOSE_PORT | 8080 | Exposed HTTP port |
ββββββββββββββββββββββββββββββββββββββββββββββββ
β SharkShell Container β
β β
β ββββββββββββ ββββββββββββββββ β
β β nginx ββββββββββΆβ Nest.js API β β
β β :80 β /api/* β :3002 β β
β β β ws:// β β β
β β (React β β SSH Proxy β β
β β SPA) β β Auth/Crypto β β
β ββββββββββββ ββββββββ¬ββββββββ β
β β β
βββββββββββββββββββββββββββββββββΌβββββββββββββββ
β
βββββββββΌββββββββ
β PostgreSQL β
β (internal β
β or external)β
βββββββββββββββββ
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, xterm.js |
| Backend | NestJS 10, Socket.IO, ssh2 |
| Database | PostgreSQL 16 |
| Auth | JWT (RS256 / HS256), bcrypt |
| Encryption | AES-256-GCM |
| Container | Docker, nginx, supervisord |
# Clone
git clone https://github.com/sushilkumarsahani41/SharkShell.git
cd SharkShell
# Backend
cd backend && npm install && npm run start:dev
# Frontend (new terminal)
cd frontend && npm install && npm run dev
Backend runs on http://localhost:3002, Frontend on http://localhost:5173
Copyright Β© 2026 Greatshark Technologies. All Rights Reserved.
SharkShell is released under the GNU Affero General Public License v3.0 (AGPLv3).
You are free to:
You must:
Commercial Licenses are available for enterprises that wish to embed SharkShell into proprietary software. Contact Greatshark Technologies for details.
Made with π by Greatshark Technologiesβ
Content type
Image
Digest
sha256:fcb6565e7β¦
Size
84.2 MB
Last updated
about 1 month ago
docker pull greatsharktech/sharkshell