Files
mRemotify/README.md
2026-03-01 12:06:22 +01:00

3.0 KiB

mRemotify

Browser-based remote connection manager — open-source alternative to mRemoteNG.

Manage SSH and RDP connections through a web UI with a tree-based layout, tabbed sessions, and connection profiles.

Stack

Layer Tech
Frontend React 18 · TypeScript · Vite · Ant Design 5
Backend Fastify · TypeScript · Prisma · PostgreSQL
SSH ssh2 (Node.js) proxied over WebSocket
RDP rdpd (Rust) — Xvfb + xfreerdp3 + x11rb
Auth JWT · bcryptjs · AES-256 encryption at rest
Infra Docker Compose · pnpm workspaces

Features

  • Connection tree — folders with drag-and-drop, context menus, search
  • Tabbed sessions — each connection opens in its own tab
  • SSH terminal — xterm.js over WebSocket, resize support
  • RDP viewer — canvas-based remote desktop via rdpd (JPEG frame streaming)
  • Connection profiles — reusable credential templates (SSH or RDP specific), assigned per connection. Profile values act as defaults, connection-level values override.
  • Encrypted storage — passwords and private keys AES-256 encrypted at rest
  • JWT auth — all API and WebSocket routes are login-protected

Quick start (Docker Compose)

git clone https://github.com/yourname/mremotify.git
cd mremotify

cp .env.example .env
# Edit .env: set ENCRYPTION_KEY, JWT_SECRET, ADMIN_PASSWORD

docker compose up -d

open http://localhost

Default login: admin / admin123 (set ADMIN_USER / ADMIN_PASSWORD in .env before first start).

Development

Prerequisites: Node.js >= 20, pnpm >= 9, PostgreSQL running locally.

pnpm install

cp .env.example .env
# Set POSTGRES_URL to your local DB

cd backend && npx prisma migrate dev && npx prisma db seed && cd ..

pnpm dev

Frontend dev server runs on http://localhost:5173 (proxies /api and /ws to backend). Backend API runs on http://localhost:3000.

Project structure

mremotify/
  frontend/           React + Vite SPA
  backend/            Fastify API, WebSocket proxies, Prisma schema
  rdpd/               Rust RDP daemon (Xvfb + xfreerdp3, WebSocket on :7777)
  docker/             Dockerfiles + nginx config
  docker-compose.yml
  .env.example

Environment variables

Variable Description
POSTGRES_URL PostgreSQL connection string
ENCRYPTION_KEY Key for AES-256 encryption (passwords, keys)
JWT_SECRET Secret for signing JWT tokens
ADMIN_USER Initial admin username
ADMIN_PASSWORD Initial admin password
RDPD_URL rdpd WebSocket URL (default: ws://rdpd:7777)
PORT Backend port (default: 3000)