Hello, We'd like to be able to deploy ISPConfig with a custom installation template, but I cant seem to figure out if ISPConfig supports this or not. Essentially, what we want to achieve, is to be able to use the auto installer along with a pre-made configuration file. The file would be a definition of initial ISPConfig 3 settings. For example, we want to be able to set it to use a custom theme, as well as things like PHP.ini settings, and nginx settings (gzip, brotli, caching, etc) when we install on new servers. Thanks in advance.
There is no configuration template besides the options available in the auto-installer. You can e.g. modify the ISPConfig installation with a script after finishing the installation.
Fair enough. One other question on a similar theme. Is there a way to set a global configuration for all new sites? IE.. specific PHP, NGINX settings?
If the developer allowed access to the git, you can also fork ISPConfig auto installer to do the same. Global config for all sites is based on the default template in /conf folder, so just copy it to /conf-custom to customize your own. I am not sure what you mean by specific php though.
I will check out the /conf folder. Thanks for that insight. As per the PHP, I mean default php.ini settings - such as memory_limit. I'd like to be able to have every site deployed to have a default memory_limit of 256mb. Additionally, I'd like to be able to set what the default type is FPM vs CGI (always FPM), and PHP version (8.3). Ideally the same would be true for NGINX. I've played with the snippets which are useful, but optional. I want something that just automatically puts my values into those config areas as part of a default site deployment. Right now, I have to manually add them each time.
For the php custom config, I think it should work fine if the ini file is put inside the web root. As for the custom snippet, it can be added in the customized template as well.
You can do this by using a custom vhost template, like @ahrasis mentioned already. Change the global php.ini settings of the PHP-fpm version you like to use in /etc/php/x.x/fpm/php.ini and restart php-fpm. Which PHP modes are available can be configured under system > Interface > main config. And the default PHP version depends on your OS, Ubuntu 24.04 has PHP 8.3, Debian has PHP 8.2. But you can also change this under System > server config, but I do not recommend altering the system default PHP version as side effects like non-working system packages that use PHP can occur then. This all applies to Apache and Nginx in the same way.
So I've checked out the conf folder. My only question is about best practice, should I just edit those files to have the default configuration I want, or is there a way to make a custom_conf that is loaded in addition to the default. Id like the changes to survive updates, which is why Im asking. I was looking through the manual and google, but didnt see anything that explicitly defined how to do this.
Copy the config template from /usr/local/ispconfig/server/conf/ folder to /usr/local/ispconfig/server/server/conf-custom/ folder. and edit in conf-custom only. Templates in conf-custom override templates in conf. And installation templates go from install/tpl/ of the ISPConfig.tar.gz file to /usr/local/ispconfig/server/conf-custom/install/ Google search has become quite bad indeed these days. The question on how to customize templates and where to store them has been answered hundreds of times here in the forum, but Google seems unable to direct users to the matching threads.