Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Deployment

Release build

borger release --build

This produces a release folder containing:

  • /release/server - The final native executable, compiled to run on your OS
  • /release/client - The static webpage, which can be hosted with any HTTP server capable of serving files

Hosting

Deployment is a bit of a manual procedure at the moment due to requirements that Borger isn’t able to provide for free:

  • A domain name. TLS certificate providers typically refuse to generate certificates for a raw IP address.
  • At least one always-on dedicated server. Pros with a high concurrent user (CCU) count typically have multiple across different regions of the world to handle demand.

If enough demand is shown, a paid service will be introduced in order to automate this process. For now, server orchestration and matchmaking are outside the scope of the problems Borger aims to solve.

The simplest, cheapest possible procedure for a small friend group looks something like this. It’s not recommended for any significant amount of CCU, so this guide won’t go into great detail.

  1. Acquire a domain name. If you don’t mind using a subdomain, check out Duck DNS.

  2. Acquire a server. You could either self-host on your own hardware at home (keep in mind that home IP addresses often change), or rent from a cloud provider. Oracle Cloud has an “always free” tier for their bottom of the barrel servers.

  3. Point the domain name at the server’s IP address. Set TTL to 0 to make it propagate fast. For example: DNS Config

  4. Port forwarding

    Transport LayerPortApplication ProtocolPurpose
    UDP6969WebTransportGame Server
    TCP6996WebSocketGame Server
    TCP80HTTPGame Client
    TCP443HTTPSGame Client
  5. TLS Certificates can be obtained for free through a service called Let’s Encrypt, via a tool called Certbot

  6. Run the servers, on the server:

    borger release --run --fullchain /etc/letsencrypt/live/borger.land/fullchain.pem --privkey /etc/letsencrypt/live/borger.land/privkey.pem