clvrk / vellum Goto Github PK
View Code? Open in Web Editor NEWBedrock Server manager with backup functionality, plugin support and more.
Bedrock Server manager with backup functionality, plugin support and more.
Here's my config:
{
"BdsBinPath": "/home/gameserver/minecraft/bedrock_server",
"WorldName": "sm_world",
"Backups": {
"EnableBackups": true,
"BackupInterval": 60.0,
"ArchivePath": "/home/gameserver/minecraft/backups/",
"BackupsToKeep": 10,
"OnActivityOnly": false,
"StopBeforeBackup": false,
"NotifyBeforeStop": 60,
"BackupOnStartup": true,
"PreExec": "",
"PostExec": ""
},
"Renders": {
"EnableRenders": true,
"PapyrusBinPath": "/home/gameserver/papyruscs/PapyrusCs",
"PapyrusOutputPath": "/var/www/html/minecraft/",
"RenderInterval": 180.0,
"PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html -f png -q 100 --deleteexistingupdatefolder",
"PapyrusTasks": [
"--dim 0",
"--dim 1",
"--dim 2"
]
},
"QuietMode": false,
"HideStdout": true,
"BusyCommands": true,
"CheckForUpdates": true,
"StopBdsOnException": true
}
It says "backup successful" instantly, and there's no data in said backup folder.
/home/gameserver/minecraft//vellum
vellum v1.2.3 build 157
by clarkx86 & DeepBlue
Loading configuration "configuration.json"... Done!
Checking for updates...
Creating initial world backup...
[ VELLUM ] Creating backup...
[ VELLUM ] -> Creating full world backup...
[ VELLUM ] Backup done!
NO LOG FILE! - setting up server logging...
[2020-09-05 23:57:09 INFO] Starting Server
[2020-09-05 23:57:09 INFO] Version 1.16.20.3
[2020-09-05 23:57:09 INFO] Session ID ddca48b5-13da-4ddb-a5b9-33c1cba4622d
[2020-09-05 23:57:09 INFO] Level Name: sm_world
[2020-09-05 23:57:09 INFO] Game mode: 2 Adventure
[2020-09-05 23:57:09 INFO] Difficulty: 1 EASY
[2020-09-05 23:57:09 INFO] opening worlds/sm_world/db
[2020-09-05 23:57:13 INFO] IPv4 supported, port: 19132
[2020-09-05 23:57:13 INFO] IPv6 supported, port: 19133
[2020-09-05 23:57:13 INFO] IPv4 supported, port: 41590
[2020-09-05 23:57:13 INFO] IPv6 supported, port: 57779
[2020-09-05 23:57:18 INFO] Server started.
Here's the server log...
vellum v1.2.3 build 157
by clarkx86 & DeepBlue
Loading configuration "configuration.json"... Done!
Checking for updates...
Disabling renders because no valid path to a Papyrus executable has been specified
Creating initial world backup...
[ VELLUM ] Creating backup...
[ VELLUM ] -> Clearing local world backup directory...
[ VELLUM ] -> Invalid world directory. Could not create full world backup!
[ VELLUM ] Backup done!
Stopping Bedrock server due to an unhandled exception from vellum...
System.ComponentModel.Win32Exception (2): No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Vellum.Automation.ProcessManager.Start()
at Vellum.Program.Main(String[] args)
Unhandled exception. System.ComponentModel.Win32Exception (2): No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Vellum.Automation.ProcessManager.Start()
at Vellum.Program.Main(String[] args)
Aborted (core dumped)
However, the executable is terminating with this error:
"NOTICE: Hot-backups are currently not supported on Windows. Please enable "StopBeforeBackup" in the "configuration.json" instead."
There was known bug with 1.14 that prevent Hot-Backups. With 1.16 maybe it got fixed?
What is the difference between a backup without a server stop and a backup with With backup from Server stop
Hello Clarkx
It seems NotifyBeforeStop is not working since the server is stopped for backup without any warning message. I'm using the Windows build. Furthermore, it seems it affects the following versions:
Configuration I'm using:
{
"BdsBinPath": "D:\\Minecraft\\bedrock-server-1.16.0.2\\bedrock_server.exe",
"WorldName": "VouLT_Xande",
"Backups": {
"EnableBackups": true,
"BackupInterval": 30.0,
"ArchivePath": "D:\\Minecraft\\bedrock-server-1.16.0.2\\backups\\",
"BackupsToKeep": 10,
"OnActivityOnly": true,
"StopBeforeBackup": true,
"NotifyBeforeStop": 60,
"BackupOnStartup": true,
"PreExec": "echo Starting!",
"PostExec": "echo Success!"
},
"Renders": {
"EnableRenders": false,
"PapyrusBinPath": "D:\\Minecraft\\bedrock-server-1.16.0.2\\papyrusRender\\",
"PapyrusOutputPath": "D:\\Minecraft\\bedrock-server-1.16.0.2",
"RenderInterval": 180.0,
"PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html --deleteexistingupdatefolder",
"PapyrusTasks": [
"--dim 0",
"--dim 1",
"--dim 2"
]
},
"QuietMode": false,
"HideStdout": true,
"BusyCommands": true,
"CheckForUpdates": true,
"StopBdsOnException": true
}
Let me know if you need more information.
Minecraft has broken the backup mechanism again.
The regex pattern is looking for the string to start with "Changes..."
"^(Changes to the (level|world) are resumed.)"
The problem is that when this message is received, it also has a timestamp now.
The simple fix is to replace the regex pattern with "(Changes to the (level|world) are resumed.)"
Hello, I'm trying to set up Vellum with the Windows BDS in a Linux container using Wine.
I'm struggling to get Vellum started and I'm wondering if the behaviour of it shutting down after writing config might be responsible. What is the minimum config required to allow Vellum to start and run straight away?
I'm able to start up both BDS and also Element Zero's modified BDS but not Vellum.
Thanks, Chris
I would like to see a feature where instead of zipping the files one can commit the chunk changes to git to enable versioning control.
This way it would be possible to revert to a specific timestamp using simple commands. Maybe a per-chunk revert tool would also be possible this way (see https://github.com/jasonwynn10/GitRollbacks/tree/master/)
I found that the time gap between the release and the source code is far, please release a new version.
Papyrus has a render error in Windows when attempting a force render.
Hot backups are enabled in Windows
force start render
[ VELLUM ] Creating backup...
[ VELLUM ] -> Holding world saving...
No targets matched selector
[ VELLUM ] -> Copying 200 files...
[ VELLUM ] -> Veryfing file-integrity...
[ VELLUM ] -> Resuming world saving...
[ VELLUM ] Backup done!
[ VELLUM ] Initializing map rendering...
No targets matched selector
No targets matched selector
[ VELLUM ] -> Rendering map 1/3...
Stopping Bedrock server due to an unhandled exception from vellum...
System.ComponentModel.Win32Exception (5): Access is denied.
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Vellum.Automation.RenderManager.Start(String worldPath)
at Vellum.Program.InvokeRender(String worldPath, String tempWorldPath)
at Vellum.Program.<>c__DisplayClass16_1.<Main>b__7(String text)
at Vellum.Program.<>c.<Main>b__16_3()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
[2020-08-22 12:03:01 INFO] Server stop requested.
[2020-08-22 12:03:01 INFO] Stopping server...
Quit correctly
Unhandled exception. System.ComponentModel.Win32Exception (5): Access is denied.
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Vellum.Automation.RenderManager.Start(String worldPath)
at Vellum.Program.InvokeRender(String worldPath, String tempWorldPath)
at Vellum.Program.<>c__DisplayClass16_1.<Main>b__7(String text)
at Vellum.Program.<>c.<Main>b__16_3()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
The pertinent part of my vellum config is below
"EnableRenders": true,
"PapyrusBinPath": "c:\\bedrock-server-1.16.20.03\\papyruscs",
"PapyrusOutputPath": "c:\\bedrock-server-1.16.20.03\\papyruscs\\output",
"RenderInterval": 180.0,
"PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html -f png -q 100 --deleteexistingupdatefolder",
"PapyrusTasks": [
"--dim 0",
"--dim 1",
"--dim 2"
]
},
All folders exist in the appropriate locations as well.
OS: Windows
To reproduce:
It seems to be a 50/50 coin flip (based on a very small data set) whether this problem will happen, maybe related to which process makes it there first. Sometimes it will stay there forever, and sometimes it will move on to the expected behavior of creating the full world backup, restarting the server, and running the render.
A very minor issue but it could mess with batch scripts.
OS: Windows
To reproduce:
If you type a command instead of enter, it throws an exception instead.
Can be fixed with one line, but not sure if/how it would affect Linux. See upcoming pull request. #14
I'm not sure if this is still being maintained, but I've got an error report. I updated the bedrock server to 1.16.221.01 and when I run vellum, I get this error:
vellum v1.3.1 beta build 212
by clarkx86, DeepBlue & contributors
Loading configuration "configuration.json"... Done!
Reading "server.properties"... Done!
Checking for updates...
Creating initial temporary copy of world directory...
[ VELLUM ] Executing pre-command...
[ VELLUM ] Creating backup...
[ VELLUM ] -> Clearing local world backup directory...
[ VELLUM ] -> Creating full world backup...
[ VELLUM ] Backup done!
Stopping BDS due to an unhandled exception from vellum...
System.ComponentModel.Win32Exception (13): Permission denied
at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Vellum.Automation.ProcessManager.Start()
at Vellum.VellumHost..ctor(String[] args)
at Vellum.VellumHost.Main(String[] args)
Unhandled exception. System.ComponentModel.Win32Exception (13): Permission denied
at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at Vellum.Automation.ProcessManager.Start()
at Vellum.VellumHost..ctor(String[] args)
at Vellum.VellumHost.Main(String[] args)
Any idea why?
Hi guys,
Firstly thanks for this project very awesome.
I would like to request a feature I currently backup hourly but would also like to have the server restarted at a particular time of day and a full offline backup taken.
Is it possible to add this feature?
Cheers
Program Output:
[ VELLUM ] -> Clearing local world backup directory...
b__3(String text)
[ VELLUM ] -> Creating full world backup...
[ VELLUM ] Backup done!
Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'input')
at System.Text.RegularExpressions.Regex.Matches(String input)
at Vellum.Automation.ProcessManager.WaitForMatch(String pattern)
at Vellum.Automation.BackupManager.CreateWorldBackup(String worldPath, String destinationPath, Boolean fullCopy, Boolean archive)
at Vellum.Program.InvokeRender(String worldPath, String tempWorldPath)
at Vellum.Program.<>c__DisplayClass14_1.
at Vellum.Program.<>c.b__14_2()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Trying to setup a server using this and I'm getting this error while testing this tool.
This happens when running the "force start render" command.
When creating a backup, Vellum will note that it's creating a backup in the game notification Windows, but the text looks like this:
ŵƖ[VELLUM]ŵr
Running:
v1.2.3 vellum
BDS Windows 1.16.10.2
Windows 10 client
No other 3rd party software.
Depending on the interval and the value that "BackupsToKeep" is set to, you could very well end up with only 6 hours of backups. It'd be nice to have a set schedule (every 6 hours?) for a specified number of Days to keep backups for. Not dissimilar to a daily full and incrementals.
Day
00:00 - Full
15-60m Interval Backups
06:00 - Full
15-60m Interval Backups
12:00 - Full
15-60m Interval Backups
18:00 - Full
15-60m Interval Backups
Week:
Day 1: 00:00 Full
Day 2: 00:00 Full
Day 3: 00:00 Full
Day 4: 00:00 Full
Day 5: 00:00 Full
Day 6: 00:00 Full
Day 7: 00:00 Full
Day 7: Schedule Above
In my configuration.json, I have vellum set to update once a day at 4am. This backup is performed, but a backup at 12noon occurs
Here is my configuration.json:
{
"BdsBinPath": "bedrock_server",
"Backups": {
"EnableBackups": true,
"EnableSchedule": true,
"Schedule": [
"04:00"
],
"BackupInterval": 60.0,
"ArchivePath": "/home/sam/mcBackup/",
"BackupsToKeep": 7,
"OnActivityOnly": true,
"StopBeforeBackup": true,
"NotifyBeforeStop": 60,
"PreExec": "",
"PostExec": ""
},
"Renders": {
"EnableRenders": false,
"PapyrusBinPath": "",
"PapyrusOutputPath": "",
"RenderInterval": 180.0,
"PapyrusGlobalArgs": "-w $WORLD_PATH -o $OUTPUT_PATH --htmlfile index.html -f png -q 100 --deleteexistingupdatefolder",
"PapyrusTasks": [
"--dim 0",
"--dim 1",
"--dim 2"
],
"LowPriority": false
},
"QuietMode": false,
"HideStdout": true,
"BusyCommands": true,
"CheckForUpdates": true,
"StopBdsOnException": true,
"BdsWatchdog": true,
"Plugins": {}
}
and here is what I see in the server console:
[INFO] IPv6 supported, port: 56140
[INFO] Server started.
No targets matched selector
Skipping this backup because no players were online since the last one was taken...
[INFO] Player connected: REDACTED, xuid: REDACTED
[ VELLUM ] Creating backup...
[INFO] Server stop requested.
[INFO] Stopping server...
Quit correctly
[ VELLUM ] -> Clearing local world backup directory...
[ VELLUM ] -> Creating full world backup...
[ VELLUM ] -> Archiving world backup...
[ VELLUM ] -> Archiving done!
[ VELLUM ] Backup done!
NO LOG FILE! - setting up server logging...
[2020-11-25 12:00:01 INFO] Starting Server
[2020-11-25 12:00:01 INFO] Version 1.16.100.4
[2020-11-25 12:00:01 INFO] Session ID f6280e3c-930a-401f-93c1-39cbda6bd0ae
[2020-11-25 12:00:01 INFO] Level Name: Bedrock-level
[2020-11-25 12:00:01 INFO] Game mode: 0 Survival
[2020-11-25 12:00:01 INFO] Difficulty: 1 EASY
[INFO] opening worlds/Bedrock-level/db
[INFO] IPv4 supported, port: 19132
[INFO] IPv6 supported, port: 19133
[INFO] IPv4 supported, port: 36415
[INFO] IPv6 supported, port: 51828
[INFO] Server started.
[INFO] Player connected: REDACTED, xuid: REDACTED
I am running the server in a screen session on Ubuntu 18.04.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.