Installing Gentics CMS

This page described what steps are needed to install Gentics CMS.

1 Pre Requirements

  • System Requirements
  • All commands have to be executed using the root user.
  • Make sure the locale en_US.UTF-8 is generated
  • Make sure your timezone is correctly set (eg. to CET)
  • Make sure Java 17 is installed on the system. Installation commands differ depending on the operating system (see the compatibility list for details on supported operating systems).

1.1 Download the package

Download the Gentics CMS JAR from our Maven repository:

  1. OSS version: https://repo.gentics.com/service/rest/repository/browse/maven/com/gentics/cms-oss/cms-oss-server/
  2. Enterprise version: https://repo.gentics.com/service/rest/repository/browse/maven/com/gentics/cms/cms-server/

Access to the repository for the Enterprise version requires credentials. Please contact your account manager for details.

Save the JAR file under /cms.

1.2 Create service

1.2.1 Create node user

Concrete commands may vary depending on the operating system, but the following examples should work on most Linux based operating systems. The examples assume that they are executed as the root user. When executed with another user prefixing all commands with sudo might be necessary.

  1. Create group for node user: groupadd node
  2. Create node user, add to node group and assign home directory /cms: useradd -m -d /cms -g node node
  3. (Optional) Set password for node user: passwd node

Create the systemd service file:

/cms/cms.service

[Unit]
Description=Gentics CMS
Wants=basic.target
After=basic.target network.target syslog.target

[Service]
User=node
Restart=on-failure
# Replace "YOUR_LICENSE_KEY" in the following line with your actual license key.
Environment="LICENSEKEY=YOUR_LICENSE_KEY"
# Only one of the two following lines may be uncommented. This example assumes that the enterprise version is used, adapt the following two lines if the OSS version should be used instead.
# ExecStart=java -Duser.dir=/cms -Dcom.gentics.contentnode.config.files=cms -cp cms-oss-server.jar com.gentics.contentnode.server.Runner
ExecStart=java -Duser.dir=/cms -Dcom.gentics.contentnode.config.files=cms -cp cms-server.jar com.gentics.contentnode.server.Runner
WorkingDirectory=/cms
LimitMEMLOCK=infinity
LimitNOFILE=65536
LimitAS=infinity
LimitRSS=infinity
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

The license key can alternatively also be set by storing the key in /cms/keys/license.key.

Create the configuration .yml files under /cms/conf/cms and activate the service with

1.2.2 Database configuration

The configuration for the database access should be put in /cms/conf/cms/db.yml:

/cms/conf/cms/db.yml

db:
  settings:
    user: "node_cms"
    password: "PASSWORD_FOR_USER node_cms"
    # The following setting are only necessary if the database server is not running on the same host as the CMS.
    host: "DATABASE_HOST"

Make sure that the DB configuration file is only readable by the node user.

Alternatively the database configuration can also be set via environment variables. See Environment variables for details.


# systemctl enable /cms/cms.service

1.3 Database server

Please install a compatible MySQL Server on your system. We suggest a installation of MariaDB on the same server that will host Gentics CMS.

The following mysql permissions are needed.


  mysql> GRANT usage ON *.* to node_cms@HOSTNAME;
  mysql> GRANT super ON *.* to node_cms@HOSTNAME;
  mysql> GRANT all ON node_utf8.* to node_cms@HOSTNAME;
  mysql> GRANT all ON node_utf8_cr.* to node_cms@HOSTNAME;
  mysql> GRANT all ON node_utf8_todo.* to node_cms@HOSTNAME;

The following mysql custom settings are mandatory. (MariaDB / MySQL 5.7)


[mysqld]
  innodb_flush_log_at_trx_commit = 2
  character-set-server           = utf8mb4
  character_set_client           = utf8
  character-set-filesystem       = utf8

  sql_mode                       = ""
  innodb                         = FORCE
  default-storage-engine         = InnoDB
  max_allowed_packet             = 256M
  collation_server               = utf8_general_ci

[client]
  default-character-set          = utf8

2 Reverse proxy configuration

Once started the CMS is reachable under http://localhost:8080. To make it reachable under a certain domain, the web server (e.g. Apache or Nginx) must be configured to use a reverse proxy to forward requests for the CMS to localhost:8080.

3 Migration

See the migration guide for information about migrating from CMP 7.x to CMP 8.×.

3.1 Final recommendations and suggestions

It is mandatory to adjust the memory settings for your installation. Not doing so can lead to performance issues.

It’s considered best practice to use hyphens (-) instead of underscores (_) in URL’s. For new installations you should add these settings to your configuration.

3.2 Resetting the database

The database of the Gentics CMS can by reset anytime by dropping & recreating the database:


mysql> DROP database node_utf8;
mysql> CREATE database node_utf8;

The database structure will be recreated during the next startup of Gentics CMS.