HOW TO: install MINEOS-NODE on CENTOS 7 SERVER


#1

How to install MineOS Node on Centos 7 minimal install
I am running a VM with 2GB RAM and 2 CPU cores.

This may work on other versions of Centos but I have not tested your mileage may vary (YMMV).

I did a minimal install of the Centos server. I created a user that was not an administrator and set the password of root. I do advise you to make the user and administrator so you can skip over PART 2!

Commands to run

PART 1) IF YOU DON’T KNOW YOUR IP - Get ssh access -

At the console get the ip by typing

hostname -I

hopefully you only have one listed, I did so moving on.
You should be able to ssh into your server using the IP address, which is what I am going to do.

So, now we are SSH’d into the server you can proceed to part 2 unless you made your user an administrator during install then go to part 3.

PART 2) get access to sudo -
If you tried to skip ahead you’ll find that your user is not in the sudoers file. For me this is because I didn’t make my user an admin back at the install gui. So, I need to do it manually. You can check if you can sudo by simply typing

sudo hostname -I

If it allows you, great! GOTO part 3, else you need to do the following.

su

enter the root password
replace username with your users username

gpasswd -a username wheel
exit
exit

That’s not a typo, you have to log out and log back in for the new group to take effect.

PART 3) update your machine -

sudo yum update -y

PART 4) install mineos-node -

sudo yum install -y epel-release
sudo yum install -y nodejs npm git rdiff-backup screen java-1.7.0-openjdk wget

sudo mkdir -p /usr/games

cd /usr/games

sudo git clone https://github.com/hexparrot/mineos-node.git minecraft

cd minecraft

sudo chmod +x generate-sslcert.sh
sudo ./generate-sslcert.sh

sudo npm install --all

PART 5) get the right rsync version-

cd ~
wget https://download.samba.org/pub/rsync/src/rsync-3.1.1.tar.gz
tar -xf rsync-3.1.1.tar.gz
cd rsync-3.1.1
./configure
make
sudo make install

sudo rm /usr/bin/rsync
sudo ln -s /usr/local/bin/rsync /usr/bin/rsync
rsync --version

make sure that rsync says

rsync  version 3.1.1  protocol version 31

PART 6) allow port 8443 through the firewall –
You have to check what firewall zone is being used. I was in public

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=public --add-port=8443/tcp --permanent
sudo firewall-cmd --reload

PART 7) start mineos automatically on startup -
While you can do this, it is recommended to start the webui manually for testing and bug reporting purposes
MANUAL START COMMANDS-

cd /usr/games/minecraft
sudo node webui.js

AUTOMATIC/ START ON BOOT COMMANDS-

sudo cp /usr/games/minecraft/init/systemd_conf /etc/systemd/system/mineos.service

sudo systemctl enable mineos 
sudo systemctl start mineos
sudo systemctl status mineos

CONGRATULATIONS – mineos node is now installed and should be working on your Centos 7 system, access your web ui at https://youriphere:8443
e.g.

https://192.168.196.131:8443/

#2

While you already have a CentOS server up, can you check for the the version of rsync that comes installed by default?

mineos-node requires rsync 3.1.0+. Rsync is installed as a dependency to rdiff-backup, but that doesn’t mean it’s the right version (and if its older than 3.0.x, it can’t copy profiles properly).

$ rsync --version
rsync  version 3.1.1  protocol version 31

In Arch and Ubuntu it was as easy as this to install 3.1.x if necessary (as root):

wget https://download.samba.org/pub/rsync/src/rsync-3.1.1.tar.gz
tar -xf rsync-3.1.1.tar.gz
cd rsync-3.1.1
./configure
make
make install

#3

rsync version 3.0.9 protocol version 30


#4

There seems to be a problem at the time of this writing that your first profile created on mineos-node will not appear in the webui.

go to your console and type

sudo systemctl restart mineos.service

after that all appears to be well.


#5

I’ve fixed this this morning with a commit that auto-creates /var/games/minecraft/servers upon startup. Basically the server-detection code fails when the directory-to-watch doesn’t yet exist; that’s why restarting the service after creating a server worked.

git fetch
git reset --hard origin/master
npm install --all