This is a new version of the froxlor installer script. The main goal of this new script is to allow re-configuration at any time instead of one-shot solutions hence it is designed to be idempotent for most tasks.
Bash install script to install latest version of froxlor including all required system components. Optionally skip the installation part and just use it to configure an existing system.
Distribution | Version | Supported |
---|---|---|
Debian | 11 | ✗ |
Debian | 12 | ✓ |
RHEL | 8 | ✗ |
RHEL | 9 | ✓ |
FreeBSD | 12 | ✗ |
FreeBSD | 13 | ✓ |
Make sure to have git
installed.
On FreeBSD you can speedup the process by running portsnap fetch
in upfront. Additionally, it might required to switch to the latest package branch.
When configuring your system during the initial install process, do not enable SSL in froxlor web because otherwise the system service configuration will fail as no SSL certificate has been generated by Let's Encrypt yet.
Login to your machine, open terminal (ssh/shell) and run the following command as root:
mkdir -p /etc/froxlor/installer && \
git clone --quiet https://github.com/Hosting-MP/froxlor-installer.git /etc/froxlor/installer && \
sh /etc/froxlor/installer/install.sh
Remember to exchange /etc/
by /usr/local/etc/
when using FreeBSD.
Most configuration details are obtained directly from the froxlor database hence you can make most configurations from the froxlor webpanel. Some services cannot be configured in froxlor webpanel, however. You can find those config files in /etc/froxlor/
. Edit services settings here and not directly at the service config file, else your modifications might be overwritten on next run.
Everytime you have changed service configuration in froxlor web and you want to apply them to your system run:
sh /etc/froxlor/installer/install.sh
If you want to update the configuration templates pull the newest version here from github and re-run the configuration utility:
git -C /etc/froxlor/installer pull
sh /etc/froxlor/installer/install.sh
To use the configuration functionality only without a new full installation, some manual pre-configurations are required which were set during a full install automatically.
cat > ~/.froxlor.cnf <<EOF
[client]
# The following password is used by all standard MySQL clients
password=<your password for unprivileged froxlor user>
user=<username of unprivileged froxlor user>
host=localhost
database=<database name of froxlor database>
EOF
cat > ~/.froxroot.cnf <<EOF
[client]
# The following password is used by all standard MySQL clients
password=<your password for privileged froxlor user>
user=<username of privileged froxlor user>
host=localhost
database=<database name of froxlor database>
EOF
touch /etc/froxlor/installer/INSTALLED
EOF
Running all tasks everytime you have changed a configuration in froxlor does not break anything but you can save time by executing the configuration utility for the app you changed settings only.
Run the following command as root:
cd /etc/froxlor && ansible localhost -m include_role -a name=< ftp | webserver | php >
THIS IS NOT WORKING RIGHT NOW. USE FULL RECONFIGURATION INSTEAD.
This script configures certain features which are not included in the standard froxlor configuration. It usually doesn't break anything when having them enabled but if you experience errors or malefunctionalities with your web apps for instance, these features can be disabled. The ost practicable is to modify /etc/froxlor/froxlor.conf
after a successfull installation and run the configuration script again.
If you have assigned a custom ssh port (which is not recommended: no security by obscurity), you should disable the firewall feature before configuring the system:
cat > /etc/froxlor/froxlor.conf <<EOF
firewall:
enable: false
EOF
It is recommended to make modifications to the config files in /etc/froxlor
after the initial installation has finished.
Remember to exchange /etc
by /usr/local/etc
when using FreeBSD.
PowerDNS with Bind9 backend isn't working.
phpMyAdmin can only be installed into the webroot (configure phpMyAdmin-URL setting in webpanel to https://<domain>/phpmyadmin
).
If the webserver enablement is changed, the configuration rebuild needs to be triggered manually in froxlor web too.
Only PHP-FPM is supported currently. Configure your installation accordingly in the webpanel.
Only Dovecot is supported currently, not courier.
Creating an Ansible module for froxlor which allows direct interaction with Froxlor API
Better SSL integration for Email
Firewalld zone profiles
ModSecurity3