IogaMaster / flux

Create and deploy game servers with nix
MIT License
48 stars 1 forks source link

Design Doc #1

Closed IogaMaster closed 6 months ago

IogaMaster commented 7 months ago

Workflow

To create a server with dynamo you follow these steps:

Usage

Creates a systemd user and services for your servers. You can choose to run in a container or microvm

dynamo.servers."vanillaminecraft" = {
  enabled = true;
  package = (import ./minecraftserver.nix); 
  reverseProxy = {
    enabled = true;
    backend = "playit"; # playit, ngrok, cloudflare
    # token = ""; # optional for certain backends
    port = 25565;
  };
};

Example minecraft server package:

{...}:
buildMinecraftServer {
  name = "myvanillaserver";
  src = ./mcmanconfigpath; # This is the path to the mcman config. That way I don't need to work on minecraft compatibility

  # Additional setup
}

Todo List:

builderFunctions:

Additional Features:

Example Servers:

kinzoku-dev commented 7 months ago

Screenshot_20240310_201612_YouTube.jpg

IogaMaster commented 6 months ago

Triage over! Initial version is done. However proxies and better mkSteamServer function are planned.

IogaMaster commented 6 months ago

Proxy support is complete Example servers are left