How To Install Froxlor Server Management Panel on Ubuntu 12.04
Froxlor is a server management control panel that can be used to manage multi-user or shared servers. It is an alternative to cPanel or Webmin that allows system administrators to manage customer contact information, as well as the domain names, email accounts, FTP accounts, support tickets, and webroots that are associated with them.
A caveat about Froxlor: the control panel does not automatically configure the underlying services that it uses. You will need a fairly high level of sysadmin knowledge to set up your web server, mail server, and other services. Once it's all set up, though, you can do pretty much any sysadmin task from the control panel, with an added layer of customer management.
Have these prerequisites before you begin. Red text in this tutorial should be changed to match your desired configuration.
- A registered domain name
- The domain or subdomain you want to use for Froxlor should have an A record pointing to your server's IP address. The A record
@specifies the top level of your domain name (
example.com), while an A record named
froxlorspecifies the subdomain
froxlor.example.com. The FQDN of the server in the example in this tutorial is
- If you want to set up email addresses, your MX records also need to point to the server
- A cloud server (Droplet) running a fresh installation of Ubuntu 12.04. This ensures that the server is free of prior configurations or modifications
- Make sure to specify your server’s hostname (Droplet Hostname) as your desired Fully Qualified Domain Name (FQDN). For example,
froxlor.example.com. Your FQDN should match the A record you set up
- A non-root sudo user, in addition to root access
- Complete the tutorial on How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04. This will install the packages necessary to install and configure Froxlor. While the tutorial was written for Ubuntu 14.04, the installation process works identically on Ubuntu 12.04
Note: At the time of writing, Froxlor is not yet compatible with later versions of Ubuntu, so we will be installing it on Ubuntu 12.04.
Once you access the Droplet, you can verify your hostname with the following command:
Check your fully-qualified domain name:
Knowing your hostname and FQDN can save headaches with mail servers later on.
Step 1 — Adding Froxlor’s Package Repository
The Froxlor Team does not publish its software on the official Ubuntu package repositories, so you will need to add the address of their repository to your server. To install the
add-apt-repository package needed, first install the
sudo apt-get install python-software-properties
Then you can add Froxlor’s repository to your server:
sudo add-apt-repository "deb http://debian.froxlor.org wheezy main"
You will need to add the software keys for Froxlor’s repository to your system (again, this is not an official Ubuntu repository).
sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-key FD88018B6F2D5390D051343FF6B4A8704F9E9BBC
Note: Software keys are used to authenticate the origin of Debian (Ubuntu) software packages. Each repository has its own key that has to be added to Ubuntu manually. When software packages are downloaded, Ubuntu compares the key of the package to the key of the repository it was suppose to come from. If the package is valid, the key will match. The reason you don't usually have to enter the keys for the official Ubuntu repositories is because they come installed with Ubuntu.
Step 2 — Installing Froxlor
With Froxlor’s repository key added to your server, update your server’s packages list.
sudo apt-get update
Then, install Froxlor. The
php5-curl package is necessary for Froxlor to function properly, but at the time this tutorial was written Froxlor does not install
php5-curl by itself.
sudo apt-get install froxlor php5-curl
You will notice Froxlor installs many other packages along with it. That is perfectly normal. Froxlor’s ability to manage customer domain names, email accounts, FTP accounts, support tickets, and webroots in one place relies on these dependencies. Dependencies are other packages that a package depends on to operate.
During Froxlor’s installation, some of its dependencies will ask you questions about your desired configuration. This is the first set of installation questions, as you will be installing more of Froxlor’s dependencies later on in Step 4. The first thing you will be asked looks like this:
Courier is one of the email servers Froxlor can use. Froxlor does not use Courier as the default Mail Transfer Agent (MTA) because Dovecot uses less memory, but it installs it as a dependency so you need to answer this question. Since you do not want to configure it manually, use your left arrow button to highlight <Yes> in orange and press the ENTER or RETURN key on your keyboard.
The next thing you will see will be this image, or the one after it:
At first glance, this does not make sense because nothing will be highlighted in orange to make a selection. That is because you have to press the TAB key on your keyboard, and press ENTER or RETURN, then use your arrow key to select Internet Site from this menu:
Then press the ENTER or RETURN key again.
Next, Postfix will ask you a question. Postfix is another mail server that Froxlor can use. Make sure you enter your server's FQDN as the System mail name. Chances are, it will already be filled out for you. To accept the mail name Postfix suggests for you, press the ENTER or RETURN key.
Lastly, ProFTPD wants to know how it should run. ProFTPD is the default file transfer protocol (FTP) server that Froxlor can use. Make sure standalone is highlighted and press the ENTER or RETURN key.
Once the installation finishes, restart the Apache web server.
sudo service apache2 restart
From this point forward, you can access the Froxlor management panel using your server’s IP Address or FQDN with
/froxlor appended. For example, you could visit
Step 3 — Configuring Froxlor
Use your favorite web browser to access Froxlor’s management panel on your server. The first time you access the management panel, it will welcome you to Froxlor and tell you Froxlor is not installed yet; hopefully that phrasing will be fixed in a later release of Froxlor. Nonetheless, click on the Start install link.
Froxlor will do a quick check that it has everything it needs on your server to operate properly. All requirements are satisfied should be printed in large green print at the bottom of the page. Click on the Click here to continue link in the bottom right-hand corner of the window.
Now it is time to give Froxlor some information about your configuration. Here are the options you will need to change or set:
- Database connection > Password for the unprivileged MySQL-account: This will be the password for a new MySQL account Froxlor sets up to store its configuration settings and customer listings. You will need this password again in Step 4, but you do not need to remember it after that. Use the Secure Password Generator to generate a strong password. An example of a strong password could be &Mk9t(EX"Ce`e?T or w>hCt*5#S+$BePv.
- Database connection > Password for the MySQL-root account: This is the same password you set in the prerequisite LAMP tutorial when you installed MySQL, for the root MySQL user. Froxlor needs to have access to the root MySQL account so that it can create new MySQL databases and users by itself, which is part of the beauty of Froxlor. You could set up a different privileged MySQL account for added security.
- Administrator Account > Administrator Username: This is the username you will use to log into Froxlor using a web browser. It is recommended that you change the username to anything that is not the default username admin. In this tutorial, assume the user is named sammy.
- Administrator Account > Administrator Password + (confirm): This is the password you will use to log into Froxlor using a web browser. You will have to type in this password often; for optimal security, use a complex, long password that can be remembered easily.
The rest of the fields should be fine left with the default settings, if you did your installation on a clean Ubuntu 12.04 Droplet.
Once you are happy with your answers, click on the green Click here to continue button. Froxlor will test to make sure your settings are operational; once it decides they are, Froxlor was installed successfully will be printed in large green print at the bottom of the window.
Use the Click here to login link in the bottom right-hand corner of the window to go to Froxlor’s login page.
To log in, use the username and password you specified in the Administrator Account section of Froxlor’s setup in Step 3. You should also select your preferred language.
Step 4 — Installing and Configuring Froxlor’s Dependencies
At this point Froxlor itself is set up, but the underlying software that it uses to do the heavy lifting is not.
While Froxlor does not make this obvious during the its installation, there is more work to do beyond the initial installation and configuration process. In Froxlor’s current state on your server, it would not be able to operate at its full potential or execute commands on the server on the behalf of the control panel user.
To make Froxlor fully functional, we need to install more packages and run a series of commands on the server. An index of these commands is located in the Configuration menu of Froxlor’s management panel under the Server section.
Visit the Server > Configuration page now.
Froxlor’s configuration index uses three questions to direct you to the right set of commands. The first dropdown menu labeled Distribution needs the distribution of Linux you are running Froxlor on. You are running Ubuntu 12.04; always answer this question as Ubuntu 12.04 (Precise).
The next two menus, Service and Daemon, allow you to specify the category of service and the combination of daemons that you are using. Once you select from all three menus, Froxlor will redirect you to a page describing what to do and which commands to execute on your server. You will have to fill out the combination of these three questions once for each service.
The combination of services and daemons you need to select from the menu, and then execute the commands for, are listed below:
- Web server: Ubuntu 12.04 (Precise) >> Webserver (HTTP) >> Apache 2
- Mail sending: Ubuntu 12.04 (Precise) >> Mailserver (SMTP) >> Postfix/Dovecot
- Mail inboxes: Ubuntu 12.04 (Precise) >> Mailserver (IMAP/POP3) >> Dovecot
- FTP: Ubuntu 12.04 (Precise) >> FTP-server >> ProFTPd
- Cron: Ubuntu 12.04 (Precise) >> Others (System) >> Crond (cronscript)
Once you select all three items from the menu, you'll be brought to a page of commands that need to be run and configuration files that need to be added to the server from the command line.
Froxlor’s configuration instructions assume you will be executing the commands as the root user, so you will need to elevate into a root shell before you begin.
Configuration Walkthrough: Mailserver (IMAP/POP3)
We'll go through one additional server configuration for Froxlor in this tutorial. Once you've seen how to do it for the IMAP/POP3 server, you can follow a similar process for the other server components, such as the web server.
Make sure you have Ubuntu 12.04 (Precise) >> Mailserver (IMAP/POP3) >> Dovecot selected from the menu.
The IMAP/POP3 setup contains some oddities that the other sections do not, so this section needs some explaining.
First, Froxlor tells you to execute an
The problem with this command is that the
dovecot-postfix package no longer exists. It has been merged into the
mail-stack-delivery package. Omit the
dovecot-postfix package from the command and run it like this instead:
apt-get install dovecot-imapd dovecot-pop3d dovecot-mysql mail-stack-delivery
Next, Froxlor asks you to change the following files or create them with
the following content if they do not exist.
What this really means is:
- If the file already exists on the server you have two options: if it's a fresh installation you can simply rename the old file and replace it with Froxlor's version. If you have existing configurations you need to preserve, you can merge your existing file with Froxlor’s version
- If the file does not exist, copy Froxlor’s version of the file onto your server
Since this server has no prior modifications, you do not have to merge the files. You can simply replace the file on your server with Froxlor’s version of the file. To do that, make sure the file path listed above a given text box exists and is empty.
echo > /etc/dovecot/conf.d/01-mail-stack-delivery.conf
To copy the contents of Froxlor’s version of the file to your server, highlight the text from the text box, right click on it and select Copy. Next, open the file on your server in the
nano text editor.
Right click on your Terminal window and select Paste. The contents of the file from Froxlor’s text box will appear inside of nano. Press the CONTROL + X keys simultaneously for a moment. The bottom of nano will ask you this:
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ? Y Yes N No ^C Cancel
Press the Y key on your keyboard to save your changes. Press ENTER.
Add the content for the other three files,
/etc/dovecot/dovecot-sql.conf.ext. You can use
nano as we did for the first file.
Two of the files should already exist. Before you use
nano to add Froxlor's content for those files, you can back up the originals:
mv /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
mv /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig
For the last file,
/etc/dovecot/dovecot-sql.conf.ext, notice how it says Please replace "MYSQL_PASSWORD" on your own. If you forgot your MySQL-password you'll find it in "lib/userdata.inc.php". Froxlor is referring to the unprivileged MySQL password you created specifically for Froxlor in Step 3.
MYSQL_PASSWORD should be replaced with the unprivileged MySQL password anywhere it appears. Assuming the unprivileged MySQL password you created is
password = MYSQL_PASSWORD
password = &Mk9t(EX"Cee?T
You should use your own MySQL password to replace
chmod 0640 /etc/dovecot/dovecot-sql.conf.ext
Restart the service:
Now you can go back to the Server > Configuration menu and select another dependency to install, such as your web server. Froxlor will show you more commands and configuration files. The rest of Froxlor’s dependency installations and configurations will be straightforward and should be followed as they are presented.
Note that Froxlor's instructions are not necessarily everything you will need to set up the server. You may have to do some troubleshooting with users, permissions, and other configuration settings from the command line to get everything to work. You can look up the specific server you are trying to install for more instructions. For example, you will likely have to look up additional configuration instructions for Dovecot to get email working.
Adding Customers, Domains, and More
Once you have all of your servers set up on the backend, you can start adding customers, domains, and email addresses through Froxlor. Start by going to the Resources > Customers menu and adding your first customer. You may want to check out the Froxlor demo site to see more configuration options.
At this point, Froxlor should be completely configured and functional. If you find that something is not working properly (e.g. cannot access FTP, not sending emails, etc.), you can refer to Froxlor's forums, AskUbuntu Q&A, or DigitalOcean’s user community.
Please be prepared to post program log files from the
/var/log directory on your server to assist community members in resolving your problem. You can use Pastebin.com for posting program logs online.
Now that you have installed and configured Froxlor, you have a free alternative to cPanel or Webmin that will help you spend less time configuring and maintaining your multi-user or shared server. To further customize your Froxlor installation, refer to the Server > Settings menu in Froxlor’s control panel. If you choose to change any of the default daemons, remember to follow Froxlor’s configuration instructions, just like we did in the IMAP/POP3 section above.