2021-03-21 17:49:34 +00:00
![The PTTH logo, a green box sitting on a black conveyor belt. The box has an arrow pointing left, and the text "PTTH", in white. The conveyor belt has an arrow pointing right, in white. ](assets/logo-128-pixel.png )
2021-10-02 16:55:04 +00:00
TODO: "Splitting a server in half" diagram
2021-03-21 17:49:34 +00:00
# PTTH
PTTH lets you run file servers from behind NAT / firewalls.
```
HTTP clients ptth_server instances
Firefox ---> | | < --- Server 1
Chromium --> | | < --- Server 2
Wget ------> | ptth_relay | < --- Server 3
Curl ------> | | < --- Server 4
Reqwest ---> | | < --- Server 5
```
# Setup
2021-03-21 19:10:24 +00:00
Pick a relay computer and a server computer.
The relay must be able to accept incoming HTTP connections. If the relay
will be exposed to the Internet, you should use Nginx, Caddy, or Apache as a
reverse proxy to terminate TLS in front of ptth_relay. Relays on the Internet
will typically have a domain name so that clients and servers can find them.
The server must have read access to the files you want to serve, and it must
be able to make outgoing HTTP(S) connections to the relay. The server
does not need a static IP, since it won't accept any incoming HTTP connections.
Begin installing PTTH. Run `cargo install ptth_relay` on the relay and
`cargo install ptth_server` on the server. ptth_server is manually tested on
Windows and Linux. ptth_relay is manually tested on Linux only.
2021-03-21 17:49:34 +00:00
- Run ptth_relay on cloud host
- Configure ptth_server for relay, with auto keygen
- Add tripcode to relay config