SME Server 10.0SME Server is a member of the Fedora and CentOS family. The project's latest release, SME Server 10.0, is based on CentOS 7 which will receive support through June 2024. The newest release fixes some issues with RAID setups and allows installation on machines running in UEFI mode. There are two editions of SME Server, both built for the x86_64 architecture. The regular install media is 1.5GB while the smaller, network install media is 635MB. I decided to try the larger, full install media.
The project's documentation lists various uses for SME Server including backups, web hosting, e-mail, and firewall. The documentation also mentions SME Server can be managed from a web-based interface which may be more convenient than using the distribution's command line.
Booting from the install media brings up a menu offering to install the distribution, install the server in text mode, or check the media's integrity and then launch the installer. I like having the integrity check built right into the media as an extra layer of protection. I took this latter option which confirmed the media was good and then launched the Anaconda system installer.
The Anaconda installer begins by asking us to select a language from a list. We are then shown a hub screen where we can access configuration modules in the order of our choosing. These modules give us the opportunity to select our time zone, change our preferred language, alter the keyboard layout, and pick the location of the install media. There are also modules for partitioning the hard drive and selecting which packages to install. The package selection screen only has one option: the minimal install set which will create a command line environment and web-based portal.
When I checked the partitioning screen I discovered SME Server sets up partitions automatically. This gives us an XFS boot partition and a LVM volume which is also formatted with XFS. A swap partition is created for us unless we change these default settings.
The installer took longer than usual to set up SME Server, but it did complete successfully and then offer to restart the computer. The first time we boot the new copy of the distribution a text-based wizard is run. We are asked if we want to restore a backup of the operating system. Then, assuming we do not perform a restore, we are asked to make up a new password for the root account. The wizard then walks us through making up a hostname and assigning an IP address to a network device. We are asked if this server will be a plain server or a gateway for other devices connecting to the Internet. In my case I was using a stand alone server and was asked to provide the IP address for my router. The wizard's last question is whether we wish to enable DHCP services for other devices on the network. When the wizard is done it turns us over to a text console where we can login as the root user.
One of the first things I noticed about my new SME Server was that it was very slow to respond and perform tasks. Logging into the local console took around five seconds. Running any program, whether it was cat, top, or a text editor took around ten seconds. It didn't take long to identify the problem. The Clam anti-virus software and ssl-aparms were running in the background and consuming all available CPU resources. Once these processes were killed, the system was still sluggish and RAM was full, causing the system to swap heavily. I found the clamd process was still running, even with clamav shut down, and it was consuming all the memory it could get.
I found that killing these runaway processes didn't work as systemd would simply restart them. I also found that running "systemctl disable" to prevent the processes from restarting would fail due to a timeout since running commands took too long. I had to use systemctl to stop the aggressive processes and then disable them to prevent them from starting up when the operating system was rebooted.
In short, my trial got off to a very slow and frustrating start. Once the problematic processes were stopped, I found SME Server runs a fairly standard command line environment. The usual GNU shell utilities are included along with systemd and version 3.10 of the Linux kernel. The MySQL database software and a web server are running in the background. There are packages from seven versions of PHP installed by default, including PHP modules from versions 8.0, 7.4, 7.3, 7.2, 7.1, 7.0, and 5.6.
The web portal
Visiting the new server's IP address in a web browser brings up a page which says this website is under construction. I wasn't sure which port or directory on the server I would need to visit to access the administrator portal. Reading through the documentation revealed the information I wanted in Chapter 6: we can access the portal by visiting https://server-ip/server-manager/
SME Server 10.0 -- The login page for the web portal (full image size: 117kB, resolution: 1326x768 pixels)
Once we connect we're prompted for a username and password. The username "root" is blocked, but the user "admin" can sign in using the same password as the root account. The web interface has groups of settings arrayed down the left side of the browser window. Available settings and actions in a group are shown to the right.
The available settings modules are divided into five sections: users and groups; backup and restore as well as viewing log files; remote access and port forwarding; configuration of services and installing software; and support with the option of reporting bugs. One of the first things I noticed while browsing the web portal was the interface provided little to no feedback to indicate when something had been clicked or a setting saved. For example, when I went into the user accounts screen I made up a username for a regular user account and clicked the "Add" button to create the user. Nothing happened on the web page; no confirmation or error was shown. However, when I left that page and went back into the user account manager page my new account was listed as available.
SME Server 10.0 -- The user manager after my account has been unlocked and the password reset (full image size: 192kB, resolution: 1326x768 pixels)
I ran into this same lack of visual feedback when performing other tasks, such as enabling the OpenSSH daemon. Nothing on the screen indicated the service had been enabled (or that a problem had occurred) though the service started to respond to connection attempts.
While the OpenSSH service was running and responding, my attempts to login as a regular user were blocked. Looking at the user manager in the web portal showed that my account was locked and, presumably needed its password to be set up. I tried to make up a password through the web portal, but even with a password of the required length (at least eight characters), with upper-case and lower-case letters included, and both a number and a symbol used I still received an error saying the password was not complex enough. Though not the reason why. I also couldn't see a clear way to unlock the account from the web portal. I switched to a local console, unlocked the new user account and set its password with the passwd command. I still couldn't sign into the account and the web portal continued to show the account as being locked.
Returning, for a moment, to the topic of background services, apart from dealing with printing, OpenSSH, and FTP services, there doesn't appear to be any way to manage background services through the web portal. I could not, for example, find a way to manage the anti-virus software, database, or mail service.
The section of the web portal set aside for managing software has two key areas. One offers to install additional software on the operating system while the other provides access to updates from the distribution's repositories. Clicking the button to access additional software did nothing.
SME Server 10.0 -- Module for managing software (full image size: 174kB, resolution: 1326x768 pixels)
Selecting the option to install available updates brings up a list of new packages present in the SME Server repositories. I accepted the listed updates and waited a few minutes while the packages were downloaded and installed. Once the process completed successfully a message is displayed which says the system needs to be reconfigured and restarted. We are warned that not performing these steps may cause problems with the system. I clicked on the presented reconfigure option which returned me to the install/update page and where I was shown another warning indicating the system needed to be reconfigured and restarted.
I was curious about how I could reconfigure the system and, for that matter, what it would entail. At first I thought perhaps the first-run wizard would run again if I restarted so I rebooted the computer. However, when the system came back on-line I was still shown the warning letting me know I needed to reconfigure the system and restart again to avoid problems.
SME Server 10.0 -- Warning displayed after rebooting (full image size: 223kB, resolution: 1326x768 pixels)
With a little looking around I found a Reconfigure option in the web portal on the screen that controls shutting down and rebooting the system. I selected the Reconfigure item and, at first nothing appeared to happen. However, a short time later the system halted. When I powered on the server again the system failed to load, dropping me to a GRUB prompt. Whatever the Reconfigure step had done prevented the system from ever booting again.
In hindsight it's difficult for me to imagine how my trial with SME Server could have gone worse. One might point out that at least the system installer worked, but even then the installer is unusually slow and a bit awkward to navigate compared to other dedicated server and NAS solutions currently available.
Things got off to a poor start with anti-virus processes consuming all available CPU and memory resources and got worse when it became apparent that the systemctl command would timeout while trying to shutdown the runaway services while systemd would restart the processes I terminated by other means.
The user account manager rejected passwords I tried to apply to new accounts and incorrectly reported accounts were locked, even after I had unlocked them from the command line. The web interface does not show feedback or show confirmation when action buttons are clicked. Most services cannot be managed through the web portal and new software could not be added to the system without turning to the command line.
To make matters worse, updating the system and taking the Reconfigure option the system keeps insisting is necessary corrupts the system and prevents it from booting.
SME Server 10.0 -- Setting up network workgroup (full image size: 191kB, resolution: 1326x768 pixels)
Looking through the web interface prior to the system becoming unusable, there do not appear to be many tools for managing services or setting up tasks. It looks like most significant options need to be managed from the command line and there are very few tasks we can perform through the web portal that are not easier and faster from the console.
One aspect of SME Server that puzzles me a bit is its short support cycle. SME Server 10.0 is new (it came out earlier this year), but it's based on CentOS 7 which is about seven years into its ten year support cycle. Which means SME Server 10.0 only receives three years of support. As a result we are stuck running seven year old software packages, but will only benefit from three years of updates. It seems we'd be better off running a Red Hat Enterprise Linux 8 clone with something like Webmin installed.
I encountered a lot of frustration from trying to use SME Server with virtually nothing to show from my efforts, but a lot of bugs. I think most other members of the Fedora/CentOS family would provide a smoother experience.