/tinypilot

Use your Raspberry Pi as a browser-based KVM.

Primary LanguagePythonMIT LicenseMIT

TinyPilot

CircleCI License Reddit

Overview

Turn your Raspberry Pi into a browser-based KVM.

TinyPilot demo

Features

  • Video capture (HDMI/DVI/VGA)
  • Keyboard forwarding
  • Mouse forwarding
  • Fullscreen mode
  • Paste text from clipboard

Official builds

TinyPilot official hardware packages give you everything you need to run TinyPilot and allows you to fund TinyPilot's development for future improvements.

Photo of TinyPilot Voyager

Voyager is TinyPilot's professional-grade KVM over IP device. Its quiet, compact design makes it a great fit for professional environments such as offices, data centers, and server rooms.

Photo of TinyPilot Voyager

The TinyPilot Hobbyist Kit is a great fit for home users who want a low-cost, DIY KVM over IP device.

Build your own

All-in-one kits are available from tinypilotkvm.com.

See "TinyPilot: Build a KVM Over IP for Under $100" for a more detailed tutorial on how to assemble these parts to create a TinyPilot.

Pre-requisites

  • Raspberry Pi OS Stretch or later
  • python3-venv

Simple installation

You can install TinyPilot on a compatible Raspberry Pi in just two commands.

curl \
  --silent \
  --show-error \
  https://raw.githubusercontent.com/mtlynch/tinypilot/master/quick-install | \
    bash - && \
  sudo reboot

The installation process:

  • Creates a service account for TinyPilot with limited priviliges.
  • Installs TinyPilot as a systemd service so it runs automatically on every boot.
  • Installs TinyPilot's dependencies.

When your Pi reboots, you should be able to access TinyPilot by visiting your Pi hostname in the browser. For example, if your device is named raspberrypi:

Other installation options

Options

TinyPilot accepts various options through environment variables:

Environment Variable Default Description
HOST 0.0.0.0 Network interface to listen for incoming connections.
PORT 8000 HTTP port to listen for incoming connections.
KEYBOARD_PATH /dev/hidg0 Path to keyboard HID interface.
MOUSE_PATH /dev/hidg1 Path to mouse HID interface.
DEBUG undefined Set to 1 to enable debug logging.

Updates

To update to the latest version of TinyPilot, run the update script:

/opt/tinypilot/scripts/upgrade && sudo reboot

Diagnostics

If you're having trouble with TinyPilot, you can run /opt/tinypilot/dev-scripts/dump-logs to print logs for all the software components related to TinyPilot. This log is useful if you file a bug report.

You can read more details about the logs in the wiki.

Security considerations

TinyPilot does not support authentication. You should only use TinyPilot on networks that you trust. Anyone who accesses the TinyPilot URL can shutdown or restart your Pi and type arbitrary commands into the device to which your Pi is connected.

If you need authentication, the simplest solution would be to adjust your Nginx configuration (included by default with the installation) to require HTTP Basic Authentication.

Support

If this project is useful to you, consider making a financial contribution to support its development:

Detailed project updates

If you're interested in seeing what's happening with the project at a granular level, weekly updates appear every Friday on What Got Done:

See also

Mailing list

For news about major TinyPilot releases and other updates about the project, sign up for the TinyPilot mailing list: