MineOS+ : The tiny Linux operating system for hosting big Minecraft worlds
(Minecraft 1.73+/Craftbukkit compatable) Current Version: v0.4.0 Download mineos+_v0.4.0.iso
The following info is out of date! Please see the webpage, forums and this post for current info about the latest release. This post will be updated in the near future!
MineOS+ Overview
MineOS+ is a specialized distribution of the Micro Core Linux operating system designed specifically to host and control Minecraft servers. It is designed to be as small as possible, to get the highest possible performance out of your server installation. MineOS+ can also easily be installed in a ramdisk configuration, meaning the entire Minecraft server and world file are loaded into memory, reducing server lag and increasing performance.
MineOS+ comes with a administrative web-panel for easy server administration that is accessible through any browser that can access your server. You can create new Minecraft servers, stop or start your servers, back them up and restore them, make maps of your worlds that your users can see, change server properties, and issue commands to the console all from a single page.
MineOS+ is currently not much more then a fixed, tweaked and updated version of the original MineOS with a new look, but will soon become much more.
How to install:
The install process will be changing dramatically, and becoming much simpler in the near future. For now, follow Hexparrot's excellent video tutorials from the original MineOS.
FAQs:
Is MineOS+ Linux only?
MineOS+ is Linux! It needs its own machine to run on, or it is quite possible, and not very difficult, to run MineOS+ as a virtual machine in a program like Virtualbox or VMware on an existing Windows, Mac, or Linux machine. In fact, if you are running a server on the same machine as your game, you can get much better server performance this way (especially in Windows).
If I am currently running MineOS or a MineOS+ test build, do I need to reinstall?
Yes. Because most of the bug fixes were to the install process, and due to the change of name, everyone running an earlier version then MineOS+ test build 15RC needs to back up there configuration settings and worlds, and do a clean install of MineOS v0.1.0 or later.
After that, a reinstall will not be required to update MineOS+ to the latest version, and very soon you will be able to do it from the web-panel.
I will try and post a migration guide tomorrow.
Where can I find more information about using MineOS+?
We have only been working on the project for a little over a week, so we have not had the chance to create much MineOS+ specific documentation yet. Nearly all the information at the original MineOS site still applies.
We will update this page, and the links at the bottom of the web-panel when we have more documentation available.
How can I help with the project?
A community project like this needs a lot of support We are specifically looking for more web, python and bash developers to help split the workload up a bit, people to help with creating the wiki, people to help with user support, new build testers, detailed bug reports and any other support you wish to offer. Just send me a message, or post on this thread.
Have you tweaked MineOS+ in some way, or installed something extra to improve it? Let me know what you did so we can share it with everyone else, or integrate it into the main project.
Currently known issues
No SCSI hard drive support (change virtual drive settings to IDE in VMware)
Can be difficult to install from USB drive (fix here)
Some Intel chipset network cards are not supported - fix here
Currently known bugs:
Server status is sometimes returned incorrectly as still down or still up when stopping and starting worlds.
For now, if an unexpected value is returned, wait a few more seconds and press the status button to check again. This should be fixed next update.
Current Todo list:
Redo the installation scripts to simplify the process
Implement automatic backups upon world creation
Add checks to the backup function to make sure the world exists
Add world delete function
World upload and download from the web-panel
White-list add/remove
Create 64 bit edition
Change default bash text editor to NANO
Option to set Static IP option during install
Option to set local time zone during install
Finish adding all the variables in server.properties to web-panel
MySQL server installation script
Updating MineOS+ from web-panel
Server performance information in the web-panel (Ram usage, HD space, etc.)
Mobile web panel - In testing now!
MineOS+ home page, support forums, wiki, and bug tracking
Dynamic user lists with online and offline players
Database of server events that can be monitored for changes
Integrate additional Bukkit specific controls into the webpanel such as plugin upload, BukkitUpToDate integration, and easy editing of plugin config files
User web-panel with maps, server info and rules list, and other functionality for the users on your server.
Refine the server update process to allow rollbacks and individual update selection
Minecraft server performance tweaks using optional java arguments and linux tweaks
Modular additions such as forums, web-panel based ssh and ftp access, web-panel file browser and more.
Android app (and possibly an iPhone app)
Version info:
MineOS+ uses a <major change>.<feature addition>.<small change/bug fix> format for version numbers. Therefore v0.1.1 would be a bug fix for v0.1.0 and so on.
Change Log: v0.1.0:
Fixed usebukkit file not being created bug
Fixed crontabs not working bug
Fixed mapping not working
Fixed bug where maps were not available on the web
Updated download links for Minecraft server, Craftbukkit, and C10t to MC 1.4
Updated admin web-panel with new look
Implemented button locks and visual confirmation of command to prevent accidental sending of multiple simultaneous commands
Added server_properties to the available web-panel commands to display the server.properties file
Added online-mode to the web-panel commands to change that property. Use true or false as argument.
Added console_command to web-panel commands to allow sending of custom minecraft console command to the server. No feedback from the console though, so use the web-panel command log_dump with the number of lines to view as the argument to confirm the command functioned as expected.
Added hidden command usebukkit to the web-panel commands. If regular MC is loading instead of CB (use log_dump), send it in the cmd/val field to check if your usebukkit file has been deleted somehow, and create it again if it was.
v0.0.0: Stock MineOS v1.28.11
Current MineOS+ Team:
nickjf20, NRoach44, segana, bnm12, anotherannonymous, Phant0mX(on hiatus) and Shane
Make sure and check back here often, as this post and thread will be updated often as we continue development.
Congratulations! I know it took a lot of hard work!
Thanks! When we started we thought it would be a quick, done tomorrow deal to get this first release out, but it did indeed turn into quite a challenge, lol. Now that we have an intimate knowledge of the system and all the code from tracking down those pesky bugs, implementing new features should be that much simpler.
Congratz on the full release... I plan on switching over sometime this coming week. I need a slightly more advanced set up than the out of the box install so I want to make sure I have plenty of time to tweak and such before I start.
Rollback Post to RevisionRollBack
zombiecraft.serverbeer.com - Permissions enabled home server, focusing on big builds
That feature is already in the code, I just have to test it to make sure it is working correctly, and connect it to the web console. (I think that is what Hexparrot was planning to add with the prune command in the web-panel, which currently does nothing.)
I finally gave up on installing from USB. While the fix posted by bnm12 did get me to the point that I didn't need a CD in the drive, it would still end up failing later in the install. I'm going to blame USB version 1.0 hardware on the computer being way too slow.
I have now burned MineOS 0.1.0 to a CD (had to buy more anyway :/ ) and it installed just fine.
Now I'm trying to confirm that backups are scheduled but I get this:
tc@box:~$ crontab -l
tc@box:~$ crontab -e
crontab: exec editor: No such file or directory
Great to see this being picked up, I will be installing this once you have a 64bit version up, doesn't even need any new features, I just want to keep up with the most current project.
Now, I'm not sure exactly, what I'm asking for because no experience in making any sort of user interface, not to mention tying it in with plug-ins. A dynamic user list would be really convenient. It would most likely be under Future Planed Improvements.
Dynamic user list:
Bob *online*
CookieMonster *online*
Smart0ne *off-line* 4/10/2011
EatMyShorts *off-line* 4/1/2011
The date represents the last user's session.
This could easily allow admins IP ban or removed from the white list individuals even if their off-line. In addition, sorting server events by user and/or their session time. There's quite a few other ideas regarding this feature, but I realize it's not a priority right now. It's just a thought for the future.
Edit: Sorting the server logs would work with worldguard?
Now I'm trying to confirm that backups are scheduled but I get this:
tc@box:~$ crontab -l
tc@box:~$ crontab -e
crontab: exec editor: No such file or directory
What's up?
That is saying you didn't actually create the crontab file.
Hexparrot forgot to mention that the default crontab editor in MineOS is VI, which is quite powerful and, but very hard to grok for Linux Newbies. In the step on his tutorial where it says save and exit, to do so in VI hit Esc, then type ":wq" and hit enter (you will see what you are typing in the bottom of the window after you hit the ":")
I will be changing the Linux default editor to NANO in the next update, since it is far less confusing.
Quote from natbyte »
Just a thankyou from me a server admin, I will be installing on our test server and if all is working will move over to our live server great work and thanks for releasing this ;-)
Great! Let us know how it works out for you.
Quote from bnm12 »
EDIT: made a quick page for usb installs on the wiki http://mineos.000a.biz/index.php/Usb_install will make it prettier later... (also might do some stuff on wireless once i get the time to get it working :tongue.gif:)
Thanks a lot, that will help a lot of people out. I'll link to it in the OP
Quote from Nickjf20 »
How would a custom UnetBootIn exe which autocreates the USB sound?
I might try making one if people would prefer it to LiLo
Sounds awesome man.
Quote from LlmDl »
Great to see this being picked up, I will be installing this once you have a 64bit version up, doesn't even need any new features, I just want to keep up with the most current project.
Thanks again for you time PhantomX.
The 64-bit edition, and the redo of the install scripts are my top priorities this week, along with updating from the web-panel.
You're quite welcome, I do it because I enjoy it and to give back to the community that has given me so much. But don't just thank me, thank the rest of the team too: Nickjf20, Segana, anotherannonymous from the MineOS forums, Shane (I can't remember your username, lol), and also everyone here who has provided invaluable feedback and testing (yourself included).
MineOS+ is a community project. Our wins are all of our wins.
Quote from Zone »
Now, I'm not sure exactly, what I'm asking for because no experience in making any sort of user interface, not to mention tying it in with plug-ins. A dynamic user list would be really convenient. It would most likely be under Future Planed Improvements.
Dynamic user list:
Bob *online*
CookieMonster *online*
Smart0ne *off-line* 4/10/2011
EatMyShorts *off-line* 4/1/2011
The date represents the last user's session.
This could easily allow admins IP ban or removed from the white list individuals even if their off-line. In addition, sorting server events by user and/or their session time. There's quite a few other ideas regarding this feature, but I realize it's not a priority right now. It's just a thought for the future.
Oh, that would be awesome. Adding to future planned implementations.
A way to parse the log file into a database that resides on a mounted drive with your backups would be cool, and would let the website be able to pull whatever data it wanted to. I'll look into it in the near future, time permitting.
Now I'm trying to confirm that backups are scheduled but I get this:
tc@box:~$ crontab -l
tc@box:~$ crontab -e
crontab: exec editor: No such file or directory
What's up?
That is saying you didn't actually create the crontab file.
Hexparrot forgot to mention that the default crontab editor in MineOS is VI, which is quite powerful and, but very hard to grok for Linux Newbies. In the step on his tutorial where it says save and exit, to do so in VI hit Esc, then type ":wq" and hit enter (you will see what you are typing in the bottom of the window after you hit the ":")
I will be changing the Linux default editor to NANO in the next update, since it is far less confusing.
Lol, I'm an idiot, I forgot to do sudo crontab -u tc -e first and went straight for crontab -e as I'm used to on my main machine. :tongue.gif:
As it happens, I like VI a lot, but I can see why noobs would be better off with NANO :smile.gif:
Here is my crontab now:
tc@box:~$ crontab -l
0,15,30,45 * * * * cd /usr/games/minecraft; python admin_console.py backup one
5 7 * * * cd /usr/games/minecraft; python admin_console.py removeolderthan one 672
35 7 * * * cd /usr/games/minecraft; python admin_console.py map one
There are 672 backups in a week if you take them every 15 minutes as I have. Daily tasks take place at 7 in the morning because I know none of my users will be on then. Also they are shifted 5 minutes so the backups at the top and bottom of the hour have time to finish.
Does the repair function work again? Has the script for that been updated? Is it even relevant in a post 1.3 world?
I'm so glad you took over this project! I wish you luck!
Also, I installed MineOS previously successfully. I also followed the exact same instructions on the same exact machine (using old machine lying around) to install MineOS+, but its not starting the server.
When booting, I see the grub screen and I select MineOS+ etc. And when it is starting, it does not show "Your basic firewall is now Operational" and the "log.c.166) server started".
I then use ifconfig to find the ip and go to it in my browser, and nothing shows up. Did I mess up somewhere? Or is anyone else having the same problem?
This is an EPIC win!!! Downloading, burning and installing NOW!
Interested in helping out Ben? We could use another web designer to help with the planned player web-panel.
Would like to see the C10t snapshots in a gallery, with the option to download, or share by Facebook, email, etc., and an optional tab for DynMap integration. Once I get the server database going it could require user log-in, with control from the admin panel, and display server statistics and info/rules on the front page.
Quote from yossi »
Here is my crontab now:
tc@box:~$ crontab -l
0,15,30,45 * * * * cd /usr/games/minecraft; python admin_console.py backup one
5 7 * * * cd /usr/games/minecraft; python admin_console.py removeolderthan one 672
35 7 * * * cd /usr/games/minecraft; python admin_console.py map one
There are 672 backups in a week if you take them every 15 minutes as I have. Daily tasks take place at 7 in the morning because I know none of my users will be on then. Also they are shifted 5 minutes so the backups at the top and bottom of the hour have time to finish.
Does the repair function work again? Has the script for that been updated? Is it even relevant in a post 1.3 world?
That crontab solution looks about perfect. The only thing I will add before I implement it into the create world function, is a weekly archive.
I do have to take a look at the removeolderthan function as it does not appear to be actually removing the older backups on my main server.
The repair function depended on sk89q's checkworld.py script, which has not been updated to the new world format. It is definitely still relevant (I've experienced corruption after a crash since the map format change), and was a totally sweet function. Bugging (or better yet, donating to) sk89q may or may not motivate him to update it sooner (and I will probably have to update the repair function as well) but using the incremental backups to roll back once after corruption works too.
Quote from Null_Current »
I then use ifconfig to find the ip and go to it in my browser, and nothing shows up. Did I mess up somewhere? Or is anyone else having the same problem?
Just to verify something in my head. Crontab only runs when that particular world is active? If that's true I can have crontab preset up for my other two worlds that I use for testing. I would only run into problems, if I was running multiple Instances and they tried to save at the same time.
The crontab jobs will run regardless of whether that world exists or is running or not, because the python script does, lol. I will have to add some sort of checking to the backup function to fix that. Added to the todo list.
I then use ifconfig to find the ip and go to it in my browser, and nothing shows up. Did I mess up somewhere? Or is anyone else having the same problem?
did you put :8080 after the ip?
I was putting that in, I guess something didn't quite add up when I installed. I reinstalled and its working alright now :biggrin.gif:
EDIT: Another problem =/
I updated the server files, switched pure to bukkit, and left all fields blank, I then created the world (no problem there), but when starting the server, it simply stays put at server: down. I tried "touch usebukkit" (I remember that being a problem. But no luck there. Is there an alternate step I need to take?
PS - I love the new web interface, very clean and polished!
Hmm, sounds like the Craftbukkit link might be down again. Can you confirm the craftbukkit jar exists and has a size greater then zero?
Edit: also sometimes the world hasn't finished starting before the command returns with the data. Run status on the world, and do a log_dump with 100 as the argument as well.
I found a small bug. When you hit start or stop, it displays the wrong status immediately afterwards, like this:
I think its just running the status command too soon after starting the world. If I click status after seeing this, it tells me the true status.
Also, where do I add the commands to restore and start the world automatically on boot. I saw that before but I forget where it was.
EDIT: heh, Phant0mX's ninja edit says the exact same thing :biggrin.gif:
A hacky fix would be to just add a time.sleep(2) command in there to slow things down.
I found a small bug. When you hit start or stop, it displays the wrong status immediately afterwards, like this:
I think its just running the status command too soon after starting the world. If I click status after seeing this, it tells me the true status.
Also, where do I add the commands to restore and start the world automatically on boot. I saw that before but I forget where it was.
I noticed that too. Will have to adjust the script to make sure it is giving the command enough time to execute before returning the results.
To my knowledge, world one is restored and starteded automatically at boot currently (same status bug applies), but I don't have time to confirm right now.
(Minecraft 1.73+/Craftbukkit compatable)
Current Version: v0.4.0
Download mineos+_v0.4.0.iso
The following info is out of date! Please see the webpage, forums and this post for current info about the latest release. This post will be updated in the near future!
MineOS+ Overview
MineOS+ is a specialized distribution of the Micro Core Linux operating system designed specifically to host and control Minecraft servers. It is designed to be as small as possible, to get the highest possible performance out of your server installation. MineOS+ can also easily be installed in a ramdisk configuration, meaning the entire Minecraft server and world file are loaded into memory, reducing server lag and increasing performance.
MineOS+ comes with a administrative web-panel for easy server administration that is accessible through any browser that can access your server. You can create new Minecraft servers, stop or start your servers, back them up and restore them, make maps of your worlds that your users can see, change server properties, and issue commands to the console all from a single page.
MineOS+ is currently not much more then a fixed, tweaked and updated version of the original MineOS with a new look, but will soon become much more.
How to install:
The install process will be changing dramatically, and becoming much simpler in the near future. For now, follow Hexparrot's excellent video tutorials from the original MineOS.
FAQs:
MineOS+ is Linux! It needs its own machine to run on, or it is quite possible, and not very difficult, to run MineOS+ as a virtual machine in a program like Virtualbox or VMware on an existing Windows, Mac, or Linux machine. In fact, if you are running a server on the same machine as your game, you can get much better server performance this way (especially in Windows).
Follow this guide.
Yes. Because most of the bug fixes were to the install process, and due to the change of name, everyone running an earlier version then MineOS+ test build 15RC needs to back up there configuration settings and worlds, and do a clean install of MineOS v0.1.0 or later.
After that, a reinstall will not be required to update MineOS+ to the latest version, and very soon you will be able to do it from the web-panel.
I will try and post a migration guide tomorrow.
We have only been working on the project for a little over a week, so we have not had the chance to create much MineOS+ specific documentation yet. Nearly all the information at the original MineOS site still applies.
You can also check the original MineOS wiki
We will update this page, and the links at the bottom of the web-panel when we have more documentation available.
A community project like this needs a lot of support We are specifically looking for more web, python and bash developers to help split the workload up a bit, people to help with creating the wiki, people to help with user support, new build testers, detailed bug reports and any other support you wish to offer. Just send me a message, or post on this thread.
Have you tweaked MineOS+ in some way, or installed something extra to improve it? Let me know what you did so we can share it with everyone else, or integrate it into the main project.
Currently known issues
Currently known bugs:
Current Todo list:
Future Planed Improvements:
Version info:
MineOS+ uses a <major change>.<feature addition>.<small change/bug fix> format for version numbers. Therefore v0.1.1 would be a bug fix for v0.1.0 and so on.
Change Log:
v0.1.0:
v0.0.0: Stock MineOS v1.28.11
Current MineOS+ Team:
nickjf20, NRoach44, segana, bnm12, anotherannonymous, Phant0mX(on hiatus) and Shane
Make sure and check back here often, as this post and thread will be updated often as we continue development.
Thanks! When we started we thought it would be a quick, done tomorrow deal to get this first release out, but it did indeed turn into quite a challenge, lol. Now that we have an intimate knowledge of the system and all the code from tracking down those pesky bugs, implementing new features should be that much simpler.
See what we are building here: http://zombiecraft.servebeer.com
clear out old backups. like that this guy mentions
viewtopic.php?f=10&t=115788&start=1320#p2601493
I finally gave up on installing from USB. While the fix posted by bnm12 did get me to the point that I didn't need a CD in the drive, it would still end up failing later in the install. I'm going to blame USB version 1.0 hardware on the computer being way too slow.
I have now burned MineOS 0.1.0 to a CD (had to buy more anyway :/ ) and it installed just fine.
Now I'm trying to confirm that backups are scheduled but I get this:
What's up?
Trusted and Established Minecraft Server Hosting since Alpha in 2010. Minecraft Server Host: www.minecraftserverhost.net
Test Servers: test.minecraft.ms | east.minecraft.ms | central.minecraft.ms | west.minecraft.ms
I am a representative of Minecraftserverhost.net
Thanks again for you time PhantomX.
Dynamic user list:
Bob *online*
CookieMonster *online*
Smart0ne *off-line* 4/10/2011
EatMyShorts *off-line* 4/1/2011
The date represents the last user's session.
This could easily allow admins IP ban or removed from the white list individuals even if their off-line. In addition, sorting server events by user and/or their session time. There's quite a few other ideas regarding this feature, but I realize it's not a priority right now. It's just a thought for the future.
Edit: Sorting the server logs would work with worldguard?
That is saying you didn't actually create the crontab file.
Hexparrot forgot to mention that the default crontab editor in MineOS is VI, which is quite powerful and, but very hard to grok for Linux Newbies. In the step on his tutorial where it says save and exit, to do so in VI hit Esc, then type ":wq" and hit enter (you will see what you are typing in the bottom of the window after you hit the ":")
I will be changing the Linux default editor to NANO in the next update, since it is far less confusing.
Great! Let us know how it works out for you.
Thanks a lot, that will help a lot of people out. I'll link to it in the OP
Sounds awesome man.
The 64-bit edition, and the redo of the install scripts are my top priorities this week, along with updating from the web-panel.
You're quite welcome, I do it because I enjoy it and to give back to the community that has given me so much. But don't just thank me, thank the rest of the team too: Nickjf20, Segana, anotherannonymous from the MineOS forums, Shane (I can't remember your username, lol), and also everyone here who has provided invaluable feedback and testing (yourself included).
MineOS+ is a community project. Our wins are all of our wins.
Oh, that would be awesome. Adding to future planned implementations.
A way to parse the log file into a database that resides on a mounted drive with your backups would be cool, and would let the website be able to pull whatever data it wanted to. I'll look into it in the near future, time permitting.
Lol, I'm an idiot, I forgot to do sudo crontab -u tc -e first and went straight for crontab -e as I'm used to on my main machine. :tongue.gif:
As it happens, I like VI a lot, but I can see why noobs would be better off with NANO :smile.gif:
Here is my crontab now:
There are 672 backups in a week if you take them every 15 minutes as I have. Daily tasks take place at 7 in the morning because I know none of my users will be on then. Also they are shifted 5 minutes so the backups at the top and bottom of the hour have time to finish.
Does the repair function work again? Has the script for that been updated? Is it even relevant in a post 1.3 world?
Also, I installed MineOS previously successfully. I also followed the exact same instructions on the same exact machine (using old machine lying around) to install MineOS+, but its not starting the server.
When booting, I see the grub screen and I select MineOS+ etc. And when it is starting, it does not show "Your basic firewall is now Operational" and the "log.c.166) server started".
I then use ifconfig to find the ip and go to it in my browser, and nothing shows up. Did I mess up somewhere? Or is anyone else having the same problem?
Interested in helping out Ben? We could use another web designer to help with the planned player web-panel.
Would like to see the C10t snapshots in a gallery, with the option to download, or share by Facebook, email, etc., and an optional tab for DynMap integration. Once I get the server database going it could require user log-in, with control from the admin panel, and display server statistics and info/rules on the front page.
That crontab solution looks about perfect. The only thing I will add before I implement it into the create world function, is a weekly archive.
I do have to take a look at the removeolderthan function as it does not appear to be actually removing the older backups on my main server.
The repair function depended on sk89q's checkworld.py script, which has not been updated to the new world format. It is definitely still relevant (I've experienced corruption after a crash since the map format change), and was a totally sweet function. Bugging (or better yet, donating to) sk89q may or may not motivate him to update it sooner (and I will probably have to update the repair function as well) but using the incremental backups to roll back once after corruption works too.
did you put :8080 after the ip?
I was putting that in, I guess something didn't quite add up when I installed. I reinstalled and its working alright now :biggrin.gif:
EDIT: Another problem =/
I updated the server files, switched pure to bukkit, and left all fields blank, I then created the world (no problem there), but when starting the server, it simply stays put at server: down. I tried "touch usebukkit" (I remember that being a problem. But no luck there. Is there an alternate step I need to take?
PS - I love the new web interface, very clean and polished!
Edit: also sometimes the world hasn't finished starting before the command returns with the data. Run status on the world, and do a log_dump with 100 as the argument as well.
I think its just running the status command too soon after starting the world. If I click status after seeing this, it tells me the true status.
Also, where do I add the commands to restore and start the world automatically on boot. I saw that before but I forget where it was.
EDIT: heh, Phant0mX's ninja edit says the exact same thing :biggrin.gif:
A hacky fix would be to just add a time.sleep(2) command in there to slow things down.
I noticed that too. Will have to adjust the script to make sure it is giving the command enough time to execute before returning the results.
To my knowledge, world one is restored and starteded automatically at boot currently (same status bug applies), but I don't have time to confirm right now.