Self-hosted SSH + SFTP + RDP in a browser — MobaXterm replacement
- H-5: Redact keystroke data from WS message logs — log type/sessionId/bytes only - H-4: Remove private key content/length/passphrase logging, replace with safe single line - H-14: Remove username@hostname from password auth log, use hostId only - M-1: Enforce session ownership in data/resize/disconnect handlers via clientSessions map - C-5: Real host key verification flow — MITM protection blocks changed keys immediately, new hosts ask user via host-key-verify WS message with 30s timeout, pending map resolves on host-key-accept/host-key-reject response - H-13: Shell PROMPT_COMMAND/precmd injection is now opt-in via options.enableCwdTracking Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| backend | ||
| docs | ||
| frontend | ||
| images | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
| Remote-Spec.md | ||
Wraith
Self-hosted MobaXterm replacement — SSH + SFTP + RDP in a browser.
Stack
- Backend: NestJS 10, Prisma 6, PostgreSQL 16, ssh2, guacd
- Frontend: Nuxt 3 (SPA), PrimeVue 4, Tailwind CSS, xterm.js 5
Quick Start
cp .env.example .env
# Edit .env with real secrets
docker compose up -d
Default credentials: admin@wraith.local / wraith
Development
# Backend
cd backend && npm install && npm run dev
# Frontend
cd frontend && npm install && npm run dev