Software Installation Guide
General Information
Before deploying the software, review the configuration/settings file for your instance. Ensure that the settings.php
file is correctly configured. While this software has been successfully used in many production environments, there are no absolute guarantees.
This software has been tested on Ubuntu and Debian systems, though it may work on other systems that have not been tested. If using a system other than Debian or Ubuntu, you might need to adjust deeper settings within the settings.php
file. This software is optimized for Debian/Ubuntu with Apache and PHP 8. Below are the requirements and installation steps to follow:
Requirements
- Root permissions for cronjobs on the system.
- Apache2 web server with PHP 7/8 support.
- Apache2 module:
rewrite
. - PHP modules:
mysqli
,curl
,intl
,mbstring
,gd
. - MySQL database connection and user credentials (configured in
settings.php
).
Installation Procedure
- Upload Files: Upload the files from the "source" directory of this repository to your web space.
- Configure Settings: Check the
settings.sample.php
file and make the necessary changes. Set your MySQL login credentials in thesettings.php
file. - Rename Configuration File: Rename
settings.sample.php
tosettings.php
. - Automatic SQL Tables: The software will automatically create any required SQL tables when the website is first opened. An initial user will be created, and login credentials will be provided at the end of this guide.
- Setup Cronjob: Configure the cronjob as described below. Without it, Dovecot configuration will not be written.
- Edit Dovecot Configuration: It is crucial to modify the
dovecot.conf
file as described in the documentation below.
Initial Setup
After uploading the project files to the server (outside of the source directory), modify the settings.sample.php
file as needed and rename it to settings.php
. This step is mandatory to ensure the software functions correctly, as valid MySQL user data is required.
Configuration Settings
Below is a list of settings you can configure in the settings.php
file:
Constant | Description |
---|---|
_TITLE_ |
Set the website title, which will be shown in your browser tab. |
_IMPRESSUM_ |
Link to your impressum page, accessible from the footer. |
_SQL_HOST_ |
SQL Database Host. |
_SQL_USER_ |
SQL Database User. |
_SQL_PASS_ |
SQL Database Password. |
_SQL_DB_ |
SQL Database name. |
_IP_BLACKLIST_DAILY_OP_LIMIT_ |
IP blacklist limit for blocking IPs (default is 1000). Reset daily if the cronjob daily.php is executed. |
_CSRF_VALID_LIMIT_TIME_ |
Validity period of a CSRF key for form validation (default is 1000 seconds). |
_MYSQL_LOGGING_ |
Set to "true" to enable MySQL logging and the debug area in the web interface. Set to "false" to disable. |
_COOKIES_ |
Cookie prefix. No need to change unless you are familiar with the implications. |
_CRON_DOVECOT_FILE_ |
Path to the Dovecot configuration file for SSL certificate/domain settings. Include this in dovecot.conf . |
_CRON_ISP_FOLDER_SEARCH_ |
Path for fetching subfolder names from ISPConfig (only needed if using ISPConfig). |
Cronjob Setup
To ensure the software operates correctly, configure the following cronjobs:
Mandatory Cronjobs
Command | Interval | Description |
---|---|---|
_webroot_/_cronjob/daily.php |
Daily | Resets blacklisted IPs (optional but recommended). |
_webroot_/_cronjob/sync.php |
X | Executes all domain and Dovecot related operations. Recommended interval: hourly. This is mandatory. |
Optional ISP Config Domain Fetch Cronjob
Command | Interval | Description |
---|---|---|
_webroot_/_cronjob/ispconfig_fetch.php |
X | Fetches SSL certificates and domains from ISPConfig webroot folders. Only needed if using ISPConfig. |
Edit Dovecot Configuration
Important: Modify the dovecot.conf
file to make the script work. Add the following line to the end of the file:
Initial Login
After successfully deploying the software, log in with the following credentials:
- Username: admin
- Password: changeme
Important: Change the initial password after the first successful login.