All Projects → SterlingButters → Ip Kvm Interface

SterlingButters / Ip Kvm Interface

Licence: mit
DIY IP-KVM for Remote Desktop Access

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Ip Kvm Interface

Pikvm
Open and cheap DIY IP-KVM based on Raspberry Pi
Stars: ✭ 3,950 (+6270.97%)
Mutual labels:  raspberry-pi, kvm, vnc
Ws Scrcpy
Web client prototype for scrcpy.
Stars: ✭ 164 (+164.52%)
Mutual labels:  remote-control, remote, browser
Drag Drop
HTML5 drag & drop for humans
Stars: ✭ 443 (+614.52%)
Mutual labels:  browser, html5
Theannoyingsite.com
The Annoying Site a.k.a. "The Power of the Web Platform"
Stars: ✭ 446 (+619.35%)
Mutual labels:  browser, html5
Webdriver
Remote control interface that enables introspection and control of user agents.
Stars: ✭ 546 (+780.65%)
Mutual labels:  remote-control, browser
Uxp
This is a GitHub mirror of the Unified XUL Platform. The main repository can be found at https://repo.palemoon.org/MoonchildProductions/UXP/
Stars: ✭ 363 (+485.48%)
Mutual labels:  browser, html5
Docker Idrac6
iDRAC 6 web interface and VNC proxy
Stars: ✭ 373 (+501.61%)
Mutual labels:  remote, vnc
Ustreamer
µStreamer - Lightweight and fast MJPG-HTTP streamer
Stars: ✭ 533 (+759.68%)
Mutual labels:  raspberry-pi, kvm
Marlin Config
Marlin firmware instant configurator
Stars: ✭ 327 (+427.42%)
Mutual labels:  remote-control, browser
H264 Live Player
A live h264 player for the browser (ideal for raspberrypi / raspicam )
Stars: ✭ 886 (+1329.03%)
Mutual labels:  raspberry-pi, html5
Papertty
PaperTTY - Python module to render a TTY or VNC on e-ink
Stars: ✭ 699 (+1027.42%)
Mutual labels:  raspberry-pi, vnc
Skyrat
SkyRAT - Powershell Remote Administration Tool
Stars: ✭ 21 (-66.13%)
Mutual labels:  remote-control, remote
Simple Mpv Webui
A web based user interface with controls for the mpv mediaplayer.
Stars: ✭ 58 (-6.45%)
Mutual labels:  remote-control, remote
Balena Wpe
Fullscreen WebKit browser with hardware accelerated CSS, WebGL, and HTML5 video for the RaspberryPi 3.
Stars: ✭ 353 (+469.35%)
Mutual labels:  raspberry-pi, browser
Quasar
Remote Administration Tool for Windows
Stars: ✭ 4,897 (+7798.39%)
Mutual labels:  remote-control, remote
Mmm Remote Control
Magic Mirror Module to shutdown or configure your mirror
Stars: ✭ 331 (+433.87%)
Mutual labels:  raspberry-pi, remote-control
Simpleremoter
基于gh0st的远程控制器:实现了终端管理、进程管理、窗口管理、远程桌面、文件管理、语音管理、视频管理、服务管理、注册表管理等功能,优化全部代码及整理排版,修复内存泄漏缺陷,程序运行稳定。项目代码仅限于学习和交流用途。
Stars: ✭ 478 (+670.97%)
Mutual labels:  remote-control, remote
Tinypilot
Use your Raspberry Pi as a browser-based KVM.
Stars: ✭ 1,078 (+1638.71%)
Mutual labels:  raspberry-pi, kvm
iCtrl
UofT Engineering Lab Remote
Stars: ✭ 91 (+46.77%)
Mutual labels:  remote-control, vnc
Greenfield
HTML5 Wayland compositor 🌱
Stars: ✭ 296 (+377.42%)
Mutual labels:  browser, html5

IP-KVM-InterFace

alt text

About

This project creates a web-accessable IPMI / IP KVM system utilizing any OTG enabled Raspberry Pi device (theoretically - testing only done on RPi4) that provides full keyboard and mouse control, monitor view, and the ability to reboot computers with standard motherboards remotely (WOL & GPIO-Relay). This projects intends to also create an interface with consistent and minimal programmatic requirements (i.e. use of web stack languages only) with modularity and organization. This project is EXTREMELY light weight and easy to install and configure. Additionally, this allows further development with minimal orientation overhead.

The project's working features (with caveats):

1) Keyboard

  • Future Work: Send shortcuts via HTML button interface

2) Mouse

  • Future Work: Scroll wheel support

3) Video Source (selection/refresh) (e.g. /dev/video0, etc)

  • Future Work: Try HLS stream

4) Mass Storage Emulation

  • Future Work: Verify detachability
  • Future Work: Perform .img test
  • Future Work: Support licomposite "stall"
  • Future Work: Add a dd file converter and/or alter accept attribute of file input tag

5) GPIO Interface (must initialize pins manually in app.js)

  • Future Work: Identification of GPIO pin configuration for support of the following: - Relay Channel IOT - Upstream USB Switch YKUP - USB Switchable Hub YKUSH3 - LIRC Transmitter/Receiver ENER314-IR

6) WOL

  • Future Work: Configure /network/interfaces for user
  • Future Work: Detect MAC addresses with button

7) Terminal

  • Future Work: Add "Copy Command" button to fork process output

8) Authentication

  • Future Work: Twilio-based multi-factor authentication
  • Future Work: PAM authentication || equivalent

9) Remote Access

  • Future Work: Link/iFrame to gateway address (for port forwarding configuration)
  • Future Work: no-ip2 API DDNS support in interface
  • Future Work: VPN configuration information
  • Future Work: Embedded VNC Client using noVNC
  • Future Work: Dataplicity "Wormhole" Instruction video stream is "insecure" content

10) Installation Script (/configuration/install.sh

  • Future Work: Configure as systemd service
  • Future Work: Add dtoverlay=dwc2 to /boot/config.txt

Configuration

Setup

alt text

**Image needs updating to show possible GPIO configurations

Installation

  1. Enable the dwc2 dtoverlay in /boot/config.txt on your Pi4

  2. Install node/npm/pip in

  3. Run npm install

  4. Run sudo bash < project-directory >/configuration/composit-gadget-setup_v1.sh

  5. Run sudo node app.js

  6. Navigate to http://localhost:3000 in your browser

  7. See below for remote access instruction

**Post issue for installation guidance (or look at /configuration/install.sh)

DDNS and Port Forwarding:

  1. Log into router

  2. Set up up port forwarding to :port that is chosen for the Interface during install [3000 recommended]

  3. Sign up for DDNS:

  4. Create a hostname (no-ip client to be set up in install)

Shopping List:

  • Raspberry Pi4 (Starter Kit)[$89.99]:

  • Capture Card Options:

    • LinkStable (verified)[$99.99]:

    • PenGo [4K] (experimental)[$149.99]:

  • Cables:

    • USB to USB-C [comes in Pi4 starter kit]
    • HDMI x2 [~$5.99]
    • Ribbon Cables [~$7.50]:

Troubleshooting

  • Ensure all cables are data-transfer capable

Cost-Cutting

  • Cheaper capture cards exist; the one chosen allows for throughput of video to a display
  • The complete RPi4 starter kit might be a bit overkill but easy one-stop-shop for beginner

Collaboration & Support

Donate with PayPal: Donate

Join me on Discord: Discord

Note to developers

This project hosts a node-generated server on an OTG-capable Raspberry Pi device. The install script creates the libcomposite device on the Pi. The code then transcribes the information that is fed through the browser and relays it to the target computer using socket.io. Video is achieved using JSMPEG (would like to find something even faster like WebRTC maybe). There are likely many approaches to current solutions. For instance, the mouse report descriptor is that for a generic mouse with basic functions. It might be possible to create a report descriptor that generates output reports from the mouse to provide absolute position on the screen. Additionally, it might be possible to detect the display resolution and calibrate the mouse movement. Currently, it doesn't seem that that level of rigor is worth it. Other improvements like this could likely be made as well.

I do plan on going back and cleaning up this code to be more readable but we will see if that happens anytime soon.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].