summaryrefslogtreecommitdiff
path: root/README.md
blob: 907da9743500aee06449fe99140f3feecd1b7cba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# pirc-extension

The [pi](https://github.com/earendil-works/pi) extension of
[PiRC](https://pirc.dev): it puts every interactive pi session on a PiRC
relay, so that you can follow and drive it from a phone or another
client. You need a relay of your own; PiRC's self-hosting guide covers
running one.

This repository holds releases only: the extension built into one file
(`index.js`). Its source is in PiRC's repository.

## Install

pi installs it from this repository with `git` and `npm`. Pin it to a
release:

```sh
pi install git:<this repository's host and path>@vX.Y.Z
```

To upgrade, upgrade your relay first, then install the newer tag the same
way. `pi update` keeps a pinned install where it is. Installing without a
tag follows this repository's default branch, and `pi update --extensions`
then moves it whenever a release is published, possibly ahead of your
relay.

## Enrol

On the relay, issue a host token (`pirc-relay add-host --label <name>`).
In pi:

```
/pirc enrol wss://<relay-address>:<port> <token>
```

`/pirc status` shows the connection, and `/pirc reconnect` reconnects.
The enrolment is saved in `~/.config/pirc/host.json` (or the file
`PIRC_CONFIG` names), with the host's key beside it in `host.key`; every pi
process on the host uses the same key. `PIRC_RELAY` overrides the relay
URL, and `PIRC_TOKEN` supplies a registration token, so a host can be
enrolled without the command.

If the relay's certificate is self-signed or from a private CA, set
`NODE_EXTRA_CA_CERTS` to the CA's PEM file in the environment pi starts in.

## Licence

MIT; see `LICENSE`. The bundle includes third-party code, listed in
`NOTICE`, under the licences in `third_party/`.