-
-
Notifications
You must be signed in to change notification settings - Fork 20
System Configuration
Akeeba Panopticon has a number of system-level configuration parameters which allow it to be adapted to different server environments and use cases. You can change these parameters from the Administration, System Configuration page.
The page consists of a number of tabs, each one with different sections.
IF SAVING THIS PAGE FAILS with an HTTP 403, HTTP 404, HTTP 500 error, or a blank page, it most likely means that your PHP configuration does not allow you to save a form with so many different controls. Ask your host how you can set max_input_vars
to 1000. In most cases its one of the following:
- a
.user.ini
file in your installation root (next toindex.php
) with the linemax_input_vars=1000
- a
php.ini
file in your installation root (next toindex.php
) with the linemax_input_vars=1000
- a line at the bottom of the
.htaccess
file in your installation root (next toindex.php
) with the contentsphp_value max_input_vars=1000
If you have hundreds of sites with a very large number of extensions, plugins, and themes you may have to increase this value even higher.
General settings modifying the bahaviour of the application.
Panopticon URL. The full URL to your Akeeba Panopticon installation. This is something like https://www.example.com
. You must set it up, as it's used for generating links in emails sent from unattended tasks (which are processed by CRON jobs which may be running under CLI, i.e. they don't have any other way of determining the URL to your site).
System Configuration. The default language for displaying the user interface and sending emails.
Time Zone. The timezone used to display dates and times by default.
Error Reporting. How verbose do you want PHP to be when reporting errors. The available options are:
- Default. Use whatever error verbosity is defined on your server. A bad idea, unless it's your own server you manage yourself, and you know exactly what you're doing.
- None. No PHP errors are displayed. Recommended for live deployments.
- Simple. Only PHP fatal errors are displayed.
- Maximum. Everything will be displayed: PHP deprecation notices, notices, warnings, and errors. Only use this if you are helping develop Akeeba Panopticon.
Debug system. Enabling this will result in more detailed error messages. Only use this if you are going to ask for help troubleshooting an issue, or if you are helping develop Akeeba Panopticon.
Anonymous Usagfeg Statistics Collection. When enabled, Panopticon will report the version of PHP, MySQL, and itself at most once a week. No personally identifiable information is collected. Please keep this enabled; it helps us gather aggregate data about which PHP and database technologies y'all are using which we then use to decide when to stop supporting older PHP, MySQL, and MariaDB versions.
Options which control the session storage. It is used to keep you logged in, and to store information between the Panopticon pages you are visiting.
Session timeout in minutes. How long you want to remain logged into Akeeba Panopticon. The default is 1440 (one day). Recommended values: 15 to 1440. Lower settings are more secure, in that someone getting surreptitious or unauthorised access to your computer / browser storage will be unable to impersonate you in Panopticon.
Anti-CSRF Token Algorithm. Akeeba Panopticon prevents cross-site request forgery attacks by using a session token. This is a long, randomly generated string which needs to be present when certain actions are being taken. Since it's practically impossible to guess, it means that any external links to your Panopticon installation which would take actions will not work. The length of this random string is determined by the algorithm set up here. The longest and most secure is SHA-512, the shortest and least secure is MD5. You only need to use a shorter, less secure algorithm if your server throws an error when it encounters the longer, more secure anti-CSRF tokens (usually because of a misconfiguration of the security setup of the web server).
Use Default PHP Session Save Path. When enabled, Akeeba Panopticon will use the PHP session save path (session.save_path
) configured in PHP itself, unless it's not writeable; in the latter case, it will use tmp/session
under your web root. When disabled, Akeeba Panopticon will always use tmp/session
under your web root.
ℹ️ It is recommended that you enable this feature for the reasons explained in the Fixing your session save path documentation page. Namely, on most shared hosts the session save path is shared across all sites on the server. This can be a security concern, and it will also result in your session randomly expiring (you get logged out) before the configured Session Timeout is reached. That's due to how PHP works. Setting this option here to No allows Akeeba Panopticon to use a private session save path which addresses both issues.
Session Path Levels. The session data files can be stored either all in a single directory (default, when this is set to 0), or in a number of subdirectories. The latter only makes sense if you have thousands of concurrent visitors to your Panopticon installation. Remember, there is a small performance penalty incurred by using subdirectory levels, but it's much smaller than the performance penalty of storing more than about 3000 to 5000 session data files in a single directory. That's the point where setting this to a non-zero value makes sense.
Encrypt session data. The session data files may include privileged information such as passwords and API tokens. When this option is enabled, and your server has the PHP OpenSSL extension installed and activated, the session data files' contents will be encrypted with AES-128 and a secret key which is unique to your Akeeba Panopticon installation. This way, even if someone managed to get their hands on the session data files, they wouldn't be able to do anything with it.
Several features of Akeeba Panopticon use a cache for performance reasons.
Default cache time in minutes. How long do you want data to be cached by default. This is mostly unused, as each feature applies its own, more appropriate cache time.
Storage. Where and how do you want cache data to be stored. The options are:
- Files. Cached data is stored in files under the
cache
folder. This is compatible with all Operating Systems. If unsure, use this. -
Files and Symlinks (Linux and macOS only). Cached data is stored in files and symbolic links under the
cache
folder. This is compatible with Linux, macOS, and other UNIX-based Operating Systems (e.g. FreeBSD). - Database. The cached data is stored in the database.
⚠️ This can cause severe performance degradation. We DO NOT recommend this option. - Memcached. The cached data is stored in a memcached server. You will need to provide the “Memcached Data Source Name (DSN)” to connect to the server as per Symfony Cache's documentation.
- Redis. The cached data is stored in a Redis server. You will need to provide the “Redis Data Source Name (DSN)” to connect to the server as per Symfony Cache's documentation.
Akeeba Panopticon keeps [log files](https://en.wikipedia.org/wiki/Logging_(computing) of the actions it takes. Log files are also rotated every day. This means that every day the existing log file is renamed and a new log file is started. The old (rotated) log files will be automatically removed after a certain amount of time to save on disk space.
Log Level. The detail level of log files. It can be one of:
- Error. Only stop errors are recorded in the logs.
- Warning. Only stop errors and warnings are recorded in the logs.
- Notice. Only stop errors, warnings, and notices are recorded in the logs.
- Information. Only stop errors, warnings, and informational messages are recorded in the logs.
- Debugging. Everything is recorded, including debugging information.
You should set this to at least Warning to have a useful log. Set to Debugging if you are troubleshooting and issue, or need help to troubleshoot an issue.
Number of Rotated Logs. How many rotated files do you want to keep. Recommended values: 1 to 7.
Log File Retention. How many days do you want to keep the rotated files for. Recommended values: 1 to 7.
Compress Rotated Logs. Should the old (rotated) log files be stored compressed to save disk space?
On most servers it is possible for PHP applications to connect directly to the Internet to access external sites – something which is of paramouont importance for a site monitoring system like Akeeba Panopticon. A minority of servers need to use a proxy server to route their connections through it. If unsure, ask your host.
Use a Proxy Server for Outgoing Connections. Should a proxy server be used for connections to external sites?
Proxy hostname or IP Address. The host name (domain name), or IP address, of the proxy server.
Proxy Port. The TCP/IP port of the proxy server. Usually this is 3128. Ask your host.
Proxy Username (optional). Some proxy servers require a username and password to allow connections. This field is for the username.
Proxy Password (optional). As above, but this field is for the password.
Do Not Proxy These Domains. It is possible that your server is configured in such a way that some domain names can be accessed directly, without using a proxy server. Enter a comma separated list of full or partial domain names, or TLDs. Examples:
-
www.example.com
only allows non-proxied connections towww.example.com
. Trying to accessfoobar.example.com
,example.com
, orakeeba.com
will use the proxy. -
.example.com
(note the dot in front) allows non-proxied connections to all subdomains ofexample.com
. Trying to accesswww.example.com
orfoobar.example.com
will NOT use the proxy. Trying to accessexample.com
, orakeeba.com
will use the proxy. -
.dev
allows all sites in the.dev
TLD to bypass the proxy. Trying to accessexample.dev
,www.example.dev
, orfoobar.example.dev
will NOT use the proxy. Trying to accessexample.com
, orakeeba.com
will use the proxy.
Akeeba Panopticon's configuration for each site, as well as all configuration for these sites, is stored in the database. You can set up Akeeba Panopticon to make automatic backups copies of its database.
Automatic Database Backups. Should Panopticon take daily, automatic backups of the important database tables? The backups are SQL files which can be restored in a new, blank Panopticon installation with the same database table name prefix.
Compress Database Backups. Should Panopticon compress the database backups with Gzip to save disk space?
Maximum Number Of Database Backups. How many database backup files should Panopticon keep? Only applies to backups taken automatically, backups taken manually from the Database Backups page, and backups taken from the CLI to the default directory.
This controls how Akeeba Panopticon connects to its database.
config.php
file, e.g. by copying it as config.bak.php
before changing anything here. Always prepare the new database, database user, and/or database tables before making changes here. Remember that Akeeba Panopticon will not move or rename database tables for you. If things break, restore your old copy of your config.php
file.
Database Driver. The PHP database driver to use. MySQLi is the older driver. PDO MySQL is the more modern one. Please note that even though both drivers have “MySQL” in their name, they will work just fine with any database server which is compatible with MySQL such as MariaDB, Percona, Amazon RDS for MySQL, etc.
Database Hostname. The hostname (domain name), or IP address, of the database server. Caveats:
-
localhost
and127.0.0.1
mean different things in PHP.localhost
uses a UNIX socket file (Linux, macOS, *BSD, ...) or shared memory (Windows) to communicate with the database server.127.0.0.1
uses TCP/IP networking. - If you need to provide a custom path for the UNIX socket file use the format
localhost:/path/to/socket
where/path/to/socket
is the path to the UNIX socket file provided by your host. - If you need to provide a custom TCP/IP port (other than 3306) use the format
127.0.0.1:1234
ormysql.example.com:1234
i.e. the IP address or domain name of your database server, followed by a colon, followed by the TCP/IP port number provided by your host.
Database Username. The username for the database user you use to connect to the database. Make sure the database user has full privileges on the database you will be using. Remember that many hosts add a prefix automatically. If this is the case, the prefix MUST be included in what you type here.
Database Password. The password for the database user you use to connect to the database.
Database Name. The name of the database. Remember that many hosts add a prefix automatically. If this is the case, the prefix MUST be included in what you type here.
Database Prefix. The common prefix for all of Akeeba Panopticon's database tables. By default, this is pnptc_
.
Connection Character Set. The character set used to communicate with the database server. This should always be utf8mb4
. The utf8 option will prevent you from using some characters, such as Emoji, some extended Chinese characters, etc. It may also break some features in Akeeba Panopticon, or even cause data loss.
Database Encryption. Only enable if your database driver requires authentication with an SSL/TLS certificate. Most users can and should leave this disabled.
Path to SSL/TLS CA Certificate. Absolute filesystem path to the TLS Certificate Authority (CA) certificate file used to validate the connection to your database server. Example /home/myuser/certificates/ca.crt
.
Path to SSL/TLS Key File. Absolute filesystem path to the TLS private key file used to authenticate you to the database server. Example /home/myuser/certificates/myuser.key
.
Path to SSL/TLS Certificate File. Absolute filesystem path to the TLS public key (certificate) file used to authenticate you to the database server. Example /home/myuser/certificates/myuser.crt
.
Verify SSL/TLS Server Certificates. Should the database server's certificate be validated against the CA Certificate provided above?
Options which affect the security of your Akeeba Panopticon installation.
ℹ️ Remember, security of Akeeba Panopticon logins is critical! Someone who can access Akeeba Panopticon can manage all sites that user account has access to. In other words, access to Akeeba Panopticon should be treated as Super User / Administrator access to the sites you are monitoring with it.
Options which control which passwords can be used by the users of your site. We strongly recommend using these options to improve the security of user accounts in Akeeba Panopticon.
❗ These options are only applied when you are creating a new user account, or when you are changing your password. Your passwords are stored in the database hashed,i.e. they cannot be read verbatim which is a requirement for these options. The only time a password is available verbatim is during login, on account creation, and on changing the password when editing a user account. Logins are timing sensitive; the time it would take to evaluate the security of a password can be measured to deduce information about your password, which is why the check is NOT taking place at that time.
Forbid using leaked passwords. Prevent users from using passwords which are found in online password leaks. Powered by the third party service Have I Been Pwned. This is a very secure feature. Your password is NOT transmitted to the third party service. Its SHA-1 sum is calculated, and only the first 5 digits of it are sent to the service. The service responds with a list of SHA-1 sums corresponding to leaked passwords. We then check these returned SHA-1 sums with your password's SHA-1 sum to determine if it's a leaked password. Someone observing the network traffic cannot figure out what your password is; they are still left with billions of quintillions of possibilities.
Akeeba Panopticon can automatically, temporarily block access to it for an IP address if it detects a lot of failed login attempts taking place. Please note that if you or any other user mess up entering your username and/or password you may be locked out of Akeeba Panopticon.
Automatic IP block on failed login attempts. Should this feature be enabled? We strongly recommend enabling it, as it helps fight brute force attacks and credential stuffing attacks against your installation.
Maximum login failures. How many login failures are allowed before the IP address is locked?
Login failure window. In how many seconds does this number of failed logins has to take place before the IP address is locked?
Example: If you set the two options above to 5 failures in 60 seconds, an IP address will only be blocked if it causes 5 login failures in the span of one minute. If it reaches 5 failures in a longer period of time, e.g. two minutes, it won't be blocked. The total number of login failures may grow higher than that, e.g. they may have 20 failed logins in ten minutes, but not 5 failed logins within any 60 second period; the IP address will not be blocked in this case.
IP block time. How long (in seconds) should a blocked IP address be disallowed from accessing your Akeeba Panopticon installation?
Extend IP lockout time. When enabled, every time a blocked IP address tries to access Akeeba Panopticon it will have its lockout time reset, i.e. the IP address will be disallowed from accessing the site for another “IP lockout time” seconds. This penalises some bots, but it comes at the expense of slowing down legitimate access to Akeeba Panopticon.
ℹ️ When under heavy attack from a bot sending dozens or hundreds of concurrent requests you may find that it takes a bit more than the “Maximum login failures” to block the IP address it's coming from. This has to do with the way the database server itself works. Writing data to a MySQL-compatible server from one thread does NOT guarantee that all other threads connecting to the database server will see the just-written changes right away. We do implement all the guidelines explained in the MySQL manual to get as close to consistency as possible, but MySQL cannot guarantee it. If you have dozens or hundreds of threads processing requests it is possible that some of them get stale data from the database which is why the number of login failures it takes before an IP address is blocked may be higher than the configured value.
Akeeba Panopticon is a site monitoring solution. Its main way to communicate with its users about its actions, and what is going on with monitored sites is by sending emails. These options tell it how to send those emails. If you are looking for a way to change the content and / or look and feel of the emails you need to head to the Mail templates page.
Mail Sending. Should Akeeba Panopticon send emails at all? Only disable if you feel something is going really wrong and want to work on it before re-enabling emails.
Immediate Email Sending. Normally, Akeeba Panopticon enqueues the emails to be sent and sends them out in batches once every minute (approximately; depends on how much work other automatic tasks have to do, and how many CRON jobs you've set up). In most cases this is fine, and makes Akeeba Panopticon's autoamted tasks very responsive. Some users, however, have been confused to see in the interface that an action has already finished but the email appearing to be sent a few seconds to a few minutes later. If you have more impatience than you have sense you can enable this option to skip the queue completely and send all emails as soon as they are meant to be sent. Performance will suck. Your capacity for running scheduled tasks will be reduced. BUT you will have your emails delivered as close to immediately as possible. It is very safe to say that this is NOT a recommended option.
Inline Images in Email. Normally, Akeeba Panopticon leaves links to images in emails as-is, i.e. as links to external images. Most email clients will not render them at all by default. If you want, you can tell Akeeba Panopticon to embed these images as inline attachments. The images will always be displayed in your emails BUT your emails will be bigger, and slower to send and receive. We do not recommend enabling this feature.
Mail Handler. How do you want emails to be sent? The avaialble options are:
- PHP Mail. Uses the email configuration in PHP itself. Strongly not recommended. This will cause emails to end up in junk / spam with most commercial hosting server configurations. Only use it if you are managing your own server and know exactly what you're doing.
- Sendmail. Uses the system's
sendmail
command to send email. Only use if your server explicitly told you to use this. - SMTP. Uses a connection to an SMTP server to send emails. This is what most people need to use.
Sender Address. The From email address for your mail. Make sure that it matches the mail handler and its configuration, or your emails will end up in junk / spam as they will appear to be “spoofing” the sender address.
Sender Name. The human-readable name of the sender of all emails originating from Panopticon. You could use something like “My Business Name Site Monitoring”.
SMTP Host. The hostname (domain name) or IP address of the SMTP server used to send emails.
SMTP Port. The TCP/IP port used to connect to your SMTP server. Ask your host.
SMTP Security. Should the connection to the SMTP server be encrypted? Usually it's either None (no encryption) or TLS (also known as StartTLS). The SSL option is largely a historic artefact with no use since the early 2000s.
SMTP Authentication. Does your SMTP server need a username and password to connect to? Most modern SMTP servers do. If unsure, ask your host.
SMTP Username. The username to connect to the SMTP server. Usually, this is the same as the email address. If unsure, ask your host.
SMTP Password. The password to connect to the SMTP server. If unsure, ask your host.
Send Test Email Message. Click this button to send a test message to your email address.
These options change how the Akeeba Panopticon web interface looks.
Template. The template to use. Only a default template is provided with Akeeba Panopticon. You can create your own template and save it in a folder under the templates
folder if you wish.
CSS Theme File. Akeeba Panopticon comes with several CSS files which change the colours of the interface. You can even create your own, see the Custom CSS page. Select which CSS file you want Panopticon to use.
Dark Mode. Akeeba Panopticon can adapt its colour scheme from dark text on a bright background (Light mode) to bright text on a dark background (Dark mode). This is useful in low-light conditions and, for some people, may even be an accessibility feature. This option controls when to switch between the two display modes:
- Browser preference. The display mode follows the user preference as communicated by their browser. Most browsers will, by default, use the preference set by the user in the Operating System itself.
- Always light. Always use Light mode, i.e. dark text on a bright background.
- Always dark. Always use Dark mode, i.e. bright text on a dark background (Dark mode)
Font size. The base font size for the interface. The default is 12 pt (points), the recommended setting in most cases. Individual users can always change the zoom level of their browser; the interface is responsive and will adapt accordingly.
PHP Version Messages in Main Page. Do you want to see notifications in the main (Sites Overview) page when Akeeba Panopticon detects that the PHP version you are running it on is out of date?
Show avatars for users. Display avatars for users. This feature is powered by the third party service Gravatar. Avatars are shown in the main menu (next to the username), and the user profile page.
The Sites Overview page has two different layouts. The classic layout is the Table format which lists all monitored sites in a table, with a lot of details which can be overwhelming. The newer layout is called Dashboard and shows one small card per site, with just the most vital information of the site displayed in it. The Table layout is static, the Dashboard layout is dynamic; its information is automatically refreshed. The options in this section control the Dashboard layout.
Dashboard Reload Timer. The Dashboard will reload the site information every this many seconds, unless it's paused. The default is 90 seconds.
Maximum Displayed Items. Akeeba Panopticon makes AJAX calls to load the sites for the Dashboard layout. Each AJAX call (HTTP request) loads up to 50 sites; this number is hard-coded and cannot be changed. The total number of sites displayed is controlled by this setting here. The default is 1000. The bigger the number the longer it takes to load the sites, and the more CPU and memory will be used by the browser. If you overdo it you may end up with an unresponsive browser window.
The core of Akeeba Panopticon is, of course, taking actions on sites automatically and monitoring the sites by periodically reloading their information. These features are controlled by the options in here.
These options control how the CRON jobs which process automatic tasks will run.
Web CRON Key. If you are using web-based CRON jobs you will need to provide a secret key in the URL to prevent abuse of the scheduling URL by third parties. This is the Web CRON Key here. A key is generated randomly when you install Panopticon. Here you can find out what it is, or change it.
Stuck Task Threshold. A task will be considered “stuck” if it has not updated its execution status after this many minutes. Stuck tasks are considered failed. The default is 5 minutes.
Maximum Execution Time. The maximum number of seconds a CLI-based CRON job can execute. Please consult the CRON Jobs documentation page for a deeper dive.
Execution Time Bias. After a CRON job has executed for this percentage of its Maximum Execution Time it will be stopped, even though it has not yet reached the configured Maximum Execution Time. This creates a small “buffer” to prevent timeout issues. You should not need to change this, unless you have an extremely restrictive server. But, you know what? A very restrictive server is not a good place to set up your site monitoring. You can get a much better server with no such restrictions for under US$10 a month. If you're monitoring dozens of sites it's more than worth it. Do remember that it's not just the hosting that costs money. Your time solving problems costs you money, too.
Controls Akeeba Panopticon's Uptime Monitoring feature.
ℹ️ This feature can be extended with plugins.
Uptime Monitoring Provider. Choose which service will be used to report your sites' uptime. Please note that the integrated “Panopticon” provider is very basic and has some gotchas. Please read the documentation.
Akeeba Panopticon monitors your sites by periodically collecting information about your sites.
Frequency of Site Information Collection. Akeeba Panopticon runs its site information update task once every 15 minutes. Any site whose information was last updated “Frequency of Site Information Collection” minutes ago or longer will have its information reloaded.
Controls the default behaviour for installing Joomla!® and WordPress core updates.
ℹ️ Using this feature requires a basic understanding of how version numbers are supposed to be read. Please consult the “How do version numbers work?” page on our business site.
When An Update Is Found. What to do when a Joomla!® or WordPress core updates is found:
- Do Nothing. No action is taken.
- Send Email. Email users who can see the site, notifying them that an update is available.
- Install Patch Versions Only. Only install patch versions, i.e. when the third number of the version has changed. For example, 1.2.3 to 1.2.4. In all other cases behave like Send Email was selected.
- Install Minor Versions Only. Only install patch and minor versions. A minor version is when the second number of the version has changed. For example, 1.2.3 to 1.3.0. In all other cases behave like Send Email was selected.
- Install Any Version. Install any patch, minor, or major version. A major version is when the first number of the version has changed. For example, 1.2.3 to 2.0.0.
ℹ️ This preference can be changed per site.
Controls the default behaviour for installing updates to Joomla!® extensions and WordPress plugins and themes.
ℹ️ Using this feature requires a basic understanding of how version numbers are supposed to be read. Please consult the “How do version numbers work?” page on our business site.
When An Extension Update Is Found. What to do when a Joomla!® extensiono or a WordPress plugin or theme update is found. This works exactly like the “When An Update Is Found” option under CMS Updates.
Below that, you will see a table with all Joomla!® extensions and WordPress plugins and themes which have been detected across all of your sites. Each one has an “Update preference” drop-down next to it. This works the same as the When An Extension Update Is Found option above, but only applies to the specific extension, plugin, or theme. Use the “– Use Global –” setting to use the When An Extension Update Is Found option, or its per-site override.
The update preference for extensions, plugins, and themes can be changed per site. Both the default preference (applying to all software with an updated preference of “– Use Global –”), and the per-software setting can be changed on each site in Akeeba Panopticon.
Documentation Copyright ©2023–2024 Akeeba Ltd.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
You can also obtain a copy of the GNU Free Documentation License from the Free Software Foundation
- Overview pages
- Working with sites
- Site Overview
- Backup Management with Akeeba Backup Pro
- Security Management with Admin Tools Pro
- Scheduled Update Summary
- Scheduled Action Summary
- Backup Tasks
- Scanner Tasks
- System Configuration
- Managing Sites
- Mail templates
- Users and Groups
- Tasks
- Log files
- Update Panopticon
- Database Backups
- Fixing your session save path
- The .htaccess file
- Advanced Customisation (user code)
- Plugins
- Custom CSS
- Custom Templates
- Advanced Permissions
- .env For Configuration