VSSM (VintageStory Server Manager)

A server manager for VintageStory

IMPORTANT INFORMATION

This project is currently in development, and thus everything is subject to change

About

VSSM allows you to create and manage multiple VS servers

Installation and Usage

There are no binaries just yet, so you have to download the source files.

Setup is easy from source, all you need is:

  • Linux
  • Go
  • .NET 10 Runtime

If you are using NixOS, a flake.nix is provided, just run nix develop for a full development enviroment

  • Once you have the source code downloaded or cloned, you can run go build to generate an executable.
  • Run ./vssm daemon to start the daemon - (For now, theres no background service created by default, but you can run it in the background with vssm daemon & and kill the process with pkill vssm)
  • Run ./vssm with no arguments to show usage

Configuration

The default configuration file is stored in ~/.local/share/vssm/config.json, however you can pass the --config <path> flag to any command to use a custom configuration. You can also set the VSSM_CONFIG_PATH environment variable in lieu of using the config flag for every command.

The default configuration:

{
  "storage": {
    "app_data_dir": "",
    "install_dir": "/home/user/.local/share/vssm/vssm_data/installs",
    "instances_dir": "/home/user/.local/share/vssm/vssm_data/instances",
    "backup_dir": "/home/user/.local/share/vssm/vssm_data/backups",
    "config_templates_dir": "/home/user/.local/share/vssm/vssm_data/config_templates"
  },
  "daemon": {
    "listen_address": "127.0.0.1",
    "port": 65000
  },
    "instances": {
    "test_server": {
      "Version": "1.22.3",
      "ServerName": "test_server",
      "Port": 12345,
      "config": null
    }
  }
  • Storage

    • install_dir - The directory where versioned server binaries are stored
    • instances_dir - Directory for instances and their data
    • backup_dir - Directory for automatic backups of instances
    • config_templates_dir - Directory for versioned server configuration templates
  • Daemon

    • port - The port the daemon listens on for http requests
    • listen_address - The IP address the daemon listens on
  • Instances

    • Version - The game version
    • ServerName - The name of the instance
    • Port - The port the instance is listening on
    • config - This allows you to set ANY configuration item from the config, example below:

Example instance with extra configuration: NOTE: Most settings that are filepaths should be left alone in the instance config settings, as they will be overwritten automatically (like the ModPaths setting). NOTE: Roles settings must be modified in the actual instance config

"test_server": {
      "Version": "1.22.3",
      "ServerName": "test_server",
      "Port": 12345,
      "config": {
        "AllowPvP": true,
        "WhiteListMode": 1,
        "WelcomeMessage": "Welcome to the server, {0}!",
        "WorldConfig": {
            "Seed": "superawesomeseed",
            "WorldName": "A new world",
            "PlayStyle": "surviveandbuild"
        }
    }
}

Web Interface

Alongside this project, I am developing a seperate web-based dashboard that can be used to manage you servers with a very simple UI. You can get it HERE.

Roadmap

  • Configuration

    • Custom configuration path (passed to the daemon with a flag --config)
      • Daemon instance remembers config path (so you don't have to pass --config everytime you run an ipc command)
    • Daemon listen port
    • Declarative Server configuration (Create servers in config)
      • All configuration options
    • Endpoint for modifying instance configuration (for web ui)
  • Server management

    • Create servers
      • Automatic server binary downloading by version
    • Delete servers
    • Start/Stop servers
    • Server configuration
      • Download correct configuration template for version (see availible templates here)
      • Version
      • Server Name
      • Port
      • Full declarative configuration support in main app config
    • Multiple servers support
    • List servers and their status
    • Send commands to servers
    • Automated server backups
  • Binary releases

  • Automatically set up background service

  • Other

    • First class NixOS support
      • Patch downloaded server binaries for NixOS
      • Official nix package or flake
        • All configuration options
Description
A VintageStory Server Manager for Linux
Readme 188 KiB
2026-06-11 23:21:10 -04:00
Languages
Go 97.4%
Nix 2.6%