A web-based SSH terminal that enables secure connections to remote servers through your browser.
1.6K
A modern, full-stack web-based SSH terminal client that enables secure connections to remote servers through your browser. Built with React, NestJS, Socket.IO, and xterm.js for a seamless terminal experience.
# Run the complete application with a single command
docker run -p 8080:80 -p 8081:8081 kzamanbd/terminal:latest
http://localhost:8080http://localhost:8081http://localhost:8080/healthFull-Stack Monorepo:
| Component | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite, Tailwind CSS, xterm.js |
| Backend | NestJS, Socket.IO, ssh2, Node.js 22+ |
| Infrastructure | Docker, Nginx, tini, Alpine Linux |
| Build Tools | pnpm, Turborepo, Multi-stage Docker |
version: '3.8'
services:
browser-terminal:
image: kzamanbd/terminal:latest
container_name: browser-terminal
restart: unless-stopped
ports:
- "80:80" # Web interface
- "8081:8081" # API server
environment:
- NODE_ENV=production
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/health"]
interval: 30s
timeout: 10s
retries: 3
apiVersion: apps/v1
kind: Deployment
metadata:
name: browser-terminal
spec:
replicas: 2
selector:
matchLabels:
app: browser-terminal
template:
metadata:
labels:
app: browser-terminal
spec:
containers:
- name: browser-terminal
image: kzamanbd/terminal:latest
ports:
- containerPort: 80
- containerPort: 8081
livenessProbe:
httpGet:
path: /health
port: 80
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 80
initialDelaySeconds: 5
periodSeconds: 5
Connect to SSH Server
Use the Terminal
| Variable | Description | Default |
|---|---|---|
NODE_ENV | Environment mode | production |
PORT | API server port | 8081 |
GET /health - Returns "healthy"GET /health - Returns {"status":"ok"}# Check container health
docker ps
docker logs browser-terminal
# Check API health
curl http://localhost:8081/health
# Check web interface health
curl http://localhost/health
Port Conflicts
# Use different ports
docker run -p 8080:80 -p 8081:8081 kzamanbd/terminal:latest
Container Won't Start
# Check logs
docker logs browser-terminal
API Not Responding
# Test API directly
curl http://localhost:8081/health
MIT License - see LICENSE for details.
Kamruzzaman - Full-stack developer specializing in modern web applications
Ready to deploy? Just run docker run -p 8080:80 -p 8081:8081 kzamanbd/terminal:latest and start connecting to your remote servers through your browser! 🚀
Content type
Image
Digest
sha256:751434a77…
Size
58.8 MB
Last updated
12 months ago
docker pull kzamanbd/terminal