System Requirements
Hardware Requirements
OS |
Debian 12 (bookworm) or other linux distribution that covers the required packages, Debian or Ubuntu are recommended. |
RAM |
>= 8GB |
Disk Space |
> 50 GB (depends mostly on saved resources like uploaded images and the screenshots that are stored for saved configurations. The number of configurations to be expected * the image size of the screenshots for a configuration provide a good guide value. It can be useful to archive or delete old screenshots from time to time.) |
Webserver and Packages
Users & Rights
php & php cli needs to write/read to systems tmp folder
Folders & Files
all files need to be readable by the php web executing user (usually www-data)
the following folders (+ subfolders) need to be writable by the php web executing user:
app/public/client
app/public/designer
app/public/images
app/public/img
app/public/visualization_component
app/var
Tmp folder
Configuratorware makes use of saving files to /tmp, so consider to setup you server that it deletes them automatically after certain amount of time to save Disc Space according to your needs.
Symfony Cache
Configuratorware relies on the symfony cache. To set up a server to work properly with it, check the Symfony Documentation.
Web Document Root
The web document root needs to point to app/public
Apache
mod_rewrite
mod_headers
.htaccess lookup needs to be enabled for everything under app/public
Mailing
For sending offer request mails, configuratorware uses the default the Symfony mailing stack. If you’re using the offer request feature, smtp mailing needs to be available on the server.
Libraries
ImageMagick (dependency of php-imagick, ^v6.9)
Additional Requirements for designer and creator+designer
The following libraries are necessary, if you have a designer or creator+designer license:
inkscape (>= v.0.92.4)
ghostscript (v9.27)
potrace (v1.15)
Additional Requirements for finder
To prevent / fix errors when uploading finder .json files in the adminarea, you need to increase the max allowed package size in your database settings. For mysql, add this to your my.ini or ~/.my.cnf in the [mysqld] or [client] section and restart your mysql server:
max_allowed_packet=256M
PHP
Version 8.3
Although configuratorware still supports older PHP versions, it is recommended to directly use version 8.3.
PHP ini settings
max_execution_time |
300 |
memory_limit |
128M |
PHP Modules
dom
exif
gd
intl
imagick
json
libxml
mbstring
pdo, pdo_mysql
simpleXML
zip
PHP Opcache
Opcache enabled. Recommended settings:
opcache.validate_timestamps=0
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
Database
You can use MariaDB or MySQL
MariaDB |
10.2 - 10.7 |
MySQL |
5.7 or 8.0 |
By default configuratorware is configured for MySQL 5.7. For different platforms specify the version ?serverVersion=
in the DATABASE_URL environment variable according to Symfony Database Configuration.
Support of vectorize and convert PDFs
To support PDF conversion, the default ImageMagick policies need to be changed. Do this at your own risk!
An option is to run the following command on the system, that will change the policies in /etc/ImageMagick-6/policy.xml: sed -i ‘/disable ghostscript format types/,+6d’ /etc/ImageMagick-6/policy.xml
To support uploaded user images in vector formats, you need to add the following entries manually to the /etc/ImageMagick-6/policy.xml file:
<policy domain=”coder” rights=”read|write” pattern=”PDF” />
<policy domain=”coder” rights=”read|write” pattern=”XPS” />
Workaround for inkscape in version 1.2.2
Due to the issue described in https://gitlab.com/inkscape/inkscape/-/issues/3524 a workaround is necessary for servers running the designer with inkscape version 1.2.2. The content of /usr/share/inkscape/extensions/eps_input.inx has to be updated. replace
<param name="autorotate" type="optiongroup" appearance="combo" gui-text="Determine page orientation from text direction"
gui-description="The PS/EPS importer can try to determine the page orientation such that the majority of the text runs left-to-right.">
<option value="None">Disabled</option>
<option value="PageByPage">Page by page</option>
<option value="All">All</option>
</param>
with
<param name="autorotate" type="string" gui-hidden="true">None</param>