This is the Q4 2023 update to our Monkersolver server guide with Contabo. Part of Contabo‘s current server offerings include dedicated servers with AMD’s EPYC 7282 CPU. These servers can be configured with up to 2 TB RAM. By Contabo‘s own account, a server configured with 2x AMD EPYC 7282 CPUs is nearly twice as fast as their previous top of the line offering, a server with 2x Intel Xeon E5 2630v4 CPUs.
In this guide we will give you a brief overview of the EPYC 7282 server offering and guide you towards our recommended server configuration. We will be configuring our server with Debian 12 this time instead of Debian 10, but the installation process is largely the same for those of you who have used are previous installation guide with Debian 10.
Configuring Your Server
Before you can begin setting up your server’s software, you need to decide what hardware you want to use. Here we present you with our guidelines for server configuration. If you already have a server with Contabo, feel free to skip this section.
In Contabo‘s latest offering update, we can see the range of available dedicated servers, including their AMD EPYC servers.
On the far left we see Contabo’s latest dedicated server offering with an AMD Ryzen 9 7900 CPU, followed by Contabo’s previous top of the line CPU, the Intel Xeon E5 2630v4. The relevant servers for this guide are the dual AMD EPYC 7282 CPUs on the far right, but you should be able to use the guide for any of the listed servers if you are installing Debian 12. Note that for the purpose of this guide all prices will be shown in EUR and for German taxes (19%). The tax rate and price may vary based on region.
Below we will go over the steps for the base configuration we recommend, as well as potential upgrade options. We have highlighted the selections we recommend in the images.
Once you have selected the appropriate server, you are taken to a page where you can configure your server. The first option allows you to select the term length of your server rental. You can currently select a term length of up to 12 months and will receive an additional discount depending on whether you select a term length of 3, 6 or 12 months. If you select a term length of one month, it is up to you to renew your server at the end of each month.
For the second option, you can select the region of your choice. We recommend selecting the cheapest region for our use case, which is currently Germany. Typically, selecting a server in a more expensive region would only be for the purpose of latency reduction and should not be relevant for this guide.
In the next step we can configure our RAM. By default we wouldn’t recommend adding additional RAM, but you have the option to add up to 1792 GB RAM, for a total of 2 TB. Adding RAM is pricey, so we recommend testing various game trees on your local machine first, to see what your current and future RAM requirements may be. If you are not sure what your future requirements will be, you can also start with 256 GB RAM and request more memory later (there may be a fee to perform the upgrade). In order to select the 256 GB RAM option, just leave your selection on the default ‘Free’ option.
For storage, we recommend that you choose at least twice as much storage as you have selected for your RAM, and also that you select an SSD (regular or NVMe). ‘1 TB SSD’ is a good option for either 256 or 512 GB RAM.
Leave the field labelled ‘Dedicated GPU’ as ‘None’.
For the OS selection we recommend Debian 12. This is Debian’s current stable release with long-term support (LTS).
Windows server licencing fees depend on the type of server being used, and here we can see that for 2x AMD EPYC 7282 the price is 89.99 EUR per month. So, by configuring our server with Linux, we are saving 1079.88 EUR per year.
You can leave the remaining fields under ‘7. Networking’ and ‘8. Add-Ons’ on their respective defaults.
If you are satisfied with your selection, click ‘Next’ to proceed to the checkout window.
Basic Server Configuration
After Contabo receives your payment, and after a short processing period, you will receive an email with your login data for the server.
In order to connect to your server, we are going to use a piece of software called PuTTY.
Under ‘Host Name (or IP address)’ enter your servers IP address that was provided by Contabo. Under port, type ’22’. This is the port required to establish an SSH connection. When you’re done, hit ‘Open’. You will be prompted to ‘login as’. We are going to connect using the root user account and the password that Contabo provided us with in their email.
First of all we are going to start by creating a new user account that isn’t a root user. The root user account has administrative privileges, and should not be the default way we interact with our server.
Update and Reboot the Server
Whenever setting up a new server it is good practice to first update, upgrade and reboot your server. This is to make sure there are no important updates that need to be installed and/or that could hinder the setup process. Execute the commands below in order by hitting enter after each line.
When you reboot you will lose connection to your server, but after a few minutes you should be able to reach the server again with PuTTY. Once you can reach the server again, log back in using the instructions from the previous step.
apt -y upgrade
Create New Non-Root User Account
First we need to install ‘sudo’. ‘Sudo’ will enable us to run administrative commands from our new non-root account as needed.
apt install sudo
In the next step we will create a user with our desired name and password, and add that user to the group of sudoers. Replace ‘your_username’ with your desired username. You will also be prompted to set a password for your new user. Hit enter after each command.
usermod -aG sudo your_username
Install A Firewall
Debian 12 has built-in firewall capability through ‘iptables’, but we will install UFW firewall for the purpose of this guide. Hit ‘Enter’ after every command.
apt install ufw
In the next step, we are going to restrict the firewall to only allow connections through SSH.
ufw allow OpenSSH
Enable the firewall. When prompted, type y and hit ‘Enter’ to continue:
Confirm to see if UFW is running:
The output should also show that our firewall is now restricted to SSH connections only.
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Confirm SSH Login With The New Non-Root Account
Now that we have set up both a new non-root user account, and a firewall, we should confirm that we can connect using this new account. Open a new instance of PuTTY. This time when prompted to login, enter the new non-root account that we just created, with the password you specified. Assuming this was successful, we recommend to continue the rest of the setup process using your new user. Since this account is no longer the root account, you may notice that most commands will now need to be executed by typing sudo before them.
Configuring VNC On The Server
Now that we have completed some basic server configuration, let’s proceed to configuring our server so that we can use a graphical user interface through VNC.
Again, please hit ‘Enter’ after every command. You may also be prompted to confirm an installation by typing ‘y’ and then hitting ‘Enter’ as well. Since we will be typing sudo in front of most of our commands, we will initially and periodically be prompted to enter our new account’s password to confirm our commands.
Let’s start by updating our server’s list of packages:
sudo apt update
In the next step we are going to install the dekstop environment for our Linux graphical user interface:
sudo apt install xfce4 xfce4-goodies
Now install TightVNC, our preferred remote control software for Linux:
sudo apt install tightvncserver
Now that we have VNC and a desktop environment installed we could already begin using our Linux installation, however there are a few more configuration steps that we need to complete to get the most out of our server.
First off, let’s start vncserver to confirm it has installed correctly, and also to complete our basic setup of VNC.
You will be prompted to enter a password for connecting to your VNC client here. The password length has to be between six and eight characters. If you enter a password longer than eight characters, it will automatically be truncated to eight characters. Optionally, you can also set up a view-only password. You don’t need to fill out any personal information, just hit ‘Enter’ to skip. Make sure to remember your password, as we will need it later on to connect to our Debian desktop.
Once completed, your server output should look something like this:
New 'X' desktop is your_hostname:1 Creating default startup script /home/your_username/.vnc/xstartup Starting applications specified in /home/your_username/.vnc/xstartup Log file is /home/your_username/.vnc/your_hostname:1.log
Let’s go ahead and shut down the vncserver.:
vncserver -kill :1
Modifying VNC’s Xstartup File To Enable Copy-Paste And Store Our Settings
Here we have another addition to this year’s guide where we will enable copy-paste from the initial setup.
Install autocutsel, which enables copy-pasting between your server and your local machine.
sudo apt install autocutsel
Now, create a backup of your xstartup backup file.
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
Next, we will create a new xstartup file, and add our additional parameters using the text editor ‘nano’:
Add the following lines to your xstartup file so it looks like this:
#!/bin/bash autocutsel -fork xrdb $HOME/.Xresources startxfce4 &
The first line after ‘#! /bin/bash’ enables autocutsel on our VNC server. The following commands relate to the graphical configuration of our VNC server. Any changes to the GUI (graphical user interface) that are made on the server will be saved to the .Xresources file.
Once you are done editing the xstartup file, press ‘ctrl+x’ to exit. When prompted, type ‘y’ to confirm that you would like to save, and ‘Enter’ to confirm the proposed location.
We need to make sure that this file is executable. We can do this using the command chmod:
sudo chmod +x ~/.vnc/xstartup
Now we can restart the server. Note that we have added additional parameters to the vncserver command. The ‘-depth’ parameter specifies the colour depth of our connection to VNC. The ‘-geometry’ parameter specifies it’s resolution. You can use different parameters if you please.
vncserver -depth 24 -geometry 1920x1080
Connecting To VNC Securely Via Encrypted SSH Tunnel
In the following step we are going to reconnect to our server using an SSH tunnel. First of all disconnect from all active PuTTY sessions by inputting the following command into all active PuTTY terminals:
This command will end our current session(s). For this step, we will need to reopen PuTTY on our local machine and go to ‘SSH’ and then ‘Tunnels’. Here we want to specify 5901 as our ‘Source port’. 5901 is the port that our VNC client listens on for incoming traffic. Under ‘Destination’ enter ‘localhost:5901’. Below select ‘Local’ and ‘IPv4’.
Now go back to ‘Sessions’, click ‘Default Settings’ and click ‘Save’ to make this your default mode of connecting to your server.
Next, click ‘Open’ to reconnect to your server using your newly established SSH tunnel. Don’t forget to login using your non-root user account.
Connecting To Our Servers Graphical User Interface
Now that we have correctly configured our server, we can go ahead and connect to our desktop using RealVNC’s VNC Viewer client. This is a multi-platform client, and will run on almost any mainstream OS, including mobile. From within the address bar of VNC Viewer, type ‘localhost:5901’ and hit ‘Enter’. If you completed all the steps correctly, this should connect you to your VNC server’s desktop. When prompted, enter the password you set during the initial setup of tightvncserver.
If prompted, select ‘Use default config’. Now you should see a desktop that looks roughly as the one below.
Installing Additional Software On Our Server
Before we can install Monkersolver, we need to first install some additional software. We need to install Chromium (web browser), 7-zip (for extraction of our Monkersolver file) and JRE (Java Runtime Environment) for running Monkersolver. We can install these all at the same time using the following command:
sudo apt install -y chromium && sudo apt install -y p7zip-full && sudo apt install -y default-jre
In order to proceed, you will need to download the latest version of Monkersolver to your server. You can do this from the Monkerware website.
Login to your account and select either ‘Download(OS X / Linux)’ or ‘Download (Any OS)’, depending on whether you would like to use the stable version or beta version of the software.
If you have downloaded this file using your web browser, it will typically be placed in your ‘Downloads’ folder, unless otherwise specified. In the following steps, we will assume that this is the case. If your file is somewhere else, please move it to the ‘Downloads’ folder, or adjust accordingly.
The following commands can be executed either from your terminal connection through PuTTY or from the terminal on your desktop. If you would like to use the terminal on your desktop, simply click the black box from the dock on your server.
Navigate to your ‘Downloads’ folder:
Now, using 7-zip we are going to extract the contents of our file. The relevant file name will depend on both the current version of Monkersolver and also whether you wish to use the stable or beta version of the software. Replace ‘monkersolver-version.zip’ with the relevant file name (e.g. monkersolver-2.1.9.zip). You can use the command ‘ls’ from the command line to list all files in the current directory and copy-paste the relevant file name as well:
7z x monkersolver-version.zip
This will extract the contents to a folder named ‘MonkerSolver’ and place it within your ‘Downloads’ folder. Now navigate to that folder:
You can now launch Monkersolver by executing the following command:
java -jar launcher.jar
In order to launch the beta version of Monkersolver, use the following command:
java -jar betalauncher.jar
Upon launch you will be prompted to download Java, which we recommend. You should also be able to specify what percentage of th server’s RAM will be used by the instance of Monkersolver you are launching.
And that’s it. Congratulations for making it through the installation of your Monkersolver Linux server. As always, please leave feedback and let us know if you liked our guide or how it may be improved. Also let us know if you have found an error or need further clarification for one of the steps. Thanks for reading.