2 releases
0.5.1 | Sep 18, 2022 |
---|---|
0.5.0 | Sep 18, 2022 |
#93 in Games
35KB
817 lines
OwnServer
Expose your local game server to the Internet.
This software aims to minimize cost and effort to prepare local game server like Minecraft, Factorio, RUST and so on.
- Cost you'll save
- You can utilize any redundunt compute resource for game server as long as they can connect to the Internet.
- You can save cost for Cloud, VPS.
- Effort you'll save
- No firewall, NAT settings is required.
- GUI application is also available.
Features
- Expose your local TCP/UDP endpoint to the Internet
- Offer GUI client for game server for Minecraft, factorio, RUST, etc.
Installation
Recommended
install it by cargo
cargo install ownserver
If you dont have cargo installed, please install rustup beforehand
Download binary
Download binary for your OS:
https://github.com/Kumassy/ownserver/releases
cargo build
Optionally, you can build ownserver by yourself:
git clone https://github.com/Kumassy/ownserver.git
cd ownserver
cargo build --release
Usage
⚠️ This software has not yet reach stable release. Use with caution! ⚠️
We also offer GUI. visit ownserver-client-gui
% ownserver -h
ownserver 0.5.1
USAGE:
ownserver [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
--control-port <control-port> Advanced settings [default: 5000]
--local-port <local-port> Port of your local game server listens e.g.) 25565 for Minecraft [default:
3000]
--payload <payload> tcp or udp [default: tcp]
--token-server <token-server> Advanced settings [default: https://auth.ownserver.kumassy.com/v1/request_token]
# listen on local port
% nc -kl 3000
% ownserver --payload tcp --local-port 3000
Connecting to auth server: https://auth.ownserver.kumassy.com/v1/request_token
Your proxy server: shard-7924.ownserver.kumassy.com
Connecting to proxy server: shard-7924.ownserver.kumassy.com:5000
Your Client ID: client_755d0b36-f863-41e1-b5ff-c6c89fdb92a5
+---------------------------------------------------------------------------------------------------+
| Your server tcp://localhost:3000 is now available at tcp://shard-7924.ownserver.kumassy.com:17974 |
+---------------------------------------------------------------------------------------------------+
# you can send any TCP packet to local port!
% nc shard-7924.ownserver.kumassy.com 17974
hello
via cargo
% cargo run --release --bin ownserver -- -h
Run Minecraft Server
# run minecraft server
java -Xmx1024M -Xms1024M -jar server.jar nogui
# run ownserver client
ownserver -- --payload tcp --local-port 25565
share your public URL!
How it works
This app creates a private tunnel between our server and your local game server. You'll get a dedicated global public address for your server. All requests to that public address are forwarded to your local game server throught the tunnel.
Similer Project
This software was initially developed as a fork of tunnelto.
Contributing
Project Layout
- ownserver/ownserver
- include executable of client application
- also serves library for ownserver-client-gui
- ownserver/ownserver_lib
- define transmission protocol between client and server
- ownserver/ownserver_server
- establish private tunnel to client
- forward request between public endpoints to a set of client
- ownserver-auth
- performs user authentication and load balancing
- ownserver-client-gui
- GUI for ownserver client
Running tests
cargo test
Self-hosting
TODO
Issue/PR
Feel free to open Issues, send Pull Requests!
License
MIT
Dependencies
~20–30MB
~669K SLoC