tait.tech

Installing MultiCraft on Gentoo Linux


In a very odd combination of requirements, I needed to install MultiCraft on a Gentoo Linux system. The PHP USE flags are important so you don’t have to recompile it three times like I did.

Here are some useful tips I came across:

PHP USE flags

In /etc/portage/package.use/php I placed the following line:

dev-lang/php cgi mysql mysqli fpm pdo gd truetype

This should give you enough for a mysql backended MultiCraft installation. The cgi option may not be required as fpm stands for FastCGI Process Managment. I don’t know for sure though.

Paper

This will grab the latest version of the Paper jar file using YivesMirror. I’m not sure how reputable it is, but my buddy who works with this stuff more often than me seemed to recognize it.

## See the default craftbukkit.jar.conf for a detailed documentation of the
## format of this file.
[config]
name = Paper 1.16.1 Latest
source = https://yivesmirror.com/files/paper/Paper-1.16.1-latest.jar
category = Mods

[encoding]
#encode = system
#decode = system
#fileEncoding = latin-1

[start]
command = "{JAVA}" -Xmx{MAX_MEMORY}M -Xms{START_MEMORY}M -XX:MaxPermSize=128M -Djline.terminal=jline.UnsupportedTerminal -jar "{JAR}" nogui

Other Tips

Do not use the option to setup a separate user for each server. This completely stalled any work getting done with a ton of ‘permission denied’ errors.

Security

If the panel is in the root directory of your NGINX web server, use the following in your server block to deny access to the /protected directory.

location /protected {
  deny all;
  return 404;
}
MySQL

It is always good practice to separate privileges. The MultiCraft daemon should have one SQL login, with one database allocated to it. The MultiCraft panel should have a separate SQL login, with a separate database allocated to it.

You can do this with the following commands in your MySQL prompt:

sql> CREATE DATABASE multicraft_daemon_database;
Query OK, 0 rows affected (0.01 sec)

sql> CREATE DATABASE multicraft_panel_database;
Query OK, 0 rows affected (0.01 sec)

sql> CREATE USER 'muilticraft_daemon'@'localhost' IDENTIFIED BY 'strong password here';
Query OK, 0 rows affected (0.01 sec)

sql> CREATE USER 'multicraft_panel'@'localhost' IDENTIFIED BY 'different strong password here';
Query OK, 0 rows affected (0.01 sec)

sql> GRANT ALL PRIVILEGES ON multicraft_daemon_database . * TO 'multicraft_daemon'@'localhost';
Query OK, 0 rows affected (0.01 sec)

sql> GRANT ALL PRIVILEGES ON multicraft_panel_database . * TO 'mutlicraft_panel'@'localhost';
Query OK, 0 rows affected (0.01 sec)

During setup, make sure the proper credentials are used for each step. Database 1 is the panel database. Database 2 is the daemon database.

Happy hacking :)