<commit_before>Software
********

If you want to install Zammad, you need the following software.

1. Ruby Programming Language
============================

Zammad requires Ruby. All required rubygems like ruby on rails are listed in the Gemfile.
The following Ruby version is supported:

* Ruby 2.4.4


2. Database Server
==================

Zammad will store all content in an RDBMS.
You can choose between the following products:

* MySQL 5.6+
* MariaDB 10.0+
* PostgreSQL 9.1+

Side note: We tend to recommend PostgreSQL. For the last 10 years we had the best experience with it.

Required configuration for MySQL/MariaDB:

* Use UTF8 encoding. utf8mb4 for example will fail.
* Set max_allowed_packet to a value larger than the default of 4 MB (64 MB+ recommended).

3. Reverse Proxy
================

In a typical web environment today, you use a reverse proxy to deliver the static content of your application.
Only the "expensive" app required HTTP requests are forwarded to the application server.

The following reverse proxies are supported:

* Nginx 1.3+
* Apache 2.2+


4. Elasticsearch
================

For excellent search performance we use Elasticsearch.
The following Elasticsearch versions are supported:

* Elasticsearch 2.4 up to 5.5 with mapper-attachments plugin
* Elasticsearch 5.6 with ingest-attachment plugin<commit_msg>mark ES plugin and MariaDB parameter as code samle<commit_after>Software
********

If you want to install Zammad, you need the following software.

1. Ruby Programming Language
============================

Zammad requires Ruby. All required rubygems like ruby on rails are listed in the Gemfile.
The following Ruby version is supported:

* Ruby 2.4.4


2. Database Server
==================

Zammad will store all content in an RDBMS.
You can choose between the following products:

* MySQL 5.6+
* MariaDB 10.0+
* PostgreSQL 9.1+

Side note: We tend to recommend PostgreSQL. For the last 10 years we had the best experience with it.

Required configuration for MySQL/MariaDB:

* Use UTF8 encoding. utf8mb4 for example will fail.
* Set ``max_allowed_packet`` to a value larger than the default of 4 MB (64 MB+ recommended).

3. Reverse Proxy
================

In a typical web environment today, you use a reverse proxy to deliver the static content of your application.
Only the "expensive" app required HTTP requests are forwarded to the application server.

The following reverse proxies are supported:

* Nginx 1.3+
* Apache 2.2+


4. Elasticsearch
================

For excellent search performance we use Elasticsearch.
The following Elasticsearch versions are supported:

* Elasticsearch 2.4 up to 5.5 with ``mapper-attachments`` plugin
* Elasticsearch 5.6 with ``ingest-attachment`` plugin
{'fraction_non_alphanumeric': 0.11074681238615665, 'fraction_numerical': 0.02331511839708561, 'mean_word_length': 4.525150905432596, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1431755', 'n_tokens_mistral': 775, 'n_tokens_neox': 718, 'n_words': 371}