Getting Started
This guide takes an installed r3v3rs3 and builds a working proxy. It takes a few minutes.
Install r3v3rs3 first. The home page lists every way: the Linux install script, Docker, Docker Compose, Cargo and the release archives.
Step 1: Create an Admin Account
r3v3rs3 starts with no account. Create one on the command line. The command asks for the password, which needs at least 8 characters:
$ r3v3rs3 add-user admin
$ password?: ******
For two-factor authentication, add --totp. The command prints the secret once. Add it to your authenticator app at that time:
$ r3v3rs3 add-user admin --totp
$ password?: ******
Use this code to setup your TOTP client:
EXAMPLECODEEXAMPLECODE
add-user creates an admin account. Accounts describes the editor and viewer roles and the per-account proxy lists.
Step 2: Start the Server
$ r3v3rs3 start
The admin WebUI listens on http://localhost:46492/. Sign in with the account of Step 1.
The WebUI serves plain HTTP. On a remote machine, reach it through SSH port forwarding instead of opening its port to the internet:
$ ssh -L 46492:127.0.0.1:46492 user@your-serverStep 5 shows how to serve the WebUI over HTTPS through r3v3rs3 itself.
Step 3: Bind a Port
A proxy needs a port that listens for the clients.
- Click Ports in the menu.
- Click Add.
- Name the port, for example
My Website. The name can stay empty. - Select the network interface.
0.0.0.0listens on every interface. - Select the port, for example
80. Check that no other program uses it, and that you may bind it. A Linux port below 1024 needs root or theCAP_NET_BIND_SERVICEcapability. - Select the protocol. This example uses HTTP.
- Click Create.
- Check that the port appears in the list with the state Listening. Another state names the reason, for example Address In Use or Permission Denied.
Step 4: Create a Proxy
- Click Proxies in the menu.
- Click Add.
- Name the proxy, for example
My Website. The name can stay empty. - Select the protocol HTTP / HTTPS.
- Select the port of Step 3. A proxy can use several ports.
- Leave Virtual Hosts empty, so the proxy matches every host. A value like
example.commatches that host only. - Write the address of your application in Target, for example
http://127.0.0.1:3000. - Click Create.
- Check that the proxy appears in the list. It is active at once.
Send a request to the port of Step 3. The answer comes from your application:
$ curl -i http://127.0.0.1/
A 502 Bad Gateway means r3v3rs3 reached no upstream server. Check the Target address and your application.
Step 5: Add a Certificate
A public site needs HTTPS. r3v3rs3 orders certificates from an ACME server, for example Let's Encrypt.
- Bind a second port with the protocol HTTPS, for example
443. - Click Certificates in the menu, then the ACME tab, then Add.
- Select the provider, write your email address and the domain names.
- Select the challenge. HTTP-01 needs a port
80that the internet reaches. DNS-01 needs no open port and issues wildcard certificates. - Click Create. The order runs at once and then every day.
- Add the HTTPS port to your proxy and write the domain name in Virtual Hosts.
Certificates and ACME describe every field.
Next Steps
- Configuration: routing, load balancing, caching, authentication, rate limits and every other proxy setting.
- Accounts: roles, proxy lists and the audit log.
- Service Discovery: proxies from Docker labels, Kubernetes, Consul and etcd.
- High Availability: several nodes with one shared state.