Note: this crate is still in early-development, so expect breaking changes.
A server that runs the gday_contact_exchange_protocol.
To run the executable directly:
- Go to releases and download the correct file for your platform.
- Extract it (on Linux:
tar xf <file>). - Run it:
./gday_server
To install with cargo:
$ cargo install gday_server
To install with brew:
$ brew install manforowicz/tap/gday_server
Usage: gday_server [OPTIONS]
Options:
-k, --key <KEY> PEM file of private TLS server key
-c, --certificate <CERTIFICATE> PEM file of signed TLS server certificate
-u, --unencrypted Use unencrypted TCP instead of TLS
-a, --address <ADDRESS> Custom socket address on which to listen. [default: `[::]:2311` for TLS, `[::]:2310` when --unencrypted]
-t, --timeout <TIMEOUT> Number of seconds before a new room is deleted [default: 3600]
-r, --request-limit <REQUEST_LIMIT> Max number of requests an IP address can send in a minute before they're rejected [default: 60]
-v, --verbosity <VERBOSITY> Log verbosity. (trace, debug, info, warn, error) [default: info]
-h, --help Print help
-V, --version Print version
One of the strengths of gday is its decentralized nature. Want to add your own server to the list of default servers? Here's how:
- Get a virtual private server (VPS) from a hosting service. It must have public IPv4 and IPv6 addresses and not be behind NAT.
- Buy/configure a domain name to point at your VPS.
- On the VPS, get a TLS certificate using certbot with your domain name.
- On the VPS, use a tool such as
wgetto download gday_server from the releases page. - On the VPS, run the
gday_serverwith the correct TLS arguments. - On a local device, verify you can use
gdaywith your server domain name passed as an argument. - On the VPS, follow instructions in gday_server.service to set up a systemd service.
- Verify
gday_serverauto-starts in the background, even when you reboot the server. - Submit an issue, asking for your server to be added to the default server list.
- gday - Command line tool for sending files.
- gday_contact_exchange_protocol - Library with protocol for two peers to share their socket addresses via a server.