Setup & Install
Acronyms
Choose where to host
WireTile is self-hosted, which means you decide where to host it. There are generally 2 options:
At home
Host at home using your own home server and residential internet connection.
A home server is simply a computer you own that's running Linux and stays powered on. Almost any computer will do, such as an old desktop or laptop.
In a datacenter
Host using a VPS from your preferred cloud hosting provider.
A low cost VPS will suffice, such as Vultr's $5/month.
Server setup
Requirements: Linux x86_64/ARM64, a public IP address.
For simplicity we'll assume that the Linux distro being used is Ubuntu Server LTS. Exact steps may vary depending on distro.
Install WireTile
Systemd
Additional useful commands:
Docker
Additional useful commands (assumes in directory ~/wt):
Additional useful commands:
Certificates setup
The Web App expects your devices (e.g. PC, phone) and server to trust web connections to/from each other. This can be accomplished by adding certificate-authority.pem and client-certificate.p12 to your device.
These files would be located at ~/wt given the above instructions.
This only has to be done one time per browser/device, unless in the future you choose to manually regenerate the certificates via the wiretile delete-certificates command.
If prompted for a password when importing client-certificate.p12 simply leave it blank and continue.
What are these files?
These files were generated locally/offline when you first ran WireTile and are unique to you.
Lookup asymmetric or public-key cryptography if interested in more details.
Desktop
Add certificates to the web browser:
Mobile
Add certificates to the OS:
Web App
WireTile's logs will display a "Web App URLs" section listing the URLs to access the Web App. See Server setup for command to view logs. From your device (e.g. PC, phone) navigate to the URL using a web browser. There may be multiple URLs depending on your setup, in which case try each until one succeeds.
On mobile using a Chromium-based browser is required, as mobile Firefox doesn't support client certificates.
Reminder that Certificates setup must be completed on the device in order for it to access the Web App.
Commands
Usage: wiretile [OPTIONS] [COMMAND] OPTIONS: --help -v, --version --data {path} Path to data directory for database and other files. Defaults to binary's current dir. --net-port {port} Port for Server's TCP peer-to-peer communication. Default 4004. --web-port {port} Port for Web App's HTTPS. Default 4000. --no-upnp Don't use UPnP to automatically manage router NAT and/or firewall. --ipv4-public {addr} IPv4 public address. Default queries router via UPnP, unless using --no-upnp. --ipv4-private {addr} IPv4 private address. Defaults to best guess. --ipv6-public {addr} IPv6 public address. Defaults to best guess. --ipv6-private {addr} IPv6 private address. Defaults to best guess. --interface {name} Obtain the above IP addrs from this network interface. Defaults to best guess. COMMAND: help version identity Print peer-to-peer identity information. delete-certificates Delete all keys and certs used for Web App. New keys and certs will be generated on start.
Acknowledgements
WireTile is written in Go and TypeScript, and uses the following packages/libraries/tools: