Files
vssm/README.md
2026-06-11 22:28:05 -05:00

129 lines
4.8 KiB
Markdown

# 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:
```json
{
"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
```json
"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
### NEW: [v1.0.0 Bundled Release (Includes Web Interface)](https://git.bellsworne.tech/chrisbell/vssm_full/releases/tag/v1.0.0)
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](https://git.bellsworne.tech/chrisbell/vssm_web).
## Roadmap
- [x] Configuration
- [x] Custom configuration path (passed to the daemon with a flag `--config`)
- [x] Daemon instance remembers config path (*so you don't have to pass `--config` everytime you run an ipc command*)
- [x] Daemon listen port
- [x] Declarative Server configuration (Create servers in config)
- [x] All configuration options
- [x] Endpoint for modifying instance configuration (for web ui)
- [ ] Server management
- [x] Create servers
- [x] Automatic server binary downloading by version
- [x] Delete servers
- [x] Start/Stop servers
- [x] Server configuration
- [x] Download correct configuration template for version (see availible templates [here](https://git.bellsworne.tech/chrisbell/vssm_config_templates))
- [x] Version
- [x] Server Name
- [x] Port
- [x] Full declarative configuration support in main app config
- [x] Multiple servers support
- [x] List servers and their status
- [x] Send commands to servers
- [ ] Automated server backups
- [ ] Binary releases
- [ ] Automatically set up background service
- [ ] Other
- [ ] First class NixOS support
- [x] Patch downloaded server binaries for NixOS
- [ ] Official nix package or flake
- [ ] All configuration options