Skip to main content

Webmin/Virtualmin setup

Webmin/Virtualmin is a partial automatic case for cPGuard.

cPGuard can use built-in logic to obtain the domain + document root + user side of the configuration, but WAF details still need to be supplied manually just like a standalone setup.


What is automatic on Webmin/Virtualmin

On Webmin/Virtualmin, cPGuard can usually obtain:

  • domains
  • document roots
  • system users

That means the website-data side of standalone configuration often does not need manual JSON or custom parsing on Webmin.


What is still manual

For WAF, Webmin behaves like standalone.

You still need to provide the WAF-related values in cpguard.ini:

  • waf_server
  • waf_server_conf
  • waf_server_restart_cmd
  • waf_audit_log
  • waf_server_error_log

If you want WAF enabled, provide the whole WAF block together.


Typical workflow

  1. Install cPGuard normally.

  2. Let cPGuard use the built-in Webmin/Virtualmin handling for website discovery.

  3. Edit /opt/cpguard/cpguard.ini and fill in the WAF values.

  4. Apply the updated configuration:

    cpgcli standalone-conf --update

You can also reopen the standalone wizard:

cpgcli standalone-conf --wizard

Example: Apache with ModSecurity on Webmin/Virtualmin

; Website data is usually auto-resolved for Webmin/Virtualmin
domain_list = auto
user_list = auto

; WAF values still need to be provided
waf_server = apache
waf_server_conf = /etc/modsecurity/cpguard.conf
waf_server_restart_cmd = /usr/sbin/service apache2 restart
waf_audit_log = /var/log/apache2/modsec_audit.log
waf_server_error_log = /var/log/apache2/error.log
note

If your Webmin/Virtualmin setup is customised and the automatic website-data detection does not match your layout, you can still override it with explicit domain_list and user_list values just like any other standalone server.