Go to file
Anton Franzluebbers 5f52900ded updated README with instructions for docker and docker-compose versions, added docker-compose config for running both the control panel and server with a shared log volume, reduced size of control panel image, use tuptime because uptime isn't installed anyway 2022-11-06 19:11:59 -05:00
control-panel updated README with instructions for docker and docker-compose versions, added docker-compose config for running both the control panel and server with a shared log volume, reduced size of control panel image, use tuptime because uptime isn't installed anyway 2022-11-06 19:11:59 -05:00
server updated README with instructions for docker and docker-compose versions, added docker-compose config for running both the control panel and server with a shared log volume, reduced size of control panel image, use tuptime because uptime isn't installed anyway 2022-11-06 19:11:59 -05:00
.gitignore docker support, move server to sibling folder 2022-09-27 19:12:37 -04:00
LICENSE updated license 2022-02-02 07:52:06 -05:00
README.md updated README with instructions for docker and docker-compose versions, added docker-compose config for running both the control panel and server with a shared log volume, reduced size of control panel image, use tuptime because uptime isn't installed anyway 2022-11-06 19:11:59 -05:00
docker-compose.yaml updated README with instructions for docker and docker-compose versions, added docker-compose config for running both the control panel and server with a shared log volume, reduced size of control panel image, use tuptime because uptime isn't installed anyway 2022-11-06 19:11:59 -05:00
install.sh control panel works more now, added install script to add services and compile 2022-07-10 15:16:44 -04:00
velnet.service control panel works more now, added install script to add services and compile 2022-07-10 15:16:44 -04:00

README.md

VelNet Server

This basic, single-file relay server is designed to be used for network games, and is similar to Photon Realtime in design. It is written in Rust, with a single-threaded, non-blocking design and does not rely on any network frameworks (pure TCP/UDP). A Unity/C# client implementation can be found in our VelNetUnity repository.

Like Photon, there is no built-in persistence of rooms or data. Rooms are created when the first client joins and destroyed when the last client leaves.

The only game logic implemented by the server is that of a "master client", which is an easier way to negotiate a leader in a room that can perform room level operations.

The "group" functionality is used to specify specific clients to communicate with. Note, these client ids can bridge across rooms.

The server supports both TCP and UDP transports.

Running

Option 1: Pull from Docker Hub

docker run -p 5000:5000 velaboratory/velnet

or

docker run -p 5050:5000 --name velnet velaboratory/velnet

To run on a different port and change the name of the container.

Option 2: Use docker-compose

Runs both the control panel and the server.

docker compose up -d

to run, and

docker compose stop

to stop.

This builds the images from the local data in the folder, and doesn't pull anything from Docker Hub.

Option 3: Run Rust natively

  1. Get a linoox server (also runs fine on Windows & OSX, but the instructions below are for Linux)
  2. Clone this repo
  3. Edit config.json to an open port on your firewall
  4. Modify the user field in control-panel/config.json to be your username.
  5. Install rust through using rustup: https://rustup.rs/
  6. Install: sudo ./install.sh
  7. Run server: sudo systemctl start velnet
  8. Run control panel: sudo systemctl start velnet-control-panel
  9. Install tuptime: cargo install tuptime
  10. Install onefetch: cargo install onefetch