Wt Rpm

Wt Remote Power Manager - This project acts as a web front end to a piece of hardware capable of electronically switching the power supply of one or multiple computers.
Alternatives To Wt Rpm
Select To Compare





Ping support

If you are interested in supporting ping, you will have to install liboping.

Raspberry Pi backend

To compile the Raspberry Pi backend, please make sure you have installed libwiringPi.


To compile the project, please execute the following steps:

If you plan on using Wt's internal http server:




mkdir build
cd build

Review the summary, fix as needed. Then do:

sudo make install


Wt_rpm's configuration must be stored in one of the following location:

  • ./wt-rpm.json
  • ../wt-rpm.json
  • ~/.wt-rpm.json
  • /etc/wt-rpm.json

The file must follow the JSON format and must contain the backend attribute. At the moment, there are only two acceptable attribute: rasprpm and dummy_rpm. Here is a sample configuration file:

{ "backend": "rasprpm", "configuration": { "computers": [ { "name": "pc1", "ip_address": "", "read_acl": ["all"], "write_acl": [],

                            "power_led_gpio": {
                                    "pin": 6,
                                    "inverted": "true"

                            "power_switch_gpio": {
                                    "pin": 8,
                                    "inverted": "false"

                            "atx_switch_gpio": {
                                    "pin": 10,
                                    "inverted": "false"

                            "name": "pc2",
                            "ip_address": "",
                            "read_acl": ["toto", "john"],
                            "write_acl": ["toto"],

                            "power_led_gpio": {
                                    "pin": 1,
                                    "inverted": "true"

                            "power_switch_gpio": {
                                    "pin": 0,
                                    "inverted": "false"

                            "atx_switch_gpio": {
                                    "pin": 7,
                                    "inverted": "false"



If you want to authenticate users before allowing them to list and control computers, you will need to use an http server such as nginx. Here is an example:

worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream;

keepalive_timeout  65;

gzip  on;

server {
    listen       443 ssl;
    server_name  localhost;
    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

     # Wt
    location /resources/ {
        root   /usr/share/Wt/;
        index  index.html index.htm;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;

        auth_basic "WtRPM";
        auth_basic_user_file /etc/nginx/htpasswd;



Don't forget to use SSL otherwise, the passwords will be sent through the network in plain text!


After installing Wt-RPM, the program needs some special capabilities to run as a normal user. Please run the following:

setcap "CAP_NET_RAW=+ep CAP_SYS_RAWIO=+ep" /usr/bin/wt_rpm

Please also make sure that the user has the right to write to /dev/mem.


If you are able to execute wt_rpm properly, you can use the shipped systemd unit (configured for the user wtrpm).

Popular Hardware Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.