1.0 Introduction
Anything vaguely similar in physical hardware capabilities would suffice just as well: before I built my FreeBSD Jail, I was using a 2011-vintage Dell desktop PC with an Intel i3 CPU, 4GB of total RAM and a 60GB solid state hard drive as a test platform, and it worked fine.
As far as the operating system installation went, I ran with all the defaults proposed:
Specifically, I chose automatic disk partitioning and the default Fedora Server software selection. The one thing I did manually intervene on was the networking: by default, it's configured with DHCP, which makes life convenient but means your server is assigned an IP address dynamically and in a way that means the address could change every time the server is rebooted. Changing IP addresses makes life hard for clients wanting to find the server! Therefore, I assigned a static IP address, as follows:
Now, the specific addresses you see here are mine, appropriate to my home network setup. They are unlikely to apply to your environment. Here is not the place to explain the basics of home networking, but if you aren't sure what entries to make for your own Giocoso Pro Server, please read Section 2.3 ("The Home Network") of my article on doing SACD ripping, where I explain network addresses in some detail.
I also clicked the IPv6 Settings tab in the above screenshot and set the 'Method' to 'Disabled': your Giocoso Pro Server is not going to need to know how to handle IPv6 connections!
Fedora's installation prompts for the creation of a non-root user account: you should take the opportunity to do that:
You also get the opportunity to enable or disable the root account:
I chose to leave the root account disabled. It would be like that in Ubuntu Server, for example, without even asking you about it ...and isn't a bad thing to do in any distro. Provided there is a non-root administrator account created (as you can see my 'hjr' account will be), you can always exercise root powers via the magic of the sudo command, so there's no need to ever actually be root directly.
They're really all the things you need to consider at operating system installation time: non-root user account, fixed IP address, standard/default disk partitioning and software selections. After that, you just click the 'Begin installation' button and sit back and wait. It took about 10 minutes for the O/S installation to complete for me.
When the installation completes, reboot the machine and log in as the non-root administrator user you created earlier:
As you see, you end up at no-frills command line prompt... just what servers are supposed to look like!
The only other order of business at this point is to stop the machine being called "localhost", which is what Linux calls things that don't have 'proper' host names. Some operating system installers allow you to specify a proper hostname as part of their installation wizard, but Fedora doesn't. So lLet's fix that the manual way, like so:
sudo hostnamectl set-hostname giocosopro
I'm assigning the name 'giocosopro' here, but you can pick any single-word name of your fancy. You'll need to log out and then log back in to have the change picked up and applied:
Apart from that, though, you're now running a server that can become a Giocoso Pro server... we just need to make that bit happen next!
sudo dnf update
On Ubuntu or Debian, you'd type 'sudo apt update && sudo apt upgrade'; on Arch it would be 'sudo pacman -Syu'; on OpenSuse, 'sudo zypper update' and on FreeBSD, 'pkg update'. All do the same thing: inspect the software on the system, fetch updates to all of it from across the Internet, then apply it. On Fedora, my update was not terribly big:
...but it depends on how recently a particular version of your server's operating system was released or refreshed as to precisely how much software will need to be downloaded and applied.
Once your operating system has been updated, type this command:
wget doco.absolutelybaching.com/pro
If you get told 'command not found', you'll first need to install the wget program itself (this happens commonly on Debian-based distros, for example): sudo dnf install wget would be the command on Fedora; sudo apt install wget on Debian and Ubuntu; sudo zypper install wget on OpenSuse and pkg install wget on FreeBSD. You can confirm the script has downloaded correctly, like so:
The exact size of the script will vary over time, so don't place too much reliance on specific numbers: the point is simply that you can see the downloaded file. It's a shell script, which means it's fundamentally merely a text file. You're welcome (indeed, encouraged) to open the file in a text editor to check its contents and make sure it doesn't do nefarious things. A suitable command might therefore be less pro. Just tap the letter 'q' to quit the less program when you're satisfied with the script's contents.
When you're ready to launch the pro script, just type:
bash pro
You will immediately be prompted for your sudo password (i.e., the password of the non-root account you're operating under). Depending on how long the script runs for, you may be prompted for the sudo password more than once: just type it in whenever prompted. The script does the following things to your server:
You need to see a 'mysqld' section at the end of the file, together with a bind address that reads your server's actual IP address, not a '127.0.0.1' placeholder. If you see something similar to the above, your MySQL server is configured to accept connections from across the network, which is what we want to see.
sudo firewall-cmd --state
If it returns with a reply of running, then you know that there is a firewall in use and that therefore it needs to permit MySQL traffic through. To check that the MySQL port is open for network traffic, therefore, then issue this command:sudo firewall-cmd --query-port=3306/tcp
That will either return 'yes' or 'no'. If it returns yes, you're in business and need do no more. If it returns no, however, then you need to manually force the port open with the commands:sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
A re-run of the 'query port' command should then return a 'yes' reply. On Ubuntu Server, the firewall software is called ufw so the command to check if port 3306 is open is: sudo ufw status. If you get a little table of results when issuing that command, you should be good to go. OpenSuse apparently uses the firewalld firewall, just as Fedora does ...so the above commands should work on that distro, too. Debian is a law unto itself, so on that distro you'd issue the command sudo nft list ruleset. If a bunch of code comes back that lists 'dport 3306' within curly braces, you're probably good to go!sudo mysql
At the new prompt that then appears, type: show databases; (including the trailing semi-colon). You should see something like this:
You can see the name 'giocoso3' shown in the little list of databases there: that means the script has done its job correctly. Type the word quit to get back to the normal command prompt.
mariadb -u giocoso3 -pgiocoso3 -h 192.168.137.187 -D giocoso3 --skip-ssl
...which means "a user called 'giocoso3' and with a password of 'giocoso3' (notice there's no space between the -p and the password!) wishes to connect to the MariaDB Server running on host 192.168.137.187 and connect to the database called 'giocoso3'". The specific IP address you use should be whatever your new Giocoso Pro Server is using, of course. The username and password are, however, fixed. The response should be something like this:
You'll notice that I threw in a 'show tables;' command there -the result was 'empty set', because no tables actually exist within this database as yet, but the fact that the command produce a response of any sort at all indicates that remote connections to the server are working as intended. To create appropriate tables is the job of the Giocoso Pro initialisation process, which is launched from within Giocoso itself... and which is resolutely outside the scope of this particular article! You should read the Giocoso User Manual for details on how that all works :-) For now, it's sufficient to know that you've got a working Pro server that is able to be used by clients successfully.