Type
The selected type will determine the configuration of your website.
Basic Types
To run your own application with a certain technology stack, use one of our basic types.
Docker
This Type is used to run your own Docker container behind a website acting as reverse proxy.
a website type Proxy is configured
Docker will be installed and configured
created website user is member of the docker group and thus allowed to execute
docker
commandsdocker containers and images are excluded from Backup, volumes are snapshoted normally
Warning
To persist data in docker containers use volumes instead of bind mounts, due to permission conflicts. For more information see Persisting Data.
Tip
Also take a look at our How-to Getting Started with Docker.
HTML
Used to create a HTML only website with no dynamic processing altogether.
Node.js
Your Node.js application is executed with a daemon controlled by Monit. To work properly, its necessary to run the application directly and not by, for example, npm run start
which would fork the actuall process and lead to incorrect process handling.
Tip
Have a look at our How-to Getting Started with Nuxt.js as well.
select custom node version trough nvm, by default, the latest node lts version is installed
Warning
When installing more node versions via nvm install <version>
see Node.js
nodejs has to listen on the
~/cnf/nodejs.sock
socket, permission660
most applications are able to listen on unix sockets which is our preferred way to connect Node applications to the webserver
for technical details, see
server.listen
within the Node api documentationif you cannot configure your application to listen on a unix socket, you can configure a custom TCP port by setting
nodejs_port
in Custom JSON Website Level Configurationyou have to make sure the port is not already in use
you have to make sure your application does listen on this particular TCP port (the configured port from
nodejs_port
is exposed as$NODEJS_PORT
environment variable for dynamic configurations)
symlink your app.js to
~/app.js
or overwrite path or other daemon options inOPTIONS
at~/cnf/nodejs-daemon
:OPTIONS="/home/nodejs/application/app.js --prod"
Tip
to control the nodejs daemon, use the nodejs-restart
shortcut
PHP
PHP installed and running as FPM service included in nginx
you can select the desired version at the Advanced tab
for custom configurations, see PHP
Python
uWSGI daemon (place or symlink your appropriate wsgi configuration to
~/wsgi.py
)Python venv configured within uWSGI and the user login shell
Tip
To control the uwsgi daemon, use the uwsgi-reload
and uwsgi-restart
shortcuts.
Proxy
nginx website configured as reverse proxy
select the desired backend with the Proxy Pass setting
the Proxy pass value must also include the protocol. Example:
http://127.0.0.1:8080
Tip
To use advanced features like multiple backends, create your own upstream configuration in /etc/nginx/custom/http.conf
and point proxy_pass
to it.
See Server Level nginx configuration.
Warning
If your proxy backend does point to localhost, use 127.0.0.1
or ::1
explicitly. The use of localhost
is prohibited to prevent
problems due to address family changes within the same session.
Redirect
to redirects everything to a custom target
set Target to your desired destination
by default, we send a 307 HTTP redirect code
To use your own redirect code, add the target_code
string within the
Custom JSON Website Level Configuration:
{
"target_code": "301"
}
Tip
You can use any nginx variable as target (for example $scheme://www.example.com$request_uri
), see the nginx Documentation for available variables.
Ruby
rbenv configured within foreman and the user login shell
Foreman daemon, controlled by Monit
Ruby has to listen on the
~/cnf/ruby.sock
socket, permission660
symlink your Procfile to
~/
or overwrite path or other daemon options inOPTIONS
at~/cnf/ruby-daemon
:OPTIONS="start web -f project/Procfile"
Tip
To control the Ruby daemon, use the
ruby-start
/ ruby-stop
/ ruby-restart
shortcuts.
Tip
To use a custom Ruby version, see the rbenv manual.
Application Types
We provide elaborated types for certain web applications. If your desired application is amongst them, we recommend to use them instead of a basic type.
Drupal
PHP type with PHP version 7.4
MariaDB database
application related PHP and nginx configuration (webroot
~/web
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
Magento 1
PHP type with PHP version 5.6
MariaDB database
application related PHP and nginx configuration (webroot
~/pub
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
Magento 2
PHP type with PHP version 7.2
MariaDB database
application related PHP and nginx configuration (webroot
~/pub
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
Neos
PHP type with PHP version 7.4
MariaDB database
application related PHP and nginx configuration (webroot
~/Web
)application related WAF rules (see Web Application Firewall)
FLOW_CONTEXT
environment variable set according to selected ContextFLOW_REWRITEURLS
environment variable enabled
Required Configuration
Warning
Our approach to dynamically configure PHP is not compatible with Neos by default.
As a workaround, we have to let know Neos about the environment variable
required to load the appropriate PHP settings, by defining the the
PHP_INI_SCAN_DIR
environment variable in Configuration/Settings.yaml
:
Neos:
Flow:
core:
subRequestEnvironmentVariables:
PHP_INI_SCAN_DIR: '/etc/php72/user/<username>/:/home/<username>/cnf/'
Tip
See this Neos Discuss thread for technical details.
TYPO3 v6
PHP type with PHP version 5.6
MariaDB database
application related PHP and nginx configuration
application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
TYPO3_CONTEXT
environment variable set according to selected Context
Required Configuration
Warning
As this TYPO3 version has reached its end of life already, compatibility settings are required within the application.
Due to the lack of Composer dependencies, we can no longer build the core automatically, so it must be installed manually.
DB/Connections/Default/initCommands
must be set toSET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
PHP 5.6 does not have FreeType support included
some (system) extensions like frontend do need a small adjustment (see Ticket#83414)
Core installation options TYPO3 6.2 Releases.
TYPO3 v7
PHP type with PHP version 7.2
MariaDB database
application related PHP and nginx configuration (webroot
~/web
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
latest TYPO3 7 version available in
/opt/typo3/TYPO3_7/
TYPO3_CONTEXT
environment variable set according to selected Context
Required Configuration
Warning
As this TYPO3 version has reached its end of life already, compatibility settings are required within the application.
Install Tool is not usable to install new versions from scratch (see Ticket#82023)
DB/Connections/Default/initCommands
must be set toSET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Some extensions like the frontend sysext need a small adjustment (see Ticket#83414)
TYPO3 v8
PHP type with PHP version 7.2
MariaDB database
application related PHP and nginx configuration (webroot
~/web
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
latest TYPO3 8 version available in
/opt/typo3/TYPO3_8/
TYPO3_CONTEXT
environment variable set according to selected Context
TYPO3 v9
PHP type with PHP version 7.2
MariaDB database
application related PHP and nginx configuration (webroot
~/web
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
latest TYPO3 9 version available in
/opt/typo3/TYPO3_9/
TYPO3_CONTEXT
environment variable set according to selected Context
TYPO3 v10
PHP type with PHP version 7.4
MariaDB database
application related PHP and nginx configuration (webroot
~/web
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
latest TYPO3 10 version available in
/opt/typo3/TYPO3_10/
TYPO3_CONTEXT
environment variable set according to selected Context
TYPO3 v11
PHP type with PHP version 8.0
MariaDB database
application related PHP and nginx configuration (webroot
~/public
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
latest TYPO3 11 version available in
/opt/typo3/TYPO3_11/
TYPO3_CONTEXT
environment variable set according to selected Context
Required Configuration
Warning
As this TYPO3 version was released after server generation 7 was born, you must take note of the following.
We recommend to use composer v2, for compatibility reasons available on the console with
composer2
TYPO3 v12
PHP type with PHP version 8.1
MariaDB database
application related PHP and nginx configuration (webroot
~/public
)application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
latest TYPO3 12 version available in
/opt/typo3/TYPO3_12/
TYPO3_CONTEXT
environment variable set according to selected Context
Required Configuration
Warning
As this TYPO3 version was released after server generation 7 was born, you must take note of the following.
We recommend to use composer v2, for compatibility reasons available on the console with
composer2
Wordpress
PHP type with PHP version 7.4
MariaDB database
application related PHP and nginx configuration
application related cronjobs (see Type Related Cronjobs)
application related WAF rules (see Web Application Firewall)
WP-CLI installed and available by using the
wp
commandadditional limits for
wp-login.php
andxmlrpc.php
We limit requests to wp-login.php
and xmlrpc.php
based on request per minute. The default settings are 10
request per minute for wp-login.php
and 50
for xmlrpc.php
. To adjust or disable the limits completly, you can configure them in the Custom JSON Website Level Configuration, for example as follows:
{
"wordpress_limit_login": "20",
"wordpress_limit_xmlrpc": false,
}
Tip
Please disable the built in HTTP call to wp-cron.php by setting define('DISABLE_WP_CRON', true);
. This additional call is not necessary and disabling it will lower the load on your system.