# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2019–2026 Rother OSS GmbH, https://otobo.io
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-17 11:26+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: ../content/backup-restore.rst:2
msgid "Backup and Restore"
msgstr ""

#: ../content/backup-restore.rst:4
msgid "OTOBO has built in scripts for backup and restore ``scripts/backup.pl`` and ``scripts/restore.pl``. Execute the scripts with the option ``-h`` for more information."
msgstr ""

#: ../content/backup-restore.rst:8
msgid "Backup"
msgstr ""

#: ../content/backup-restore.rst:9
msgid "In order to backup the OTOBO system, the script ``scripts/backup.pl`` can be used. The script creates a backup of the OTOBO system in the specified directory."
msgstr ""

#: ../content/backup-restore.rst:14
msgid "To create a new backup, write permission for the destination directory is needed for the user ``otobo``."
msgstr ""

#: ../content/backup-restore.rst:20
#: ../content/backup-restore.rst:128
msgid "The output of the script:"
msgstr ""

#: ../content/backup-restore.rst:64
msgid "``--extra-dump-options=\"--single-transaction\"`` prevents the database tables from being locked, so OTOBO may still be used during backup archive creation."
msgstr ""

#: ../content/backup-restore.rst:67
#: ../content/backup-restore.rst:152
msgid "Docker"
msgstr ""

#: ../content/backup-restore.rst:69
msgid "The same scripts might be used when OTOBO is running under Docker, but some Docker specific limitations have to be considered. In order to be able to write a backup archive to the file system outside of the Docker container, appropriate volume mounts and permissions must be configured."
msgstr ""

#: ../content/backup-restore.rst:87
msgid "We use an ephemeral container of OTOBO to pull the backup and place it in the backup directory on the host:"
msgstr ""

#: ../content/backup-restore.rst:97
msgid "The parameters used, assume the defaults presented throughout this manual. You may need to fit them to your setup, e.g., if you use a different network name or a different image tag."
msgstr ""

#: ../content/backup-restore.rst:101
msgid "Restore"
msgstr ""

#: ../content/backup-restore.rst:103
msgid "To restore the OTOBO system from backup, the script ``scripts/restore.pl`` can be used. For the script to be able to place the data into the database, the database name, name, and password have to be setup like the backed up system. The restore script, restores the configuration files from the backup archive first, and then uses the restored configuration files to connect to the database and restore the data. You may read them from backup to fit your database setup:"
msgstr ""

#: ../content/backup-restore.rst:112
msgid "You may also fit the database connection parameters within the backup file before running the restore script:"
msgstr ""

#: ../content/backup-restore.rst:120
msgid "To restore the database make sure the target database contains no tables."
msgstr ""

#: ../content/backup-restore.rst:122
msgid "You may execute the restore script with the option ``-h`` for more information."
msgstr ""

#: ../content/backup-restore.rst:143
msgid "After successful restore it is advised to clear the OTOBO cache. To do this execute the following command:"
msgstr ""

#: ../content/backup-restore.rst:153
msgid "To drop an existing OTOBO database and create a new one you can use the following commands. First, you have to connect to the MariaDB command line interface of the ``db`` container:"
msgstr ""

#: ../content/backup-restore.rst:161
msgid "Enter the database root password when prompted. As soon as you are connected to the MySQL server, you can drop and recreate the ``otobo`` database:"
msgstr ""

#: ../content/backup-restore.rst:170
msgid "For restoring the backup we also need to specify which backup should be restored. The placeholder ``<TIMESTAMP>`` is something like ``2020-09-07_09-38``."
msgstr ""

#: ../content/backup-restore.rst:183
msgid "After successful restore it is advised to clear the OTOBO cache. To do this change to your OTOBO directory (by default ``/opt/otobo-docker``) and execute the following command:"
msgstr ""

#: ../content/customer-interface-ci.rst:2
msgid "Adapt Customer Interface with Corporate Identity"
msgstr ""

#: ../content/customer-interface-ci.rst:4
msgid "In OTOBO it is very easy to adapt the customer area to your own corporate identity. Follow this tutorial step by step and OTOBO will shine in your own design in a short time."
msgstr ""

#: ../content/customer-interface-ci.rst:10
msgid "Currently, it is not so easy to adapt the agent area to one's own CI. Changes in the OTOBO ``.css`` files would be necessary here. One exception is the logo on the agent login page and the agent header. The logos can be easily exchanged by copying the logos to the server and then adjusting the options ``AgentLoginLogo`` and ``AgentLogo`` under ``Admin -> System Configuration``."
msgstr ""

#: ../content/customer-interface-ci.rst:17
msgid "Change Colors in Customer Area"
msgstr ""

#: ../content/customer-interface-ci.rst:19
msgid "To change the colors for the OTOBO customer interface, please go to ``Admin -> System Configuration`` and change the following settings:"
msgstr ""

#: ../content/customer-interface-ci.rst:21
msgid "``CustomerColorDefinitions``"
msgstr ""

#: ../content/customer-interface-ci.rst:22
#: ../content/customer-interface-ci.rst:98
msgid "To change the colors on the Customer Dashboard, please go to ``Admin -> System Configuration`` and search for ``CustomerDashboard``. In the search result you will find all the options you need with color definitions."
msgstr ""

#: ../content/customer-interface-ci.rst:27
msgid "Change Logos and Pictures"
msgstr ""

#: ../content/customer-interface-ci.rst:29
msgid "In the first step please copy your Logos and Pictures to the OTOBO Server. Please use an SCP client (e.g., WinSCP) for this purpose. Often you do not have the permissions to copy the logos to the right place. In this case, it is best to use the folder ``/tmp``."
msgstr ""

#: ../content/customer-interface-ci.rst:34
msgid "In the next step copy the logo into the OTOBO home directory:"
msgstr ""

#: ../content/customer-interface-ci.rst:45
msgid "The next sections describe the changes required in the OTOBO Agent Interface."
msgstr ""

#: ../content/customer-interface-ci.rst:49
msgid "Change Customer Login Pictures and Text"
msgstr ""

#: ../content/customer-interface-ci.rst:51
msgid "Navigate to ``Admin -> System Configuration`` and change the following settings."
msgstr ""

#: ../content/customer-interface-ci.rst:-1
msgid "Customer Login Configuration"
msgstr ""

#: ../content/customer-interface-ci.rst:56
msgid "1 and 2 - System Configuration option ``CustomerLogin::Settings``"
msgstr ""

#: ../content/customer-interface-ci.rst:58
msgid "**Remove Opacity and Watermark**"
msgstr ""

#: ../content/customer-interface-ci.rst:61
msgid "At the moment it is not possible to remove the overlay and watermark used in the image on the right by system configuration."
msgstr ""

#: ../content/customer-interface-ci.rst:63
msgid "To remove the opacity, please adjust the option ``#oooLoginBG > .oooBG`` in the file ``var/httpd/htdocs/skins/Customer/default/css/Core.Login.css``:"
msgstr ""

#: ../content/customer-interface-ci.rst:76
msgid "To remove the watermark, please remove the following line inside the file ``Kernel/Output/HTML/Templates/Standard/CustomerLogin.tt``:"
msgstr ""

#: ../content/customer-interface-ci.rst:92
msgid "Please add the files to a OPM package in the next step, so that the changes remain persistent. You can find instructions on how to do this in our Admin Manual: https://doc.otobo.org/manual/developer/11.0/en/content/how-to-publish-otobo-extensions.html"
msgstr ""

#: ../content/customer-interface-ci.rst:96
msgid "Change Customer Dashboard Tiles and Options"
msgstr ""

#: ../content/customer-interface-ci.rst:-1
msgid "Customer Dashboard Configuration"
msgstr ""

#: ../content/customer-interface-ci.rst:104
msgid "1 - To change the picture, link and text please use the System Configuration option ``CustomerDashboard::Tiles###FeaturedLink-01``"
msgstr ""

#: ../content/customer-interface-ci.rst:105
msgid "2 - To change the toplevel text please use the System Configuration option ``CustomerDashboard::Configuration::Text``"
msgstr ""

#: ../content/customer-interface-ci.rst:109
msgid "Please disable the configuration options from not needed tiles."
msgstr ""

#: ../content/history.rst:3
msgid "Documentation History"
msgstr ""

#: ../content/history.rst:5
msgid "2019 - OTRS Installation Guide - OTRS AG (https://otrs.com)"
msgstr ""

#: ../content/history.rst:6
msgid "2020 - OTOBO Installation Tutorial - Rother OSS GmbH (https://otobo.de)"
msgstr ""

#: ../content/history.rst:8
msgid "Published by: Rother OSS GmbH, (https://otobo.de), Oberwalting 31, 94339 Leiblfing, Germany. Authors: OTRS AG (original version), Rother OSS GmbH (https://otobo.de)"
msgstr ""

#: ../content/history.rst:11
msgid "Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found on the `GNU website <https://www.gnu.org/licenses/fdl-1.3.txt>`__."
msgstr ""

#: ../content/index.rst:19
#: ../content/installation.rst:9
msgid "Contents"
msgstr ""

#: ../content/index.rst:7
msgid "OTOBO Installation Tutorial"
msgstr ""

#: ../content/index.rst:9
msgid "This is the OTOBO Administration Manual. It provides detailed instructions and guidance for installing, configuring, and maintaining the OTOBO ticketing system."
msgstr ""

#: ../content/index.rst:13
msgid "This documentation is for the **11.1 beta** version of OTOBO. It may contain incomplete or inaccurate information, and some features may not be fully functional. Please use this documentation with caution and report any issues to the OTOBO development team. You may find the **documentation for the latest stable release** at https://doc.otobo.org/manual/installation/11.0/en/content/index.html."
msgstr ""

#: ../content/index.rst:39
msgid "License"
msgstr ""

#: ../content/index.rst:41
msgid "This work is copyrighted by OTRS AG (https://otrs.com), Zimmersmühlenweg 11, 61440 Oberursel, Germany."
msgstr ""

#: ../content/index.rst:44
msgid "Copyright © for modifications and amendments 2019-2022 ROTHER OSS GmbH (https://otobo.io), Oberwalting 31, 94339 Leiblfing, Germany"
msgstr ""

#: ../content/index.rst:47
msgid "Terms and Conditions OTRS: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found on the GNU website."
msgstr ""

#: ../content/index.rst:54
msgid "Terms and Conditions Rother OSS: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \"COPYING\"."
msgstr ""

#: ../content/index.rst:61
msgid "Published by: Rother OSS GmbH, (https://otobo.io), Oberwalting 31, 94339 Leiblfing, Germany."
msgstr ""

#: ../content/index.rst:64
msgid "Authors: OTRS AG (original version), Rother OSS GmbH (https://otobo.io)."
msgstr ""

#: ../content/installation.rst:2
msgid "OTOBO Installation"
msgstr ""

#: ../content/installation.rst:4
msgid "This chapter describes the installation and basic configuration of the central OTOBO framework. Currently, the recommended installation method is using Docker and Docker Compose. However, it is also possible to install OTOBO manually on a standard Linux server directly. Please refer to any subsection for your preferred installation method."
msgstr ""

#: ../content/installation/installation-docker.rst:2
msgid "OTOBO Installation Docker"
msgstr ""

#: ../content/installation/installation-docker.rst:4
msgid "With the dockerized OTOBO deployment you can get your personal OTOBO instance up and running within minutes. All of OTOBO's dependencies are already included in the provided collection of Docker images:"
msgstr ""

#: ../content/installation/installation-docker.rst:7
msgid "``db``: MariaDB is set up as the default database."
msgstr ""

#: ../content/installation/installation-docker.rst:8
msgid "``elastic``: Elasticsearch is set up for the OTOBO power search."
msgstr ""

#: ../content/installation/installation-docker.rst:9
msgid "``redis``: Redis is enabled for fast caching."
msgstr ""

#: ../content/installation/installation-docker.rst:10
msgid "``web``: Gazelle is used as fast Perl webserver."
msgstr ""

#: ../content/installation/installation-docker.rst:11
msgid "``nginx``: Nginx is used as optional reverse proxy for HTTPS support."
msgstr ""

#: ../content/installation/installation-docker.rst:13
msgid "We think that this setup is the perfect environment for an OTOBO installation."
msgstr ""

#: ../content/installation/installation-docker.rst:16
msgid "Requirements"
msgstr ""

#: ../content/installation/installation-docker.rst:18
msgid "The minimal versions of required software, that have been tested, are listed here:"
msgstr ""

#: ../content/installation/installation-docker.rst:20
msgid "Docker 19.03.13"
msgstr ""

#: ../content/installation/installation-docker.rst:21
msgid "Docker Compose v2"
msgstr ""

#: ../content/installation/installation-docker.rst:22
msgid "Git 2.17.1"
msgstr ""

#: ../content/installation/installation-docker.rst:25
msgid "For Ubuntu 24.04 LTS these commands install the required packages:"
msgstr ""

#: ../content/installation/installation-docker.rst:34
msgid "Installation"
msgstr ""

#: ../content/installation/installation-docker.rst:36
msgid "The following instructions assume that all requirements are met and you have a working Docker environment. We assume a user for with the required permissions for running Docker commands. If no dedicated user is setup, use ``sudo``."
msgstr ""

#: ../content/installation/installation-docker.rst:41
msgid "1. Clone the otobo-docker Repository"
msgstr ""

#: ../content/installation/installation-docker.rst:43
msgid "The Docker images will eventually be fetched from the repository https://hub.docker.com. But there are some setup and command files that need to be cloned from the ``otobo-docker`` Github repository. Make sure that you specify the tag that corresponds to the current patch level version of OTOBO. For example, when *OTOBO 11.0.2* is the current version then please use the tag ``rel-11_0_2``."
msgstr ""

#: ../content/installation/installation-docker.rst:50
msgid "For these instructions we chose ``/opt/otobo-docker`` as the working dir. You may choose this path freely, but may have to adjust commands in this manual accordingly."
msgstr ""

#: ../content/installation/installation-docker.rst:62
msgid "2. Create an Initial ``.env`` File"
msgstr ""

#: ../content/installation/installation-docker.rst:64
msgid "The Docker Compose configuration file ``.env`` is your primary interface for managing your installation of OTOBO. This file must first be created and then be adapted by yourself. In order to simplify the task, several example files are provided that may be used as starting point. Which sample file it the best fit depends on your use case. In most cases the decision is between ``.docker_compose_env_http`` and ``.docker_compose_env_https``, depending on whether TLS must be supported or not. The other files are for more specialized use cases."
msgstr ""

#: ../content/installation/installation-docker.rst:72
msgid "``.docker_compose_env_http``"
msgstr ""

#: ../content/installation/installation-docker.rst:72
msgid "The OTOBO web app provides HTTP."
msgstr ""

#: ../content/installation/installation-docker.rst:75
msgid "``.docker_compose_env_https``"
msgstr ""

#: ../content/installation/installation-docker.rst:75
msgid "The OTOBO web app provides HTTPS by running Nginx as a reverse proxy webserver."
msgstr ""

#: ../content/installation/installation-docker.rst:78
msgid "``.docker_compose_env_https_custom_nginx``"
msgstr ""

#: ../content/installation/installation-docker.rst:78
msgid "Like ``*.docker_compose_env_https`` but with support for a custom Nginx configuration."
msgstr ""

#: ../content/installation/installation-docker.rst:82
msgid "``.docker_compose_env_https_kerberos``"
msgstr ""

#: ../content/installation/installation-docker.rst:81
msgid "Like ``.docker_compose_env_https`` but with sample setup for single sign on. Note that Kerberos support is still **experimental**."
msgstr ""

#: ../content/installation/installation-docker.rst:85
msgid "``.docker_compose_env_http_selenium`` and ``.docker_compose_env_https_selenium``"
msgstr ""

#: ../content/installation/installation-docker.rst:85
msgid "These are used only for development when Selenium testing is activated."
msgstr ""

#: ../content/installation/installation-docker.rst:89
msgid "Use ``ls -a`` for listing the hidden sample files."
msgstr ""

#: ../content/installation/installation-docker.rst:91
msgid "By default OTOBO is served on the standard ports, ``443`` for HTTPS and ``80`` for HTTP. When HTTPS is activated then the OTOBO web application actually still runs with HTTP. HTTPS support is achieved by an additional reverse proxy, which is implemented as a Nginx service."
msgstr ""

#: ../content/installation/installation-docker.rst:95
msgid "For the following commands we assume that HTTPS should be supported."
msgstr ""

#: ../content/installation/installation-docker.rst:103
msgid "3. Configure the Password for the Database Admin User"
msgstr ""

#: ../content/installation/installation-docker.rst:105
msgid "Change the following setting inside your ``.env`` file:"
msgstr ""

#: ../content/installation/installation-docker.rst:111
msgid "The password for the database admin user may be chosen freely. The database admin user is needed to create the database user ``otobo`` and the database schema ``otobo``. OTOBO will actually use the dedicated database user ``otobo``."
msgstr ""

#: ../content/installation/installation-docker.rst:116
msgid "4. Set up a Volume with SSL Configuration for the Nginx Webproxy (optional)"
msgstr ""

#: ../content/installation/installation-docker.rst:118
msgid "This step may be skipped when OTOBO should be available only via HTTP. Nginx needs for SSL encryption a certificate and a private key."
msgstr ""

#: ../content/installation/installation-docker.rst:123
msgid "To specify a CA chain with a certificate in Nginx, it is necessary to copy the CA chain file with the actual certificate into a file."
msgstr ""

#: ../content/installation/installation-docker.rst:125
msgid "The certificate and the private key are stored in a volume, so that they can be used by Nginx later on. In any case the volume needs to be generated manually, and we need to copy the certificate and key to the volume:"
msgstr ""

#: ../content/installation/installation-docker.rst:135
msgid "The names of the copied files need to be set in our newly created ``.env`` file, e.g., ``OTOBO_NGINX_SSL_CERTIFICATE=/etc/nginx/ssl/ssl-cert.crt`` and ``OTOBO_NGINX_SSL_CERTIFICATE_KEY=/etc/nginx/ssl/ssl-key.key`` Please adapt only the name of the files as the path ``/etc/nginx/ssl/`` is hard coded in the Docker image."
msgstr ""

#: ../content/installation/installation-docker.rst:139
msgid "5. Start the Docker Containers with Docker Compose"
msgstr ""

#: ../content/installation/installation-docker.rst:141
msgid "Now we start the Docker containers using ``docker compose``. By default the Docker images will be fetched from https://hub.docker.com/u/rotheross."
msgstr ""

#: ../content/installation/installation-docker.rst:148
msgid "To verify that the six required services (five in the case of HTTP only) are actually running, type:"
msgstr ""

#: ../content/installation/installation-docker.rst:156
msgid "6. Install and Start OTOBO"
msgstr ""

#: ../content/installation/installation-docker.rst:158
msgid "Run the OTOBO installer at http://yourIPorFQDN/otobo/installer.pl."
msgstr ""

#: ../content/installation/installation-docker.rst:162
msgid "Please configure OTOBO inside the installer with a new MySQL database. As MySQL database root password please use the password you configured in the variable ``OTOBO_DB_ROOT_PASSWORD`` of your ``.env`` file. Please leave the value ``db`` for the MySQL hostname untouched."
msgstr ""

#: ../content/installation/installation-docker.rst:166
msgid "**Have fun with OTOBO!**"
msgstr ""

#: ../content/installation/installation-docker.rst:170
msgid "To change to the OTOBO directory, inside the running container, to work on command line as usual, you can use the following Docker command: ``docker compose exec web bash``."
msgstr ""

#: ../content/installation/installation-docker.rst:174
msgid "Additional Technical Information"
msgstr ""

#: ../content/installation/installation-docker.rst:176
msgid "This section gives some more technical insight into what is happening under the hood."
msgstr ""

#: ../content/installation/installation-docker.rst:179
msgid "List of Docker Containers"
msgstr ""

#: ../content/installation/installation-docker.rst:182
msgid "Container ``otobo-web-1``"
msgstr ""

#: ../content/installation/installation-docker.rst:182
msgid "OTOBO webserver on internal port 5000."
msgstr ""

#: ../content/installation/installation-docker.rst:186
msgid "Container ``otobo-daemon-1``"
msgstr ""

#: ../content/installation/installation-docker.rst:185
msgid "OTOBO daemon. The OTOBO daemon is started and periodically checked."
msgstr ""

#: ../content/installation/installation-docker.rst:189
msgid "Container ``otobo-db-1``"
msgstr ""

#: ../content/installation/installation-docker.rst:189
msgid "Run the database MariaDB on internal port 3306."
msgstr ""

#: ../content/installation/installation-docker.rst:192
msgid "Container ``otobo-elastic-1``"
msgstr ""

#: ../content/installation/installation-docker.rst:192
msgid "Elasticsearch on the internal ports 9200 and 9300."
msgstr ""

#: ../content/installation/installation-docker.rst:195
msgid "Container ``otobo-redis-1``"
msgstr ""

#: ../content/installation/installation-docker.rst:195
msgid "Run Redis as caching service."
msgstr ""

#: ../content/installation/installation-docker.rst:198
msgid "Optional container ``otobo-nginx-1``"
msgstr ""

#: ../content/installation/installation-docker.rst:198
msgid "Run nginx as reverse proxy for providing HTTPS support."
msgstr ""

#: ../content/installation/installation-docker.rst:201
msgid "Overview over the Docker Volumes"
msgstr ""

#: ../content/installation/installation-docker.rst:203
msgid "The Docker volumes are created on the host for persistent data. These allow starting and stopping the services without losing data. Keep in mind that containers are temporary and only data in the volumes is permanent."
msgstr ""

#: ../content/installation/installation-docker.rst:208
msgid "``otobo_opt_otobo``"
msgstr ""

#: ../content/installation/installation-docker.rst:208
msgid "contains ``/opt/otobo`` in the container ``web`` and ``daemon``."
msgstr ""

#: ../content/installation/installation-docker.rst:211
msgid "``otobo_mariadb_data``"
msgstr ""

#: ../content/installation/installation-docker.rst:211
msgid "contains ``/var/lib/mysql`` in the container ``db``."
msgstr ""

#: ../content/installation/installation-docker.rst:214
msgid "``otobo_elasticsearch_data``"
msgstr ""

#: ../content/installation/installation-docker.rst:214
msgid "contains ``/usr/share/elasticsearch/data`` in the container ``elastic``."
msgstr ""

#: ../content/installation/installation-docker.rst:217
msgid "``otobo_redis_data``"
msgstr ""

#: ../content/installation/installation-docker.rst:217
msgid "contains data for the container ``redis``."
msgstr ""

#: ../content/installation/installation-docker.rst:220
msgid "``otobo_nginx_ssl``"
msgstr ""

#: ../content/installation/installation-docker.rst:220
msgid "contains the TLS files, certificate and private key, must be initialized manually."
msgstr ""

#: ../content/installation/installation-docker.rst:223
msgid "Docker Environment Variables"
msgstr ""

#: ../content/installation/installation-docker.rst:225
msgid "In the instructions we did only minimal configuration. But the file ``.env`` allows to set more variables. Here is a short list of the most important environment variables. Note that more environment variables are supported by the base images."
msgstr ""

#: ../content/installation/installation-docker.rst:230
msgid "**MariaDB settings**"
msgstr ""

#: ../content/installation/installation-docker.rst:234
msgid "``OTOBO_DB_ROOT_PASSWORD``"
msgstr ""

#: ../content/installation/installation-docker.rst:233
msgid "The root password for MariaDB. This setting is required for running the service ``db``."
msgstr ""

#: ../content/installation/installation-docker.rst:236
msgid "**Elasticsearch settings**"
msgstr ""

#: ../content/installation/installation-docker.rst:238
msgid "Elasticsearch needs some settings for productive environments. Please read https://www.elastic.co/guide/en/elasticsearch/reference/7.8/docker.html#docker-prod-prerequisites for detailed information."
msgstr ""

#: ../content/installation/installation-docker.rst:244
msgid "``OTOBO_Elasticsearch_ES_JAVA_OPTS``"
msgstr ""

#: ../content/installation/installation-docker.rst:242
msgid "Example setting: ``TOBO_Elasticsearch_ES_JAVA_OPTS=-Xms512m -Xmx512m`` Please adjust this value for production environments to a value up to 4g."
msgstr ""

#: ../content/installation/installation-docker.rst:246
msgid "**Webserver settings**"
msgstr ""

#: ../content/installation/installation-docker.rst:250
#: ../content/installation/installation-docker.rst:258
msgid "``OTOBO_WEB_HTTP_PORT``"
msgstr ""

#: ../content/installation/installation-docker.rst:249
msgid "Set in case the HTTP port should deviate from the standard port 80. When HTTPS is enabled, the HTTP port will redirect to HTTPS."
msgstr ""

#: ../content/installation/installation-docker.rst:252
msgid "**Nginx webproxy settings**"
msgstr ""

#: ../content/installation/installation-docker.rst:254
msgid "These setting are used when HTTPS is enabled."
msgstr ""

#: ../content/installation/installation-docker.rst:257
msgid "Set in case the HTTP port should deviate from the standard port 80. Will redirect to HTTPS."
msgstr ""

#: ../content/installation/installation-docker.rst:261
msgid "``OTOBO_WEB_HTTPS_PORT``"
msgstr ""

#: ../content/installation/installation-docker.rst:261
msgid "Set in case the HTTPS port should deviate from the standard port 443."
msgstr ""

#: ../content/installation/installation-docker.rst:265
#: ../content/installation/installation-docker.rst:343
msgid "``OTOBO_NGINX_SSL_CERTIFICATE``"
msgstr ""

#: ../content/installation/installation-docker.rst:264
msgid "SSL cert for the nginx webproxy. Example: ``OTOBO_NGINX_SSL_CERTIFICATE=/etc/nginx/ssl/acme.crt``"
msgstr ""

#: ../content/installation/installation-docker.rst:269
#: ../content/installation/installation-docker.rst:346
msgid "``OTOBO_NGINX_SSL_CERTIFICATE_KEY``"
msgstr ""

#: ../content/installation/installation-docker.rst:268
msgid "SSL key for the nginx webproxy. Example: ``OTOBO_NGINX_SSL_CERTIFICATE_KEY=/etc/nginx/ssl/acme.key``"
msgstr ""

#: ../content/installation/installation-docker.rst:271
msgid "**Nginx webproxy settings for Kerberos**"
msgstr ""

#: ../content/installation/installation-docker.rst:273
msgid "This settings are used by Nginx when Kerberos is used for single sign on."
msgstr ""

#: ../content/installation/installation-docker.rst:277
msgid "``OTOBO_NGINX_KERBEROS_KEYTAB``"
msgstr ""

#: ../content/installation/installation-docker.rst:276
msgid "Kerberos keytab file. The default is ``/etc/krb5.keytab``."
msgstr ""

#: ../content/installation/installation-docker.rst:281
msgid "``OTOBO_NGINX_KERBEROS_CONFIG``"
msgstr ""

#: ../content/installation/installation-docker.rst:280
msgid "Kerberos config file. The default is ``/etc/krb5.conf``, usually generated from ``krb5.conf.template``."
msgstr ""

#: ../content/installation/installation-docker.rst:285
msgid "``OTOBO_NGINX_KERBEROS_SERVICE_NAME``"
msgstr ""

#: ../content/installation/installation-docker.rst:284
msgid "Kerberos Service Name. It is not clear where this setting is actually used anywhere."
msgstr ""

#: ../content/installation/installation-docker.rst:289
msgid "``OTOBO_NGINX_KERBEROS_REALM``"
msgstr ""

#: ../content/installation/installation-docker.rst:288
msgid "Kerberos REALM. Used in ``/etc/krb5.conf``."
msgstr ""

#: ../content/installation/installation-docker.rst:293
msgid "``OTOBO_NGINX_KERBEROS_KDC``"
msgstr ""

#: ../content/installation/installation-docker.rst:292
msgid "Kerberos kdc / AD Controller. Used in ``/etc/krb5.conf``."
msgstr ""

#: ../content/installation/installation-docker.rst:297
msgid "``OTOBO_NGINX_KERBEROS_ADMIN_SERVER``"
msgstr ""

#: ../content/installation/installation-docker.rst:296
msgid "Kerberos Admin Server. Used in ``/etc/krb5.conf``."
msgstr ""

#: ../content/installation/installation-docker.rst:301
msgid "``OTOBO_NGINX_KERBEROS_DEFAULT_DOMAIN``"
msgstr ""

#: ../content/installation/installation-docker.rst:300
msgid "Kerberos Default Domain. Used in ``/etc/krb5.conf``."
msgstr ""

#: ../content/installation/installation-docker.rst:305
msgid "``NGINX_ENVSUBST_TEMPLATE_DIR``"
msgstr ""

#: ../content/installation/installation-docker.rst:304
msgid "Provide a custom Nginx config template dir. Gives extra flexibility."
msgstr ""

#: ../content/installation/installation-docker.rst:307
msgid "**Docker Compose settings**"
msgstr ""

#: ../content/installation/installation-docker.rst:309
msgid "These settings are used by Docker Compose directly."
msgstr ""

#: ../content/installation/installation-docker.rst:314
msgid "``COMPOSE_PROJECT_NAME``"
msgstr ""

#: ../content/installation/installation-docker.rst:312
msgid "The project name is used as the prefix for the volumes and containers. By default this prefix is set to ``otobo``, resulting in container names like ``otobo-web-1`` and ``otobo-db-1``. Change this name when you want to run more then one instance of OTOBO on the same server."
msgstr ""

#: ../content/installation/installation-docker.rst:317
msgid "``COMPOSE_PATH_SEPARATOR``"
msgstr ""

#: ../content/installation/installation-docker.rst:317
msgid "Separator for the value of ``COMPOSE_FILE``"
msgstr ""

#: ../content/installation/installation-docker.rst:321
msgid "``COMPOSE_FILE``"
msgstr ""

#: ../content/installation/installation-docker.rst:320
msgid "Use ``docker-compose/otobo-base.yml`` as the base and add the wanted extension files. E.g., ``docker-compose/otobo-override-http.yml`` or ``docker-compose/otobo-override-https.yml``."
msgstr ""

#: ../content/installation/installation-docker.rst:325
msgid "``OTOBO_IMAGE_OTOBO``, ``OTOBO_IMAGE_OTOBO_ELASTICSEARCH``, ``OTOBO_IMAGE_OTOBO_NGINX``, ..."
msgstr ""

#: ../content/installation/installation-docker.rst:324
msgid "Used for specifying alternative Docker images. Useful for testing local builds or for using updated versions of the images."
msgstr ""

#: ../content/installation/installation-docker.rst:328
msgid "Advanced Topics"
msgstr ""

#: ../content/installation/installation-docker.rst:331
msgid "Custom Configuration of the Nginx Webproxy"
msgstr ""

#: ../content/installation/installation-docker.rst:333
msgid "The container ``otobo-nginx-1`` provides HTTPS support by running Nginx as a reverse proxy. The Docker image that runs in the container is composed of the official Nginx Docker image, https://hub.docker.com/_/nginx, along with a OTOBO specific configuration of Nginx."
msgstr ""

#: ../content/installation/installation-docker.rst:336
msgid "The default OTOBO specific configuration can be found within the Docker image at ``/etc/nginx/template/otobo_nginx.conf.template``. Actually, this is only a template for the final configuration. There is a process, provided by the Nginx base image, that replaces the macros in the template with the corresponding environment variable. This process runs when the container starts up. In the default template file, the following macros are used:"
msgstr ""

#: ../content/installation/installation-docker.rst:343
#: ../content/installation/installation-docker.rst:346
msgid "For configuring SSL."
msgstr ""

#: ../content/installation/installation-docker.rst:349
msgid "``OTOBO_NGINX_WEB_HOST``"
msgstr ""

#: ../content/installation/installation-docker.rst:349
msgid "The internally used HTTP host."
msgstr ""

#: ../content/installation/installation-docker.rst:352
msgid "``OTOBO_NGINX_WEB_PORT``"
msgstr ""

#: ../content/installation/installation-docker.rst:352
msgid "The internally used HTTP port."
msgstr ""

#: ../content/installation/installation-docker.rst:354
msgid "See step `4.` for how this configuration possibility was used for setting up the SSL certificate."
msgstr ""

#: ../content/installation/installation-docker.rst:356
msgid "When the standard macros are not sufficient, then the customization can go further. This can be achieved by replacing the default config template with a customized version. It is best practice to not simple change the configuration in the running container. Instead we first create a persistent volume that contains the custom config. Then we tell the ``otobo-nginx-1`` to mount the new volume and to use the customized configuration."
msgstr ""

#: ../content/installation/installation-docker.rst:362
msgid "First comes generation of the new volume. In these sample commands, we use the existing template as a starting point."
msgstr ""

#: ../content/installation/installation-docker.rst:388
msgid "After setting up the volume, the adapted configuration must be activated. The new volume is set up in ``docker-compose/otobo-nginx-custom-config.yml``. Therefore, this file must be added to ``COMPOSE_FILE``. Then Nginx must be directed to use the new configuration. This is done by setting ``NGINX_ENVSUBST_TEMPLATE_DIR`` in the environment. In order to achieve this, uncomment or add the following lines in your ``.env`` file:"
msgstr ""

#: ../content/installation/installation-docker.rst:400
msgid "The changed Docker Compose configuration can be inspected with:"
msgstr ""

#: ../content/installation/installation-docker.rst:406
msgid "Finally, the containers can be started again:"
msgstr ""

#: ../content/installation/installation-docker.rst:412
msgid "See also the section \"Using environment variables in Nginx configuration (new in 1.19)\" in https://hub.docker.com/_/nginx."
msgstr ""

#: ../content/installation/installation-docker.rst:415
msgid "Single Sign-On Using the Kerberos Support in Nginx"
msgstr ""

#: ../content/installation/installation-docker.rst:417
msgid "**Short Description**"
msgstr ""

#: ../content/installation/installation-docker.rst:419
msgid "For enabling authentication with Kerberos please base you ``.env`` file on the sample file ``.docker_compose_env_https_kerberos``. This activates the special configuration in ``docker-compose/otobo-override-https-kerberos.yml``. This Docker compose configuration file selects a Nginx image that supports Kerberos. It also passes some Kerberos specific settings as environment values to the running Nginx container. These settings are listed above."
msgstr ""

#: ../content/installation/installation-docker.rst:425
msgid "As usual, the values for these setting can be specified in the ``.env`` file. Most of these setting will be used as replacement values for the template  https://github.com/RotherOSS/otobo/blob/rel-11_0/scripts/nginx/kerberos/templates/krb5.conf.template . The replacement takes place during the startup of the container. In the running container the adapted configuration will be available in ``/etc/krb5.conf``."
msgstr ""

#: ../content/installation/installation-docker.rst:430
msgid "Providing an user specific ``/etc/krb5.conf`` file is still possible. This can be done by mounting a volume that overrides ``/etc/krb5.conf`` in the container. This can be achieved by setting ``OTOBO_NGINX_KERBEROS_CONFIG`` in the ``.env`` file and by activating the mount directive in ``docker-compose/otobo-override-https-kerberos.yml``."
msgstr ""

#: ../content/installation/installation-docker.rst:434
msgid "``/etc/krb5.keytab`` is always installation specific and must therefore always be mounted from the host system."
msgstr ""

#: ../content/installation/installation-docker.rst:436
msgid "**Kerberos SSO Installation Tutorial**"
msgstr ""

#: ../content/installation/installation-docker.rst:438
msgid ":doc:`Kerberos Single Sign On <../sso-kerberos>`"
msgstr ""

#: ../content/installation/installation-docker.rst:441
msgid "Choosing non-standard Ports"
msgstr ""

#: ../content/installation/installation-docker.rst:443
msgid "Per default the ports 443 and 80 serve HTTPS and HTTP respectively. There can be cases where one or both of these ports are already used by other services. In these cases the default ports can be overridden by specifying ``OTOBO_WEB_HTTP_PORT`` and ``OTOBO_WEB_HTTPS_PORT`` in the ``.env`` file."
msgstr ""

#: ../content/installation/installation-docker.rst:448
msgid "Skip Startup of Specific Services"
msgstr ""

#: ../content/installation/installation-docker.rst:450
msgid "The current Docker compose setup start five, six when HTTPS is activated, services. But there are valid use cases where one or more of these services are not needed. The prime example is when the database should not run as a Docker service, but as an external database. Unfortunately there is no dedicated Docker compose option for skipping specific services. But the option ``--scale`` can be abused for this purpose. So for an installation with an external database the following command can be used:"
msgstr ""

#: ../content/installation/installation-docker.rst:461
msgid "Of course the same goal can also be achieved by editing the file ``docker-compose/otobo-base.yml`` and removing the relevant service definitions."
msgstr ""

#: ../content/installation/installation-docker.rst:464
msgid "Prepare Offline Installation"
msgstr ""

#: ../content/installation/installation-docker.rst:466
msgid "Please download `the latest version of otobo-docker <https://doc.otobo.org/manual/installation/11.0/en/content/installation-docker.html#clone-the-otobo-docker-repo>`_ on a system that has internet access and where docker is installed. Then navigate to the following folder ``otobo-docker/docker-compose``."
msgstr ""

#: ../content/installation/installation-docker.rst:473
msgid "Now you can run the following command to download all Docker images from a specific file, in my example I use the ``otobo-base.yml``."
msgstr ""

#: ../content/installation/installation-docker.rst:479
msgid "After that, the images (``.docker``) are located in the ``docker-compose`` folder and can be uploaded to the target system via, e.g, `SCP <https://en.wikipedia.org/wiki/Secure_copy_protocol>`__."
msgstr ""

#: ../content/installation/installation-docker.rst:481
msgid "On the offline target system, go to the folder where the docker images are stored. And enter the following command to import them one by one. In the following example the Mariadb image is imported:"
msgstr ""

#: ../content/installation/installation-docker.rst:490
msgid "Customizing OTOBO Docker Compose"
msgstr ""

#: ../content/installation/installation-docker.rst:492
msgid "Instead of editing the files under ``docker-compose/*`` and risking to overwrite your own options with the `next update <https://doc.otobo.org/manual/installation/11.0/en/content/updating-docker.html#updating-the-docker-compose-files>`_ of the ``otobo-docker`` folder, it is advisable to create an extra YAML file where the specific services are overwritten with additional options."
msgstr ""

#: ../content/installation/installation-docker.rst:494
msgid "A common example would be to make the database container accessible from the outside via port 3306. For this you could create an extra docker compose file that looks like:"
msgstr ""

#: ../content/installation/installation-docker.rst:505
msgid "Now we have to tell Docker Compose to include our new file. For this you have to add your YAML file to the ``COMPOSE_FILE`` variable in the ``.env`` file, for example:"
msgstr ""

#: ../content/installation/installation-docker.rst:512
msgid "Now we can use ``docker compose`` to recreate our container"
msgstr ""

#: ../content/installation/installation-docker.rst:519
msgid "With this procedure you can customize any service or volumes."
msgstr ""

#: ../content/installation/installation-docker.rst:522
msgid "Customizing the OTOBO Docker Image"
msgstr ""

#: ../content/installation/installation-docker.rst:524
msgid "Customization can be done in the external volume ``otobo_opt_otobo`` which corresponds to the directory ``/opt/otobo`` in the Docker image. This works, e.g., for local Perl modules which can be installed into ``/opt/otobo/local``. Here is an example that installs the not very useful CPAN module `Acme::123`."
msgstr ""

#: ../content/installation/installation-docker.rst:538
msgid "The nice thing of this approach is that the Docker image itself does not have to be modified."
msgstr ""

#: ../content/installation/installation-docker.rst:540
msgid "Installing extra Debian packages is a little bit trickier. One approach is to create a custom ``Dockerfile`` and use the OTOBO image as the base image. Another approach is to create a modified image directly from a running container. This can be done with the command `docker commit`, https://docs.docker.com/engine/reference/commandline/commit/. A nice write-up of that process is available at https://phoenixnap.com/kb/how-to-commit-changes-to-docker-image."
msgstr ""

#: ../content/installation/installation-docker.rst:546
msgid "But for the latter approach there are two hurdles to overcome. First, the image ``otobo`` runs per default as the user ``otobo`` with the UID ``1000``. The problem is that the user ``otobo`` is not allowed to install system packages. Thus, the first part of the solution is to pass the option ``--user root`` when running the image. However the second hurdle is that the default entrypoint script ``/opt/otobo_install/entrypoint.sh`` exits immediately when it is called as ``root``. The reasoning behind that design decision is that running inadvertently as ``root`` should be discouraged. So, the second part of the solution is to specify a different entrypoint script that does not care who the caller is. This leaves us with following example commands, where we add fortune cookies to OTOBO:"
msgstr ""

#: ../content/installation/installation-docker.rst:555
msgid "Pull a tagged OTOBO image, if we don't have it yet, and check whether the image already provides fortune cookies:"
msgstr ""

#: ../content/installation/installation-docker.rst:562
msgid "Add fortune cookies to a named container running the original OTOBO image. This is done in an interactive session as the user ``root``:"
msgstr ""

#: ../content/installation/installation-docker.rst:570
msgid "Create an image from the stopped container and give it a name. Take into account that the default user and entrypoint script must be restored:"
msgstr ""

#: ../content/installation/installation-docker.rst:577
msgid "Finally we can doublecheck:"
msgstr ""

#: ../content/installation/installation-docker.rst:586
msgid "The modified image can be specified in your ``.env`` file and then be used for fun and profit."
msgstr ""

#: ../content/installation/installation-docker.rst:589
msgid "Building Local Images"
msgstr ""

#: ../content/installation/installation-docker.rst:593
msgid "Building Docker images locally is usually only needed during development. Other use cases are when more current base images should be used for an installation or when extra functionality must be added to the images."
msgstr ""

#: ../content/installation/installation-docker.rst:596
msgid "The Docker files needed for creating Docker images locally are part of the git repository https://github.com/RotherOSS/otobo:"
msgstr ""

#: ../content/installation/installation-docker.rst:598
msgid "``otobo.web.dockerfile``"
msgstr ""

#: ../content/installation/installation-docker.rst:599
msgid "``otobo.nginx.dockerfile``"
msgstr ""

#: ../content/installation/installation-docker.rst:600
msgid "``otobo.elasticsearch.dockerfile``"
msgstr ""

#: ../content/installation/installation-docker.rst:602
msgid "The script for the actual creation of the images is ``bin/docker/build_docker_images.sh``."
msgstr ""

#: ../content/installation/installation-docker.rst:614
msgid "The locally built Docker images are tagged as ``local-<OTOBO_VERSION>`` using the version set up the file ``RELEASE``."
msgstr ""

#: ../content/installation/installation-docker.rst:616
msgid "After building the local images, one can return to the ``docker-compose`` directory. The local images are declared by setting ``OTOBO_IMAGE_OTOBO``, ``OTOBO_IMAGE_OTOBO_ELASTICSEARCH``, ``OTOBO_IMAGE_OTOBO_NGINX`` in the ``.env`` file."
msgstr ""

#: ../content/installation/installation-docker.rst:620
msgid "Automatic Installation"
msgstr ""

#: ../content/installation/installation-docker.rst:622
msgid "Instead of going through http://yourIPorFQDN/otobo/installer.pl, one can take a short cut. This is useful for running the test suite on a fresh installation."
msgstr ""

#: ../content/installation/installation-docker.rst:627
msgid "``docker compose down -v`` will remove all previous setup and data."
msgstr ""

#: ../content/installation/installation-docker.rst:642
msgid "List of Useful Commands"
msgstr ""

#: ../content/installation/installation-docker.rst:644
msgid "**Docker**"
msgstr ""

#: ../content/installation/installation-docker.rst:646
msgid "``docker system prune -a`` system clean-up (removes all unused images, containers, volumes, networks)"
msgstr ""

#: ../content/installation/installation-docker.rst:647
msgid "``docker version`` show version"
msgstr ""

#: ../content/installation/installation-docker.rst:648
msgid "``docker build --tag otobo --file=otobo.web.Dockerfile .`` build an image"
msgstr ""

#: ../content/installation/installation-docker.rst:649
msgid "``docker run --publish 80:5000 otobo`` run the new image"
msgstr ""

#: ../content/installation/installation-docker.rst:650
msgid "``docker run -it -v opt_otobo:/opt/otobo otobo bash`` log into the new image"
msgstr ""

#: ../content/installation/installation-docker.rst:651
msgid "``docker run -it -v opt_otobo:/opt/otobo --entrypoint bash otobo`` try that in case entrypoint.sh is broken"
msgstr ""

#: ../content/installation/installation-docker.rst:652
msgid "``docker ps`` show running images"
msgstr ""

#: ../content/installation/installation-docker.rst:653
msgid "``docker images`` show available images"
msgstr ""

#: ../content/installation/installation-docker.rst:654
msgid "``docker volume ls`` list volumes"
msgstr ""

#: ../content/installation/installation-docker.rst:655
msgid "``docker volume inspect otobo_opt_otobo`` inspect a volume"
msgstr ""

#: ../content/installation/installation-docker.rst:656
msgid "``docker volume inspect --format '{{ .Mountpoint }}' otobo_nginx_ssl`` get volume mountpoint"
msgstr ""

#: ../content/installation/installation-docker.rst:657
msgid "``docker volume rm tmp_volume`` remove a volume"
msgstr ""

#: ../content/installation/installation-docker.rst:658
msgid "``docker inspect <container>`` inspect a container"
msgstr ""

#: ../content/installation/installation-docker.rst:659
msgid "``docker save --output otobo.tar otobo:latest-11_0 && tar -tvf otobo.tar`` list files in an image"
msgstr ""

#: ../content/installation/installation-docker.rst:660
msgid "``docker exec -it nginx-server nginx -s reload`` reload nginx"
msgstr ""

#: ../content/installation/installation-docker.rst:662
msgid "**Docker Compose**"
msgstr ""

#: ../content/installation/installation-docker.rst:664
msgid "``docker compose config`` check and show the configuration"
msgstr ""

#: ../content/installation/installation-docker.rst:665
msgid "``docker compose ps`` show the running containers"
msgstr ""

#: ../content/installation/installation-docker.rst:666
msgid "``docker compose exec nginx nginx -s reload`` reload nginx"
msgstr ""

#: ../content/installation/installation-docker.rst:669
msgid "Resources"
msgstr ""

#: ../content/installation/installation-docker.rst:671
msgid "Finally, here is a highly subjective collection of links."
msgstr ""

#: ../content/installation/installation-docker.rst:673
msgid "**General info and tutorials**"
msgstr ""

#: ../content/installation/installation-docker.rst:675
msgid "`Perl Maven: Getting Started with Perl on Docker <https://perlmaven.com/getting-started-with-perl-on-docker>`_"
msgstr ""

#: ../content/installation/installation-docker.rst:676
msgid "`Dockerfile best practices <https://www.docker.com/blog/intro-guide-to-dockerfile-best-practices/>`_"
msgstr ""

#: ../content/installation/installation-docker.rst:677
msgid "`Environment <https://vsupalov.com/docker-arg-env-variable-guide/>`_"
msgstr ""

#: ../content/installation/installation-docker.rst:679
msgid "**Tips and hints**"
msgstr ""

#: ../content/installation/installation-docker.rst:681
msgid "`Clean up unused images <https://forums.docker.com/t/command-to-remove-all-unused-images>`_"
msgstr ""

#: ../content/installation/installation-docker.rst:682
msgid "`Docker Host IP <https://nickjanetakis.com/blog/docker-tip-65-get-your-docker-hosts-ip-address-from-in-a-container>`_"
msgstr ""

#: ../content/installation/installation-docker.rst:683
msgid "`Self signed certificate <https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu>`_"
msgstr ""

#: ../content/installation/installation-docker.rst:685
msgid "**Troubleshooting**"
msgstr ""

#: ../content/installation/installation-docker.rst:687
msgid "`Docker cache invalidation <https://stackoverflow.com/questions/34814669/when-does-docker-image-cache-invalidation-occur>`_"
msgstr ""

#: ../content/installation/installation-docker.rst:688
msgid "`Using tcpdump <https://rmoff.net/2019/11/29/using-tcpdump-with-docker/>`_"
msgstr ""

#: ../content/installation/installation-docker.rst:689
msgid "`Inspect failed builds <https://pythonspeed.com/articles/debugging-docker-build/>`_"
msgstr ""

#: ../content/installation/installation-rhel.rst:2
msgid "OTOBO Installation on RHEL"
msgstr ""

#: ../content/installation/installation-rhel.rst:4
msgid "This chapter describes the installation and basic configuration of the central OTOBO framework on a Red Hat Enterprise Linux (RHEL) system."
msgstr ""

#: ../content/installation/installation-rhel.rst:8
msgid "Currently only RHEL 9.7 has been tested and verified. However the configuration may also work on other versions."
msgstr ""

#: ../content/installation/installation-rhel.rst:11
msgid "Follow the detailed steps in this chapter to install OTOBO on your RHEL server. You can then use its web interface to login and administer the system."
msgstr ""

#: ../content/installation/installation-rhel.rst:16
msgid "We recommend Docker and Docker Compose for the OTOBO installation because its configuration works independent of the base operating system (Ubuntu, SUSE, etc.). By using the provided Docker images, all recommended dependencies (such as Elasticsearch, Redis Cache, etc.) are installed and configured automatically. Updates are thus greatly simplified and the performance may improve. You can find the instructions for Docker-based installation at: https://doc.otobo.org/manual/installation/11.0/en/content/installation/installation-docker.html ."
msgstr ""

#: ../content/installation/installation-rhel.rst:23
msgid "Preparation: Disable SELinux when it is Installed and Enabled"
msgstr ""

#: ../content/installation/installation-rhel.rst:27
msgid "RHEL employs SELinux. However, OTOBO will not work correctly on the default ruleset. If you want to use OTOBO with SELinux enabled, you will have to configure the SELinux permission policy for this application manually."
msgstr ""

#: ../content/installation/installation-rhel.rst:31
msgid "Try the command ``sestatus`` and ``getenforce`` when you are not sure whether SELinux is installed and enabled on your system."
msgstr ""

#: ../content/installation/installation-rhel.rst:33
msgid "The ``sestatus`` command returns the SELinux status and the SELinux policy being used. SELinux status: enabled is returned when SELinux is enabled. Current mode: enforcing is returned when SELinux is running in enforcing mode. Policy from config file: targeted is returned when the SELinux targeted policy is used."
msgstr ""

#: ../content/installation/installation-rhel.rst:38
msgid "Here's how to switch off SELinux for RHEL/CentOS/Fedora."
msgstr ""

#: ../content/installation/installation-rhel.rst:40
msgid "Configure ``SELINUX=permissive`` in the ``/etc/selinux/config`` file:"
msgstr ""

#: ../content/installation/installation-rhel.rst:55
msgid "Reboot your system. After reboot, confirm that the ``getenforce`` command returns *Disabled*:"
msgstr ""

#: ../content/installation/installation-rhel.rst:67
#: ../content/installation/installation-ubuntu.rst:24
msgid "Step 1: Unpack and Install OTOBO"
msgstr ""

#: ../content/installation/installation-rhel.rst:69
#: ../content/installation/installation-ubuntu.rst:26
msgid "Download the latest OTOBO release from https://ftp.otobo.org/pub/otobo/. Unpack the source archive (for example, using ``tar``) into the directory ``/opt/otobo-install``:"
msgstr ""

#: ../content/installation/installation-rhel.rst:83
msgid "Step 2: Create the OTOBO User"
msgstr ""

#: ../content/installation/installation-rhel.rst:85
#: ../content/installation/installation-ubuntu.rst:83
msgid "Create a dedicated user for OTOBO within its own group:"
msgstr ""

#: ../content/installation/installation-rhel.rst:94
msgid "Step 3: Install Additional Programs and Perl Modules"
msgstr ""

#: ../content/installation/installation-rhel.rst:96
msgid "OTOBO requires a working Perl installation with all *core* modules such as the module ``version``."
msgstr ""

#: ../content/installation/installation-rhel.rst:103
msgid "Required Perl modules may be installed from CPAN. However, in more confined environments, access to the internet may be restricted. Hence, one may download a prebuilt set of Perl packages (Option B):"
msgstr ""

#: ../content/installation/installation-rhel.rst:108
msgid "Option A: Install packages from CPAN"
msgstr ""

#: ../content/installation/installation-rhel.rst:110
msgid "To install the required packages from CPAN:"
msgstr ""

#: ../content/installation/installation-rhel.rst:119
msgid "Option B: Deploy Pre-built Packages"
msgstr ""

#: ../content/installation/installation-rhel.rst:128
msgid "You should now see a ``install`` folder containing all required Perl packages. You may run the following command to verify the installation:"
msgstr ""

#: ../content/installation/installation-rhel.rst:137
#: ../content/installation/installation-ubuntu.rst:92
msgid "Step 4: Activate the Default Configuration File"
msgstr ""

#: ../content/installation/installation-rhel.rst:139
#: ../content/installation/installation-ubuntu.rst:94
msgid "There is an OTOBO configuration file bundled in ``$OTOBO_HOME/Kernel/Config.pm.dist``. You must activate it by copying it without the ``.dist`` file name extension."
msgstr ""

#: ../content/installation/installation-rhel.rst:148
msgid "Step 5: Configure systemd Services for OTOBO"
msgstr ""

#: ../content/installation/installation-rhel.rst:150
#: ../content/installation/installation-ubuntu.rst:105
msgid "The installation package provides systemd unit files. To make sure that these files are visible to the system they need to be copied to a valid systemd directory. In this example we will be using ``/etc/systemd/system``."
msgstr ""

#: ../content/installation/installation-rhel.rst:160
#: ../content/installation/installation-ubuntu.rst:115
msgid "After the ``daemon-reload`` all services should be controllable using systemd control service like ``systemctl``."
msgstr ""

#: ../content/installation/installation-rhel.rst:164
#: ../content/installation/installation-ubuntu.rst:119
msgid "Step 6: Configure the Nginx Web Server"
msgstr ""

#: ../content/installation/installation-rhel.rst:166
msgid "OTOBO's webserver listens on ``localhost`` on port ``5000``. In order to make it accessible from outside, you need to configure a reverse proxy."
msgstr ""

#: ../content/installation/installation-rhel.rst:169
#: ../content/installation/installation-ubuntu.rst:125
msgid "Install the Nginx web server:"
msgstr ""

#: ../content/installation/installation-rhel.rst:176
#: ../content/installation/installation-ubuntu.rst:132
msgid "Nginx installations commonly have a ``conf.d`` directory included. It may be found at ``/etc/nginx``. Example configuration is provided at ``/opt/otobo/scripts/nginx-vhost-*.include.conf``."
msgstr ""

#: ../content/installation/installation-rhel.rst:182
#: ../content/installation/installation-ubuntu.rst:138
#: ../content/updating.rst:269
msgid "Configure Nginx without SSL Support"
msgstr ""

#: ../content/installation/installation-rhel.rst:184
msgid "In most cases no further editing of the template is required. The new configuration needs to be activated, subsequently."
msgstr ""

#: ../content/installation/installation-rhel.rst:192
msgid "It is also required to enable port ``80`` on the firewall."
msgstr ""

#: ../content/installation/installation-rhel.rst:200
#: ../content/installation/installation-ubuntu.rst:164
#: ../content/updating.rst:295
msgid "Configure Nginx **with** SSL Support"
msgstr ""

#: ../content/installation/installation-rhel.rst:202
#: ../content/installation/installation-ubuntu.rst:166
#: ../content/updating.rst:297
msgid "If you want to enable SSL support, you need to copy the SSL configuration file."
msgstr ""

#: ../content/installation/installation-rhel.rst:211
msgid "Please edit the files and add the required information like SSL certificate storage path."
msgstr ""

#: ../content/installation/installation-rhel.rst:213
msgid "Now you can restart your web server to load the new configuration settings. On most systems you can use the following command to do so:"
msgstr ""

#: ../content/installation/installation-rhel.rst:220
msgid "It is also required to enable port ``80`` and ``443`` on the firewall."
msgstr ""

#: ../content/installation/installation-rhel.rst:229
#: ../content/installation/installation-ubuntu.rst:193
msgid "Step 7: Set File Permissions"
msgstr ""

#: ../content/installation/installation-rhel.rst:231
#: ../content/installation/installation-ubuntu.rst:195
msgid "Please execute the following command to set the file and directory permissions for OTOBO. It will try to detect the correct user and group settings needed for your setup."
msgstr ""

#: ../content/installation/installation-rhel.rst:241
#: ../content/installation/installation-ubuntu.rst:204
msgid "Step 8: Setup the Database"
msgstr ""

#: ../content/installation/installation-rhel.rst:243
msgid "OTOBO requires a database to persist data. It is recommended to use the MySQL or MariaDB package, which will be delivered with your Linux system. However, an external database may be used but latency may increase."
msgstr ""

#: ../content/installation/installation-rhel.rst:247
msgid "Packages for a local database may be obtained from the system's package manager. Find the commands needed to set up MySQL below."
msgstr ""

#: ../content/installation/installation-rhel.rst:255
#: ../content/installation/installation-ubuntu.rst:217
msgid "After installing the database server you need configure it."
msgstr ""

#: ../content/installation/installation-rhel.rst:257
msgid "In MySQL higher or equal version 5.7 a new authentication module is active, and it is not possible to use the OTOBO web installer for database creation. Please login to the mysql console and set a different authentication module and password for the user ``root`` if this is the case:"
msgstr ""

#: ../content/installation/installation-rhel.rst:265
msgid "After OTOBO installation it is possible to change the authentication module again, if needed."
msgstr ""

#: ../content/installation/installation-rhel.rst:269
msgid "The following configuration settings are minimum requirements for MariaDB/MySQL setups. Please add the following lines to the Database Server configuration file ``/etc/my.cnf`` under the ``[mysqld]`` section:"
msgstr ""

#: ../content/installation/installation-rhel.rst:277
msgid "In order to apply these settings, you need to restart the MySQL service."
msgstr ""

#: ../content/installation/installation-rhel.rst:285
#: ../content/installation/installation-ubuntu.rst:268
msgid "Step 9: Setup Elasticsearch"
msgstr ""

#: ../content/installation/installation-rhel.rst:287
#: ../content/installation/installation-ubuntu.rst:270
msgid "OTOBO recommends an active installation of Elasticsearch for quick search. The easiest way is to setup Elasticsearch on the same host as OTOBO and binding it to its default port."
msgstr ""

#: ../content/installation/installation-rhel.rst:290
#: ../content/installation/installation-ubuntu.rst:273
msgid "Please follow the installation tutorial found at https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html."
msgstr ""

#: ../content/installation/installation-rhel.rst:293
msgid "Elasticsearch Module Installation"
msgstr ""

#: ../content/installation/installation-rhel.rst:294
msgid "Additionally, OTOBO requires plugins to be installed into Elasticsearch:"
msgstr ""

#: ../content/installation/installation-rhel.rst:303
msgid "Elasticsearch Configuration"
msgstr ""

#: ../content/installation/installation-rhel.rst:305
msgid "Elasticsearch has a multitude of configuration options and possibilities."
msgstr ""

#: ../content/installation/installation-rhel.rst:307
msgid "In order to ensure error-free operation, you should adjust the JVM heap space for larger OTOBO systems. Please adjust the settings in the file ``/etc/elasticsearch/jvm.options``. You should always set the min and max JVM heap size to the same value. For example, to set the heap to 512 MB, set:"
msgstr ""

#: ../content/installation/installation-rhel.rst:317
msgid "In our tests, a value between 512 MB and 4 GB for medium-sized installations has proven to be the best."
msgstr ""

#: ../content/installation/installation-rhel.rst:321
msgid "See ``https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html`` for more information."
msgstr ""

#: ../content/installation/installation-rhel.rst:323
msgid "Now you can restart your Elasticsearch server to load the new configuration settings. On most systems you can use the following command to do so:"
msgstr ""

#: ../content/installation/installation-rhel.rst:332
#: ../content/installation/installation-ubuntu.rst:286
msgid "Step 10: Basic System Configuration"
msgstr ""

#: ../content/installation/installation-rhel.rst:334
msgid "Before starting with the initial web configuration you need to start and enable the OTOBO web service via systemd."
msgstr ""

#: ../content/installation/installation-rhel.rst:341
msgid "After that use the web installer at http://localhost/otobo/installer.pl (replace \"localhost\" with your OTOBO hostname or server IP) to set up your database and basic system settings such as email accounts."
msgstr ""

#: ../content/installation/installation-rhel.rst:345
#: ../content/installation/installation-ubuntu.rst:299
msgid "Step 11: First Login"
msgstr ""

#: ../content/installation/installation-rhel.rst:347
#: ../content/installation/installation-ubuntu.rst:301
msgid "Now you are ready to login to your system at http://localhost/otobo/index.pl as user ``root@localhost`` with the password that was generated (see above)."
msgstr ""

#: ../content/installation/installation-rhel.rst:351
#: ../content/installation/installation-ubuntu.rst:305
msgid "Step 12: Start the OTOBO Daemon"
msgstr ""

#: ../content/installation/installation-rhel.rst:353
#: ../content/installation/installation-ubuntu.rst:307
msgid "OTOBO daemon is responsible for handling any asynchronous and recurring tasks in OTOBO. The daemon also handles all GenericAgent jobs and must be started from the OTOBO user."
msgstr ""

#: ../content/installation/installation-rhel.rst:362
#: ../content/installation/installation-ubuntu.rst:317
msgid "Step 13: Setup Bash Auto-Completion (optional)"
msgstr ""

#: ../content/installation/installation-rhel.rst:364
#: ../content/installation/installation-ubuntu.rst:319
msgid "All regular OTOBO command line operations happen via the OTOBO console interface. This provides an auto-completion for the bash shell which makes finding the right command and options much easier. You can activate the bash auto-completion by installing the package ``bash-completion``. It will automatically detect and load the file ``/opt/otobo/.bash_completion`` for the ``otobo`` user. After restarting your shell, you can just type this command followed by ``TAB``, and it will list all available commands:"
msgstr ""

#: ../content/installation/installation-rhel.rst:374
#: ../content/installation/installation-ubuntu.rst:329
msgid "If you type a few characters of the command name, ``TAB`` will show all matching commands. After typing a complete command, all possible options and arguments will be shown by pressing ``TAB``."
msgstr ""

#: ../content/installation/installation-rhel.rst:379
#: ../content/installation/installation-ubuntu.rst:334
msgid "If you have problems, you can execute the following line as user ``otobo`` and add it to your ``~/.bashrc`` to execute the commands from the file."
msgstr ""

#: ../content/installation/installation-rhel.rst:387
#: ../content/installation/installation-ubuntu.rst:342
msgid "Step 14: Further Information"
msgstr ""

#: ../content/installation/installation-rhel.rst:389
#: ../content/installation/installation-ubuntu.rst:344
msgid "We advise you to read the OTOBO :doc:`../performance-tuning` chapter."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:2
msgid "OTOBO Installation on Ubuntu"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:4
msgid "This chapter describes the installation and basic configuration of OTOBO 11.1 on Ubuntu."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:8
msgid "Currently only Ubuntu 24.04 (noble) has been tested and verified. However, the configuration may also work on other versions."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:11
msgid "Follow the detailed steps in this chapter to install OTOBO on your Ubuntu server. You can then use its web interface to login and administer the system."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:16
msgid "We recommend Docker and Docker Compose for the installation of OTOBO. By using the provided Docker images, all recommended dependencies, Perl packages and services like the database or Elasticsearch, are installed, kurated and configured automatically. Updates are thus greatly simplified and the performance may improve. You can find the instructions for Docker-based installation at: https://doc.otobo.org/manual/installation/11.1/en/content/installation/installation-docker.html ."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:39
msgid "Step 2: Install Additional Programs and Perl Modules"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:41
msgid "Use the following script to get an overview of all installed and required CPAN modules and other external dependencies."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:45
msgid "On Debian systems, like Ubuntu, you may need to manually install some Perl packages:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:63
msgid "Please note that OTOBO requires a working Perl installation with all *core* modules such as the module ``version``. These modules are not explicitly checked by the script."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:66
msgid "To install the required and optional packages, you can use either CPAN or the package manager of your Linux distribution."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:68
msgid "Execute this command to get an install command to install the missing dependencies:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:76
msgid "There are a number of optional or alternative modules which can be installed, mostly for more customized versions of OTOBO. Calling ``otobo.CheckModules.pl`` without any argument will list a complete listing of packages required for full functionality."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:81
msgid "Step 3: Create the OTOBO User"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:103
msgid "Step 5: Configure Systemd Services for OTOBO"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:121
msgid "OTOBO uses a high performance Perl web server called Gazelle to serve the web interface. Gazelle listens on ``localhost`` on port ``5000``. In order to make it accessible from outside, you need to configure a reverse proxy."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:140
msgid "For testing purposes, you can use the provided configuration file for port ``80`` without SSL support. The ``server_name`` in the template file has to be changed from ``localhost`` to the desired name to become reachable externally. The new configuration needs to be activated, subsequently."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:150
#: ../content/updating.rst:281
msgid "It is also required to allow port ``80`` on the firewall if it is enabled."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:160
#: ../content/updating.rst:291
msgid "A webserver without SSL support doesn't allow any type of encryption and should never be used for production services."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:176
#: ../content/updating.rst:307
msgid "Edit the files and add the required information like SSL certificate storage path."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:178
msgid "Now you restart your web server to load the new configuration settings. On most systems you can use the following command to do so:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:185
#: ../content/updating.rst:316
msgid "It is also required to allow port ``80`` and ``443`` on the firewall (if configured)."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:206
msgid "OTOBO requires a database to persist data. It is recommended to use the MariaDB package, which will be delivered with your Linux system. However, an external database may be used but latency may increase."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:210
msgid "Packages for a local database may be obtained from the system's package manager. Find the commands needed to set up MariaDB below."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:219
msgid "In order to use the OTOBO installer the password for the ``root`` user has to be set:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:230
msgid "The following configuration settings are minimum requirements for MySQL setups. Please add the following lines to the MySQL Server configuration file ``/etc/mysql/mariadb.conf.d/50-server.cnf`` under the ``[mysqld]`` section:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:239
msgid "Also add the following lines to the configuration file ``/etc/mysql/conf.d/mysqldump.cnf`` under the ``[mysqldump]`` section:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:246
msgid "Make sure to restart the associated service after making these changes"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:253
msgid "For production purposes we recommend to use the tool ``mysqltuner`` to find the perfect setup. You can download the script from Github ``https://github.com/major/MySQLTuner-perl`` or install it on Debian or Ubuntu systems via package manager:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:260
msgid "After installing execute the script:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:275
msgid "OTOBO requires plugins to be installed into Elasticsearch:"
msgstr ""

#: ../content/installation/installation-ubuntu.rst:288
msgid "Before starting with the initial web configuration you need to start and enable the OTOBO web service via Systemd."
msgstr ""

#: ../content/installation/installation-ubuntu.rst:295
msgid "Please use the web installer at http://localhost/otobo/installer.pl (replace \"localhost\" with your OTOBO hostname) to set up your database and basic system settings such as email accounts."
msgstr ""

#: ../content/installing-perl-modules.rst:2
msgid "Installing Perl Modules from CPAN"
msgstr ""

#: ../content/installing-perl-modules.rst:4
msgid "When there are special requirements then the need for additional Perl modules may arise. Fortunately, Perl has an excellent package repository that can satisfy almost all needs. That repository is called CPAN and is available at https://metacpan.org/."
msgstr ""

#: ../content/installing-perl-modules.rst:8
msgid "It is recommended to use the command line client ``cpanm`` for installing modules. ``cpanm`` is often already installed on your system. Please see https://metacpan.org/pod/App::cpanminus for what to do when is isn't already available."
msgstr ""

#: ../content/installing-perl-modules.rst:12
msgid "Alternatively, many Perl modules are also available as packages for your operating system. These packages can be installed with your systems regular package manager."
msgstr ""

#: ../content/installing-perl-modules.rst:15
msgid "Per default ``cpanm`` installs modules into a system-wide location. In this case modules must be installed as the root user. For example, the command"
msgstr ""

#: ../content/installing-perl-modules.rst:23
msgid "results in:"
msgstr ""

#: ../content/installing-perl-modules.rst:31
msgid "Docker-based Installations"
msgstr ""

#: ../content/installing-perl-modules.rst:33
msgid "Special care must be taken when OTOBO runs under Docker. In this case an installation into a system-wide location would initially work as well. However, due to how Docker works, this installed modules would be lost when the container is restarted. Therefore, the modules must be installed into a location that does survive a restart. The directory ``/opt/otobo/local`` within the volume ``otobo_opt_otobo`` can be used for that. Modules that are installed in ``/opt/otobo/local`` will be picked up by Perl because the environment variables ``PERL5LIB`` and ``PATH`` are preset accordingly."
msgstr ""

#: ../content/installing-perl-modules.rst:40
msgid "The installed Perl modules will also be available after an upgrade of OTOBO. There is the general rule that files added to ``/opt/otobo`` won't be removed by an upgrade."
msgstr ""

#: ../content/installing-perl-modules.rst:43
msgid "For installing Perl modules in a specific location we need to modify our install command. Specifically, we need to add the option ``--local-lib``. Here is a sample session in the container ``web``."
msgstr ""

#: ../content/introduction.rst:2
msgid "Introduction"
msgstr ""

#: ../content/introduction.rst:4
msgid "OTOBO is an open source ticket request system with many features to manage customer telephone calls and emails. It is distributed under the GNU General Public License (GPL) and is tested on various Linux platforms."
msgstr ""

#: ../content/introduction.rst:9
msgid "About This Manual"
msgstr ""

#: ../content/introduction.rst:11
msgid "This manual is intended for use by system administrators. The chapters describe the installation and updating of the OTOBO software."
msgstr ""

#: ../content/introduction.rst:14
msgid "There is no graphical user interface for installation and updating. System administrators have to follow the steps described in the following chapters."
msgstr ""

#: ../content/introduction.rst:17
msgid "All console commands look like ``username> command-to-execute``. Username indicates the user account of the operating system, which need to use to execute the command. If a command starts with ``root>``, you have to execute the command as a user with root permissions. If a command starts with ``otobo>``, you have to execute the command as the user created for OTOBO."
msgstr ""

#: ../content/introduction.rst:24
msgid "Do not select ``username>`` when you copy the command and paste it to the shell. Otherwise you will get an error."
msgstr ""

#: ../content/introduction.rst:27
msgid "We assume that OTOBO will be installed to the directory ``/opt/otobo``. If you want to install OTOBO to a different location, then you have to change the path in the commands or create a symbolic link to this directory."
msgstr ""

#: ../content/migration-from-otrs.rst:2
msgid "Migration from OTRS 6 or OTRS 7 / ((OTRS)) Community Edition to OTOBO"
msgstr ""

#: ../content/migration-from-otrs.rst:4
msgid "Welcome and thank you for choosing OTOBO!"
msgstr ""

#: ../content/migration-from-otrs.rst:6
msgid "OTRS, ((OTRS)) Community Edition and OTOBO are very comprehensive and flexible in their application. Thus, every migration to OTOBO requires thorough preparation and possibly some rework, too."
msgstr ""

#: ../content/migration-from-otrs.rst:9
msgid "Please take your time for the migration and follow these instructions step by step."
msgstr ""

#: ../content/migration-from-otrs.rst:11
msgid "If you have any problem or question, please do not despair. Call our support line, write an email, or post your query in the OTOBO Community forum at https://forum.otobo.org/. We will find a way to help you!"
msgstr ""

#: ../content/migration-from-otrs.rst:17
msgid "After the migration the data previously available in OTRS will be available in OTOBO. We do not modify any data of the OTRS installation during the migration."
msgstr ""

#: ../content/migration-from-otrs.rst:22
msgid "Migration from OTRS to OTOBO is only supported on 10.1.X. Upgrade step by step through all Major/Minor until you reach your target version (10.1 → 11.0 → 11.1). Refer to the specific upgrade instructions for each version, and to the chapter :doc:`updating` in general."
msgstr ""

#: ../content/migration-from-otrs.rst:28
msgid "Overview over the Supported Migration Scenarios"
msgstr ""

#: ../content/migration-from-otrs.rst:30
msgid "With the OTOBO Migration Interface it is possible to employ the following migration strategies:"
msgstr ""

#: ../content/migration-from-otrs.rst:32
msgid "The general migration strategy."
msgstr ""

#: ../content/migration-from-otrs.rst:34
msgid "This is the regular way to perform a migration. Many different combinations are supported:"
msgstr ""

#: ../content/migration-from-otrs.rst:38
msgid "Change server:"
msgstr ""

#: ../content/migration-from-otrs.rst:38
msgid "Migrate and simultaneously move to a new application server."
msgstr ""

#: ../content/migration-from-otrs.rst:42
msgid "Separate application and web servers:"
msgstr ""

#: ../content/migration-from-otrs.rst:41
msgid "It's your choice whether you want to run application and database server on the same host or each on a dedicated host. This choice is regardless of the previous setup in OTRS / ((OTRS)) Community Edition."
msgstr ""

#: ../content/migration-from-otrs.rst:45
msgid "Different databases:"
msgstr ""

#: ../content/migration-from-otrs.rst:45
msgid "Migrate from any of the supported databases to any other supported database."
msgstr ""

#: ../content/migration-from-otrs.rst:48
msgid "Different operating system:"
msgstr ""

#: ../content/migration-from-otrs.rst:48
msgid "Switch from any supported operating system to any other supported operating system."
msgstr ""

#: ../content/migration-from-otrs.rst:51
msgid "Docker:"
msgstr ""

#: ../content/migration-from-otrs.rst:51
msgid "Migrate to a Docker-based installation of OTOBO 10.1."
msgstr ""

#: ../content/migration-from-otrs.rst:53
msgid "A variant of the general strategy where the database migration is streamlined."
msgstr ""

#: ../content/migration-from-otrs.rst:55
msgid "Use the ETL-like migration when the source database mustn't suffer from increased load or when access to the source database is a bottleneck. In the general strategy, the data is row by row first read from the *otrs* database and then inserted into the OTOBO database. In this variant, the complete *otrs* database tables are first exported, then transformed, and then imported into the *otobo* database."
msgstr ""

#: ../content/migration-from-otrs.rst:59
msgid "Migration from an Oracle based OTRS 6 / OTRS 7 installation to an Oracle based OTOBO installation."
msgstr ""

#: ../content/migration-from-otrs.rst:61
msgid "This is a special case that is not supported by the general migration strategy. This means that a variant of the streamlined strategy must be used."
msgstr ""

#: ../content/migration-from-otrs.rst:66
msgid "All strategies work for both Docker-based and native installations. But for Docker-based installations some peculiarities have to be considered. These peculiarities are handled in the optional steps."
msgstr ""

#: ../content/migration-from-otrs.rst:72
msgid "It is also feasible to clone the OTRS database to the OTOBO database server before the actual migration. This can speed up the general migration strategy."
msgstr ""

#: ../content/migration-from-otrs.rst:76
msgid "Migration Requirements"
msgstr ""

#: ../content/migration-from-otrs.rst:78
msgid "Basic requirement for a migration is that you already have an ((OTRS)) Community Edition or OTRS 6.0.\\* / OTRS 7.0.\\* running, and that you want to transfer both configuration and data to OTOBO."
msgstr ""

#: ../content/migration-from-otrs.rst:82
msgid "Please consider carefully whether you really need the data and configuration. Experience shows that quite often a new start is the better option. This is because in many cases the previously used installation and configuration was rather suboptimal anyways. It might also make sense to only transfer the ticket data and to change the basic configuration to OTOBO Best Practice. We are happy to advise you, please get in touch at hello@otobo.io or ask your question in the OTOBO Community forum at https://forum.otobo.org/."
msgstr ""

#: ../content/migration-from-otrs.rst:88
msgid "You need a running OTOBO installation to start the migration from there!"
msgstr ""

#: ../content/migration-from-otrs.rst:90
msgid "This OTOBO installation must contain all OPM packages installed in your OTRS that you want to use in OTOBO, too."
msgstr ""

#: ../content/migration-from-otrs.rst:92
msgid "If you are planning to migrate to another server, then the OTOBO webserver must be able to access the location where your ((OTRS)) Community Edition or OTRS 6.0.* / OTRS 7.0.\\* is installed. In most cases, this is the directory */opt/otrs* on the server running OTRS. The read access can be effected via SSH or via file system mounts."
msgstr ""

#: ../content/migration-from-otrs.rst:97
msgid "The *otrs* database must be accessible from the server running OTOBO. Read-only access must be granted for external hosts. If access is not possible, or when the speed of the migration should be optimized, then a dump of the database is sufficient."
msgstr ""

#: ../content/migration-from-otrs.rst:103
msgid "If SSH and database access between the servers is not possible, please migrate OTRS to OTOBO on the same server and only then move the new installation."
msgstr ""

#: ../content/migration-from-otrs.rst:107
msgid "Step 1: Install the new OTOBO System"
msgstr ""

#: ../content/migration-from-otrs.rst:109
msgid "Please start with installing a new OTOBO system. Your old OTRS / ((OTRS)) Community Edition installation will be migrated to that new system. We strongly recommend to read the chapter :doc:`installation`. For Docker-based installations (recommended) we refer to the chapter :doc:`installation/installation-docker`."
msgstr ""

#: ../content/migration-from-otrs.rst:116
msgid "Under Apache, there are pitfalls with running two independent ``mod_perl`` applications under on the same webserver. Therefore, it is advised to run OTRS and OTOBO on separate webservers. Alternatively remove the OTRS configuration from Apache before installing OTOBO. Use the command ``a2query -s`` and check the directories ``/etc/apache2/sites-available`` and ``/etc/apache2/sites-enabled`` for inspecting which configurations are currently available and which are enabled."
msgstr ""

#: ../content/migration-from-otrs.rst:121
msgid "After finishing the installation please log in as ``root@localhost``. Navigate to the OTOBO Admin Area ``Admin -> Packages`` and install all required OTOBO OPM packages."
msgstr ""

#: ../content/migration-from-otrs.rst:140
msgid "The following OPM packages and OTRS \"Feature Addons\" need NOT and should NOT be installed, as these features are already available in the OTOBO standard:"
msgstr ""

#: ../content/migration-from-otrs.rst:125
msgid "OTRSHideShowDynamicField"
msgstr ""

#: ../content/migration-from-otrs.rst:126
msgid "RotherOSSHideShowDynamicField"
msgstr ""

#: ../content/migration-from-otrs.rst:127
msgid "TicketForms"
msgstr ""

#: ../content/migration-from-otrs.rst:128
msgid "RotherOSS-LongEscalationPerformanceBoost"
msgstr ""

#: ../content/migration-from-otrs.rst:129
msgid "Znuny4OTRS-AdvancedDynamicFields"
msgstr ""

#: ../content/migration-from-otrs.rst:130
msgid "Znuny4OTRS-AutoSelect"
msgstr ""

#: ../content/migration-from-otrs.rst:131
msgid "Znuny4OTRS-EscalationSuspend"
msgstr ""

#: ../content/migration-from-otrs.rst:132
msgid "OTRSEscalationSuspend"
msgstr ""

#: ../content/migration-from-otrs.rst:133
msgid "OTRSDynamicFieldDatabase"
msgstr ""

#: ../content/migration-from-otrs.rst:134
msgid "OTRSDynamicFieldWebService"
msgstr ""

#: ../content/migration-from-otrs.rst:135
msgid "OTRSBruteForceAttackProtection"
msgstr ""

#: ../content/migration-from-otrs.rst:136
msgid "Znuny4OTRS-ExternalURLJump"
msgstr ""

#: ../content/migration-from-otrs.rst:137
msgid "Znuny4OTRS-QuickClose"
msgstr ""

#: ../content/migration-from-otrs.rst:138
msgid "Znuny4OTRS-AutoCheckbox"
msgstr ""

#: ../content/migration-from-otrs.rst:139
msgid "OTRSSystemConfigurationHistory"
msgstr ""

#: ../content/migration-from-otrs.rst:140
msgid "Znuny4OTRS-PasswordPolicy"
msgstr ""

#: ../content/migration-from-otrs.rst:142
msgid "The following OTOBO packages have been integrated into OTOBO 11.0. This means that they should not be installed in the target system when the target system is OTOBO 11:"
msgstr ""

#: ../content/migration-from-otrs.rst:145
msgid "ImportExport"
msgstr ""

#: ../content/migration-from-otrs.rst:148
msgid "Step 2: Deactivate ``SecureMode`` on OTOBO"
msgstr ""

#: ../content/migration-from-otrs.rst:150
msgid "After installing OTOBO, please log in again to the OTOBO Admin Area ``Admin -> System Configuration`` and deactivate the configuration option ``SecureMode``."
msgstr ""

#: ../content/migration-from-otrs.rst:154
msgid "Do not forget to actually deploy the changed setting."
msgstr ""

#: ../content/migration-from-otrs.rst:157
msgid "Step 3: Stop the OTOBO Daemon"
msgstr ""

#: ../content/migration-from-otrs.rst:159
msgid "This is necessary when the OTOBO Daemon is actually running. Stopping the Daemon is different between Docker-based and non-Docker-based installations."
msgstr ""

#: ../content/migration-from-otrs.rst:162
msgid "In the non-Docker case execute the following commands as the user ``otobo``:"
msgstr ""

#: ../content/migration-from-otrs.rst:172
msgid "You can also use systemctl if systemd unit files are configured on OTOBO."
msgstr ""

#: ../content/migration-from-otrs.rst:178
msgid "When OTOBO is running in Docker, you just need to stop the service ``daemon``:"
msgstr ""

#: ../content/migration-from-otrs.rst:188
msgid "It is recommended to run a backup of the whole OTOBO system at this point. If something goes wrong during migration, you will then not have to repeat the entire installation process, but can instead import the backup for a new migration."
msgstr ""

#: ../content/migration-from-otrs.rst:193
msgid "We advise you to read the OTOBO :doc:`backup-restore` chapter."
msgstr ""

#: ../content/migration-from-otrs.rst:196
msgid "Optional Step: Mount ``/opt/otrs`` for Convenient Access"
msgstr ""

#: ../content/migration-from-otrs.rst:198
msgid "Often OTOBO should be running on a new server where ``/opt/otrs`` isn't available initially. In these cases the directory ``/opt/otrs`` on the OTRS server can be mounted into the file system of the OTOBO server. When a regular network mount is not possible, then using ``sshfs`` might be an option."
msgstr ""

#: ../content/migration-from-otrs.rst:203
msgid "Optional Step: Install ``sshpass`` and ``rsync`` when ``/opt/otrs`` Should be Copied via SSH"
msgstr ""

#: ../content/migration-from-otrs.rst:205
msgid "This step is only necessary when you want to migrate OTRS from another server and when ``/opt/otrs`` from the remote server hasn't been mounted on the server running OTOBO."
msgstr ""

#: ../content/migration-from-otrs.rst:207
msgid "The tools ``sshpass`` and ``rsync`` are needed so that ``migration.pl`` can copy files via SSH. For installing ``sshpass``, please log in on the server as user ``root`` and execute one of the following commands:"
msgstr ""

#: ../content/migration-from-otrs.rst:230
msgid "The same thing must be done for ``rsync`` when it isn't available yet."
msgstr ""

#: ../content/migration-from-otrs.rst:233
msgid "Step 4: Preparing the OTRS / ((OTRS)) Community Edition system"
msgstr ""

#: ../content/migration-from-otrs.rst:237
msgid "Be sure to have a valid backup of your OTRS / ((OTRS)) Community Edition system, too. Yes, we do not touch any OTRS data during the migration, but at times a wrong entry is enough to cause trouble."
msgstr ""

#: ../content/migration-from-otrs.rst:240
msgid "Now we are ready for the migration. First of all we need to make sure that no more tickets are processed and no users log on to OTRS:"
msgstr ""

#: ../content/migration-from-otrs.rst:243
msgid "Please log in to the OTRS Admin Area ``Admin ->  System Maintenance`` and add a new system maintenance slot for a few hours. After that, delete all agent and user sessions (``Admin ->  Sessions``) and log out."
msgstr ""

#: ../content/migration-from-otrs.rst:247
msgid "Stop All Relevant Services and the OTRS Daemon"
msgstr ""

#: ../content/migration-from-otrs.rst:249
msgid "Please make sure there are no running services or cron jobs."
msgstr ""

#: ../content/migration-from-otrs.rst:260
msgid "Clear the Caches and the Operational Data"
msgstr ""

#: ../content/migration-from-otrs.rst:262
msgid "The cached data and the operational data doesn't have to be migrated. The mail queue should at this point already be empty."
msgstr ""

#: ../content/migration-from-otrs.rst:277
msgid "Optional Step for Docker: Make Required Data Available Inside Container"
msgstr ""

#: ../content/migration-from-otrs.rst:279
msgid "There are some specifics to be considered when your OTOBO installation is running under Docker. The most relevant: processes running in a Docker container generally cannot access directories outside the container. There is an exception though: directories mounted as volumes into the container can be accessed. Also, note that the MariaDB database running in ``otobo-db-1`` is not directly accessible from outside the container network."
msgstr ""

#: ../content/migration-from-otrs.rst:286
msgid "In the sample commands, we assume that the user **docker_admin** is used for interacting with Docker. The Docker admin may be either the **root** user of the Docker host or a dedicated user with the required permissions."
msgstr ""

#: ../content/migration-from-otrs.rst:290
msgid "Copy ``/opt/otrs`` into the Volume ``otobo_opt_otobo``"
msgstr ""

#: ../content/migration-from-otrs.rst:292
msgid "In this section, we assume that the OTRS home directory ``/opt/otrs`` is available on the Docker host."
msgstr ""

#: ../content/migration-from-otrs.rst:294
msgid "There are at least two viable possibilitie"
msgstr ""

#: ../content/migration-from-otrs.rst:296
msgid "Copy ``/opt/otrs`` into the existing volume ``otobo_opt_otobo``"
msgstr ""

#: ../content/migration-from-otrs.rst:297
msgid "Mount ``/opt/otrs`` as an additional volume"
msgstr ""

#: ../content/migration-from-otrs.rst:299
msgid "Let's concentrate on option **a.** here."
msgstr ""

#: ../content/migration-from-otrs.rst:301
msgid "First we need to find out where the volume ``otobo_opt_otobo`` is available on the Docker host."
msgstr ""

#: ../content/migration-from-otrs.rst:308
msgid "For safe copying, we use ``rsync``. Depending on your Docker setup, the command ``rsync`` might need to be run with ``sudo``."
msgstr ""

#: ../content/migration-from-otrs.rst:321
msgid "This copied directory will be available as ``/opt/otobo/var/tmp/copied_otrs`` within the container."
msgstr ""

#: ../content/migration-from-otrs.rst:324
msgid "Step 5: Perform the Migration!"
msgstr ""

#: ../content/migration-from-otrs.rst:326
msgid "Please use the web migration tool at http://localhost/otobo/migration.pl. Be aware that you might have to replace \"localhost\" with your OTOBO hostname and you might have to add your non-standard port. The application then guides you through the migration process."
msgstr ""

#: ../content/migration-from-otrs.rst:332
msgid "Sometimes, a warning is shown that the deactivation of **SecureMode** has not been detected. Please restart the webserver in this case. This forces the webserver to read in the current configuration."
msgstr ""

#: ../content/migration-from-otrs.rst:336
msgid "For a native installation, the command is:"
msgstr ""

#: ../content/migration-from-otrs.rst:342
msgid "For a Docker-based installation, the commands are:"
msgstr ""

#: ../content/migration-from-otrs.rst:352
msgid "If OTOBO runs inside a Docker container, keep the default settings ``localhost`` for the OTRS server and ``/opt/otobo/var/tmp/copied_otrs`` for the OTRS home directory. This is the path of the data that was copied in the optional step."
msgstr ""

#: ../content/migration-from-otrs.rst:357
msgid "The default values for OTRS database user and password are taken from ``Kernel/Config.pm`` in the OTRS home directory. Change the proposed settings if you are using a dedicated database user for the migration. Also change the settings when you work with a database that was copied into the ``otobo-db-1`` Docker container."
msgstr ""

#: ../content/migration-from-otrs.rst:363
msgid "In the Docker case, a database running on the Docker host won't be reachable via ``127.0.0.1`` from within the Docker container. This means that the setting ``127.0.0.1`` won't be valid for the input field ``OTRS Server``. In that case, enter one of the alternative IP addresses reported by the command ``hostname --all-ip-addresses`` for ``OTRS Server``."
msgstr ""

#: ../content/migration-from-otrs.rst:369
msgid "When migrating to a new application server, or to a Docker-based installation, quite often the database cannot be accessed from the target installation. This is usually due to the fact that the otobo database user can only connect from the host the database runs on. In order to allow access anyways it is recommended to create a dedicated database user for the migration. E.g., ``CREATE USER 'otrs_migration'@'%' IDENTIFIED BY 'otrs_migration';`` and ``GRANT SELECT, SHOW VIEW ON otrs.* TO 'otrs_migration'@'%';``. This user can be dropped again after the migration: ``DROP USER 'otrs_migration'@'%'``."
msgstr ""

#: ../content/migration-from-otrs.rst:375
msgid "Custom settings in ``Kernel/Config.pm`` are carried over from the old OTRS installation to the new OTOBO installation. When you have custom settings, then please take a look at the migrated file ``/opt/otobo/Kernel/Config.pm``. You might want to adapt custom paths or LDAP settings. In the best case you might find that some custom setting are longer needed."
msgstr ""

#: ../content/migration-from-otrs.rst:380
msgid "When the migration is complete, please take your time and test the entire system. Once you have decided that the migration was successful and that you want to use OTOBO from now on, start the OTOBO Daemon:"
msgstr ""

#: ../content/migration-from-otrs.rst:391
msgid "In case you have systemd unit files configured:"
msgstr ""

#: ../content/migration-from-otrs.rst:397
msgid "In the Docker case:"
msgstr ""

#: ../content/migration-from-otrs.rst:405
msgid "Step 6: After Successful Migration!"
msgstr ""

#: ../content/migration-from-otrs.rst:407
msgid "Uninstall ``sshpass`` if you do not need it anymore."
msgstr ""

#: ../content/migration-from-otrs.rst:408
msgid "Drop the databases and database users dedicated to the migration if you created any."
msgstr ""

#: ../content/migration-from-otrs.rst:409
msgid "Have fun with OTOBO!"
msgstr ""

#: ../content/migration-from-otrs.rst:413
msgid "Known Migration Problems"
msgstr ""

#: ../content/migration-from-otrs.rst:416
msgid "1. Login After Migration not Possible"
msgstr ""

#: ../content/migration-from-otrs.rst:418
msgid "During our migration tests, the browser used for the migration sometimes had problems. After restarting the browser, this problem usually was solved. With Safari it was sometimes necessary to manually delete the old OTRS session."
msgstr ""

#: ../content/migration-from-otrs.rst:423
msgid "2. Final Page of the Migration Has a Strange Layout Due to Missing CSS Files"
msgstr ""

#: ../content/migration-from-otrs.rst:425
msgid "This can happen when the setting ``ScriptAlias`` has a non-standard value. The migration simply substitutes ``otrs`` for ``otobo``. This might lead to the effect that the CSS and JavaScript can no longer be retrieved in OTOBO. When that happens, please check the settings in ``Kernel/Config.pm`` and revert them to sane values."
msgstr ""

#: ../content/migration-from-otrs.rst:431
msgid "3. Migration Stops due to MySQL Errors"
msgstr ""

#: ../content/migration-from-otrs.rst:433
msgid "On systems that experienced problems with an upgrade in the past, the migration process may stop due to MySQL errors in the tables ``ticket`` and ``ticket_history``. Usually these errors are NULL values in the source table that are no longer allowed in the target table. These conflicts have to be manually resolved before you can resume the migration."
msgstr ""

#: ../content/migration-from-otrs.rst:437
msgid "There is a check in ``migration.pl`` that checks for ``NULL`` values before the data transfer is done. Note, that the resolution still needs to be performed manually."
msgstr ""

#: ../content/migration-from-otrs.rst:441
msgid "4. Errors in Step 5 when Migrating to PostgreSQL"
msgstr ""

#: ../content/migration-from-otrs.rst:443
msgid "In these cases the not so helpful message \"System was unable to complete data transfer.\" is shown by ``migration.pl``. The Apache logfile, and the OTOBO logfile, show a more meaningful message: ``\"Message: ERROR:  permission denied to set parameter \"session_replication_role\", SQL: 'set session_replication_role to replica;'\".`` In order to give the database user ``otobo`` the needed superuser privileges, run the following statement as the PostgreSQL admin: ``ALTER USER otobo WITH SUPERUSER;``. Then retry running http://localhost/otobo/migration.pl. After the migration, return to the normal state by running ``ALTER USER otobo WITH NOSUPERUSER``."
msgstr ""

#: ../content/migration-from-otrs.rst:450
msgid "It is not clear yet, whether the extended privileges have to be granted in every setup."
msgstr ""

#: ../content/migration-from-otrs.rst:454
msgid "The discussion in https://otobo.de/de/forums/topic/otrs-6-mysql-migration-to-otobo-postgresql/."
msgstr ""

#: ../content/migration-from-otrs.rst:457
msgid "5. Problems with the Deployment the Merged System Configuration"
msgstr ""

#: ../content/migration-from-otrs.rst:459
msgid "The system configuration is migrated after the database tables were migrated. In this context, migration means merging the default settings of OTOBO with the system configuration of the source OTRS system. Inconsistencies can arise in this step. An real life example is the setting ``Ticket::Frontend::AgentTicketQuickClose###State``. This setting is new in OTOBO 10 and the default value is the state ``closed successful``. But this setting is invalid when the state ``closed successful`` has been dropped or renamed in the source system. This inconsistency is detected as an error in the migration step **Migrate configuration settings**. Actually, the merged system configuration is stored in the database, but additional validity checks are performed during deployment."
msgstr ""

#: ../content/migration-from-otrs.rst:468
msgid "The problem must be alleviated manually by using OTOBO console commands."
msgstr ""

#: ../content/migration-from-otrs.rst:470
msgid "List the inconsistencies with the command ``bin/otobo.Console.pl Admin::Config::ListInvalid``"
msgstr ""

#: ../content/migration-from-otrs.rst:472
msgid "Interactively fix the invalid values with ``bin/otobo.Console.pl Admin::Config::FixInvalid``"
msgstr ""

#: ../content/migration-from-otrs.rst:474
msgid "Deploy the collected changes from migration.pl, including the deactivated **SecureMode** with ``bin/otobo.Console.pl Maint::Config::Rebuild``"
msgstr ""

#: ../content/migration-from-otrs.rst:477
msgid "After these manual steps you should be able to run ``migration.pl`` again. The migration will continue with the step where the error occurred."
msgstr ""

#: ../content/migration-from-otrs.rst:481
msgid "Step 7: Manual Migration Tasks and Changes"
msgstr ""

#: ../content/migration-from-otrs.rst:484
msgid "1. Password Policy Rules"
msgstr ""

#: ../content/migration-from-otrs.rst:486
msgid "With OTOBO 10 a new default password policy for agent and customer users is in effect, if local authentication is used. The password policy rules can be changed in the system configuration (``PreferencesGroups###Password`` and ``CustomerPersonalPreference###Password``)."
msgstr ""

#: ../content/migration-from-otrs.rst:490
msgid "Password Policy Rule"
msgstr ""

#: ../content/migration-from-otrs.rst:490
msgid "Default"
msgstr ""

#: ../content/migration-from-otrs.rst:492
msgid "``PasswordMinSize``"
msgstr ""

#: ../content/migration-from-otrs.rst:492
msgid "8"
msgstr ""

#: ../content/migration-from-otrs.rst:494
msgid "``PasswordMin2Lower2UpperCharacters``"
msgstr ""

#: ../content/migration-from-otrs.rst:494
#: ../content/migration-from-otrs.rst:496
#: ../content/migration-from-otrs.rst:504
msgid "Yes"
msgstr ""

#: ../content/migration-from-otrs.rst:496
msgid "``PasswordNeedDigit``"
msgstr ""

#: ../content/migration-from-otrs.rst:498
msgid "``PasswordHistory``"
msgstr ""

#: ../content/migration-from-otrs.rst:498
msgid "10"
msgstr ""

#: ../content/migration-from-otrs.rst:500
msgid "``PasswordTTL``"
msgstr ""

#: ../content/migration-from-otrs.rst:500
msgid "30 days"
msgstr ""

#: ../content/migration-from-otrs.rst:502
msgid "``PasswordWarnBeforeExpiry``"
msgstr ""

#: ../content/migration-from-otrs.rst:502
msgid "5 days"
msgstr ""

#: ../content/migration-from-otrs.rst:504
msgid "``PasswordChangeAfterFirstLogin``"
msgstr ""

#: ../content/migration-from-otrs.rst:508
msgid "2. Under Docker: Manually Migrate cron Jobs"
msgstr ""

#: ../content/migration-from-otrs.rst:510
msgid "In a non-Docker installation of OTOBO, there is at least one cron job which checks the health of the Daemon. Under Docker, this cron job no longer exists. Furthermore, there is no cron daemon running in any of the Docker containers. This means that you have to look for an individual solution for OTRS systems with customer-specific cron jobs (e.g., backing up the database)."
msgstr ""

#: ../content/migration-from-otrs.rst:516
msgid "Special Topics"
msgstr ""

#: ../content/migration-from-otrs.rst:519
msgid "Migration from Oracle to Oracle"
msgstr ""

#: ../content/migration-from-otrs.rst:521
msgid "For migration to Oracle the ETL-like strategy must be employed. This is because Oracle provides no easy way to temporarily turn off foreign key checks."
msgstr ""

#: ../content/migration-from-otrs.rst:524
msgid "On the OTOBO host a Oracle client and the Perl module ``DBD::Oracle`` must be installed."
msgstr ""

#: ../content/migration-from-otrs.rst:528
msgid "When using the Oracle instant client, then the optional SDK is also needed for installing ``DBD::Oracle``."
msgstr ""

#: ../content/migration-from-otrs.rst:530
msgid "There are many ways of cloning a schema. In the sample commands we use ``expdb`` and ``impdb`` which use Data Pump under the hood."
msgstr ""

#: ../content/migration-from-otrs.rst:535
msgid "The connect strings shown in this documentation refer to the case when both source and target database run in a Docker container. See also https://github.com/bschmalhofer/otobo-ideas/blob/master/oracle.md ."
msgstr ""

#: ../content/migration-from-otrs.rst:539
msgid "Clear out OTOBO"
msgstr ""

#: ../content/migration-from-otrs.rst:541
msgid "Stop the webserver for OTOBO, so that the DB connection for OTOBO is closed."
msgstr ""

#: ../content/migration-from-otrs.rst:548
msgid "Export the complete OTRS schema."
msgstr ""

#: ../content/migration-from-otrs.rst:564
msgid "Import the OTRS schema, renaming the schema to ``otobo``."
msgstr ""

#: ../content/migration-from-otrs.rst:579
msgid "Adapt the cloned schema ``otobo``:"
msgstr ""

#: ../content/migration-from-otrs.rst:588
msgid "Start the web server for OTOBO again"
msgstr ""

#: ../content/migration-from-otrs.rst:590
msgid "Proceed with step 5, that is with running ``migration.pl``."
msgstr ""

#: ../content/migration-from-otrs.rst:594
msgid "If migrating to OTOBO version greater or equal 10.1 the script ``/opt/otobo/scripts/DBUpdate-to-10.1.pl`` has to be executed, to create the tables ``stats_report`` & ``data_storage``, which were newly added in version 10.1."
msgstr ""

#: ../content/migration-from-otrs.rst:599
msgid "Optional Step: Streamlined Migration of the Database (only for Experts and Special Scenarios)"
msgstr ""

#: ../content/migration-from-otrs.rst:601
msgid "In the general migration strategy, all data in the database tables is copied row by row from the OTRS database into the OTOBO database. Exporting the data from the OTRS database and importing it into the OTOBO database might save time and is more stable in some circumstances."
msgstr ""

#: ../content/migration-from-otrs.rst:606
msgid "This variant works for both Docker-based and native installations."
msgstr ""

#: ../content/migration-from-otrs.rst:610
msgid "These instructions assume that OTRS is using MySQL as its backend."
msgstr ""

#: ../content/migration-from-otrs.rst:612
msgid "First of all, we need a dump of the needed OTRS database tables. Then we need to perform a couple of transformations:"
msgstr ""

#: ../content/migration-from-otrs.rst:615
msgid "convert the character set to ``utf8mb4``"
msgstr ""

#: ../content/migration-from-otrs.rst:616
msgid "rename a couple of tables"
msgstr ""

#: ../content/migration-from-otrs.rst:617
msgid "shorten some table columns"
msgstr ""

#: ../content/migration-from-otrs.rst:619
msgid "After the transformation we can overwrite the tables in the OTOBO schema with the transformed data from OTRS. Effectively we need not a single dump file, but several SQL scripts."
msgstr ""

#: ../content/migration-from-otrs.rst:622
msgid "When ``mysqldump`` is installed and a connection to the OTRS database is possible, you can create the database dump directly on the Docker host. This case is supported by the script ``bin/backup.pl``."
msgstr ""

#: ../content/migration-from-otrs.rst:627
msgid "This requires that an OTOBO installation is available on the Docker host."
msgstr ""

#: ../content/migration-from-otrs.rst:636
msgid "Alternatively, the database can be dumped on another server and then be transferred to the Docker host afterwards. An easy way to do this is to copy ``/opt/otobo`` to the server running OTRS and perform the same command as above."
msgstr ""

#: ../content/migration-from-otrs.rst:639
msgid "The script ``bin/backup.pl`` generates four SQL scripts in a dump directory, e.g., in ``2021-04-13_12-13-04`` In order to execute the SQL scripts, we need to run the command ``mysql``."
msgstr ""

#: ../content/migration-from-otrs.rst:642
msgid "Native installation:"
msgstr ""

#: ../content/migration-from-otrs.rst:652
msgid "Docker-based installation:"
msgstr ""

#: ../content/migration-from-otrs.rst:654
msgid "Run the command ``mysql`` within the Docker container *db* for importing the database dump files. Note that the password for the database root is now the password that has been set up in the file ``.env`` on the Docker host."
msgstr ""

#: ../content/migration-from-otrs.rst:665
msgid "For a quick check whether the import worked, you can run the following commands."
msgstr ""

#: ../content/migration-from-otrs.rst:673
msgid "When running under Docker:"
msgstr ""

#: ../content/migration-from-otrs.rst:681
msgid "The database is now migrated. This means that during the next step we can skip the database migration. Watch out for the relevant checkbox."
msgstr ""

#: ../content/performance-tuning.rst:2
msgid "Performance Tuning"
msgstr ""

#: ../content/performance-tuning.rst:4
msgid "This is a list of performance enhancing techniques for your OTOBO installation. The topics include configuration, coding, memory use, and more."
msgstr ""

#: ../content/performance-tuning.rst:9
msgid "Ticket Index Module"
msgstr ""

#: ../content/performance-tuning.rst:11
msgid "Ticket index module can be set via system configuration setting ``Ticket::IndexModule``. There are two back end modules building the index for the ticket queue view:"
msgstr ""

#: ../content/performance-tuning.rst:16
msgid "``Kernel::System::Ticket::IndexAccelerator::RuntimeDB``"
msgstr ""

#: ../content/performance-tuning.rst:15
msgid "This is the default option, which will generate each queue view on the fly from the ticket table. You will not have performance trouble until you have about 60,000 open tickets in your system."
msgstr ""

#: ../content/performance-tuning.rst:26
msgid "``Kernel::System::Ticket::IndexAccelerator::StaticDB``"
msgstr ""

#: ../content/performance-tuning.rst:19
msgid "The most powerful module, should be used when you have above 80,000 open tickets. It uses an extra ``ticket_index`` table, which will be populated with keywords based on ticket data. Use the following command for generating an initial index after switching back ends:"
msgstr ""

#: ../content/performance-tuning.rst:29
msgid "Ticket Search Index"
msgstr ""

#: ../content/performance-tuning.rst:31
msgid "OTOBO uses a special search index to perform full-text searches across fields in articles from different communication channels."
msgstr ""

#: ../content/performance-tuning.rst:33
msgid "To create an initial index, use this command:"
msgstr ""

#: ../content/performance-tuning.rst:41
msgid "Actual article indexing happens via an OTOBO daemon job in the background. While articles which were just added in the system are marked for indexing immediately, it could happen their index is available only after a few minutes."
msgstr ""

#: ../content/performance-tuning.rst:44
msgid "There are some options available for fine-tuning the search index:"
msgstr ""

#: ../content/performance-tuning.rst:49
msgid "``Ticket::SearchIndex::IndexArchivedTickets``"
msgstr ""

#: ../content/performance-tuning.rst:47
msgid "Defines if archived tickets will be included in the search index (disabled by default). This is advisable to keep the index small on large systems with archived tickets. If this is enabled, archived tickets will be found by full-text searches."
msgstr ""

#: ../content/performance-tuning.rst:73
msgid "``Ticket::SearchIndex::Attribute``"
msgstr ""

#: ../content/performance-tuning.rst:52
msgid "Basic full-text index settings."
msgstr ""

#: ../content/performance-tuning.rst:0
#: ../content/performance-tuning.rst:57
msgid "``Ticket::SearchIndex::Attribute`` Setting"
msgstr ""

#: ../content/performance-tuning.rst:61
msgid "Run the following command in order to generate a new index:"
msgstr ""

#: ../content/performance-tuning.rst:69
msgid "``WordCountMax``"
msgstr ""

#: ../content/performance-tuning.rst:68
msgid "Defines the maximum number of words which will be processed to build up the index. For example only the first 1000 words of an article body are stored in the article search index."
msgstr ""

#: ../content/performance-tuning.rst:73
msgid "``WordLengthMin`` and ``WordLengthMax``"
msgstr ""

#: ../content/performance-tuning.rst:72
msgid "Used as word length boundaries. Only words with a length between these two values are stored in the article search index."
msgstr ""

#: ../content/performance-tuning.rst:87
msgid "``Ticket::SearchIndex::Filters``"
msgstr ""

#: ../content/performance-tuning.rst:76
msgid "Filters based on regular expressions exclude parts of the original text from the full-text index."
msgstr ""

#: ../content/performance-tuning.rst:0
#: ../content/performance-tuning.rst:81
msgid "``Ticket::SearchIndex::Filters`` setting"
msgstr ""

#: ../content/performance-tuning.rst:83
msgid "There are three default filters defined:"
msgstr ""

#: ../content/performance-tuning.rst:85
msgid "The first filter strips out special chars like: ``, & < > ? \" ! * | ; [ ] ( ) + $ ^ =``"
msgstr ""

#: ../content/performance-tuning.rst:86
msgid "The second filter strips out words which begin or end with one of following chars: ``' : .``"
msgstr ""

#: ../content/performance-tuning.rst:87
msgid "The third filter strips out words which do not contain a word character: ``a-z, A-Z, 0-9, _``"
msgstr ""

#: ../content/performance-tuning.rst:105
msgid "``Ticket::SearchIndex::StopWords``"
msgstr ""

#: ../content/performance-tuning.rst:90
msgid "English stop words for full-text index. These words will be removed from the search index."
msgstr ""

#: ../content/performance-tuning.rst:0
#: ../content/performance-tuning.rst:96
msgid "``Ticket::SearchIndex::StopWords###en`` setting"
msgstr ""

#: ../content/performance-tuning.rst:98
msgid "There are so-called stop-words defined for some languages. These stop-words will be skipped while creating the search index."
msgstr ""

#: ../content/performance-tuning.rst:102
msgid "If your language is not in the system configuration settings or you want to add more words, you can add them to this setting:"
msgstr ""

#: ../content/performance-tuning.rst:104
msgid "``Ticket::SearchIndex::StopWords###Custom``"
msgstr ""

#: ../content/performance-tuning.rst:108
msgid "Document Search"
msgstr ""

#: ../content/performance-tuning.rst:110
msgid "OTOBO uses Elasticsearch for its document search functionality. For a good introduction into the concepts, installation and usage of Elasticsearch, please follow the `Getting Started guide <https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html>`__."
msgstr ""

#: ../content/performance-tuning.rst:115
msgid "Heap Size"
msgstr ""

#: ../content/performance-tuning.rst:117
msgid "Elasticsearch is written in Java and therefore runs in a Java Virtual Machine (JVM) on any cluster node. Such a JVM uses a part of the memory, called *heap*, which size can be configured in configuration file ``jvm.options``."
msgstr ""

#: ../content/performance-tuning.rst:120
msgid "The heap minimum and maximum configurations are by default set to a value of 1 GB and can be modified with the following options:"
msgstr ""

#: ../content/performance-tuning.rst:122
msgid "``Xms1g``: minimum heap size."
msgstr ""

#: ../content/performance-tuning.rst:123
msgid "``Xmx1g``: maximum heap size."
msgstr ""

#: ../content/performance-tuning.rst:125
msgid "If the ``Xms`` has a lower value than ``Xmx``, the JVM will resize the used heap anytime the current limit is exceeded, until the value of ``Xmx`` is reached. Such a resizing causes the service to pause until it is finished, which may decrease the speed and reactivity of the search or indexing actions. Therefore it is highly recommended to set those configurations to an equal value."
msgstr ""

#: ../content/performance-tuning.rst:131
msgid "If the maximum heap size is exceeded, the related cluster node stops working and might even shutdown the service."
msgstr ""

#: ../content/performance-tuning.rst:133
msgid "The higher the heap maximum value is set, the more memory can be used by Elasticsearch, which also increases the possible pauses for garbage collection, done by the JVM. Therefore it is recommended to set a value for ``Xmx``, that is not higher than 50% of the physical memory."
msgstr ""

#: ../content/performance-tuning.rst:136
msgid "For more information and good rules of thumb about the heap size, please follow `the official documentation <https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html>`__."
msgstr ""

#: ../content/performance-tuning.rst:140
msgid "Disk Allocation"
msgstr ""

#: ../content/performance-tuning.rst:142
msgid "While running the service, Elasticsearch inspects the available disk space. Based on the result, it decides whether to allocate new shards to a cluster node. In some cases it even relocates shards away from a node. This behavior is determined by the current disk capacity. It can be configured by settings in the configuration file ``elasticsearch.yml``. Here are some relevant configuration settings. They come with good default values, but might be important in trouble shooting."
msgstr ""

#: ../content/performance-tuning.rst:153
msgid "``cluster.routing.allocation.disk.watermark.low``"
msgstr ""

#: ../content/performance-tuning.rst:151
msgid "Default value of 85%. When this limit is exceeded, Elasticsearch will no longer allocate more shards to the related cluster node. The operation of that node is not influenced and data can still be indexed and searched."
msgstr ""

#: ../content/performance-tuning.rst:157
msgid "``cluster.routing.allocation.disk.watermark.high``"
msgstr ""

#: ../content/performance-tuning.rst:156
msgid "Default value of 90%. When this limit is exceeded, Elasticsearch will try to relocate existing shards to other nodes that have enough space available."
msgstr ""

#: ../content/performance-tuning.rst:164
msgid "``cluster.routing.allocation.disk.watermark.flood_stage``"
msgstr ""

#: ../content/performance-tuning.rst:160
msgid "Default value of 95%. When this limit is exceeded, Elasticsearch will update the configuration of all indices, that have at least one shard allocated to the related cluster node, to read-only index blocks. Specifically, they are flagged with ``index.blocks.read_only_allow_delete``. After that update, it is no longer possible to index new data to such indices. The indexes are restricted to searches and to delete actions only."
msgstr ""

#: ../content/performance-tuning.rst:168
msgid "If the flood stage was exceeded and certain indices are configured to read-only mode, such configuration *will not* automatically be changed by Elasticsearch. If the related disks contain enough free space again due to manual actions, it is needed to change the configuration back to normal mode manually."
msgstr ""

#: ../content/performance-tuning.rst:171
msgid "For more information about disk watermarks and disk-based shard allocation, please follow `the official documentation <https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html>`__."
msgstr ""

#: ../content/performance-tuning.rst:175
msgid "Article Storage"
msgstr ""

#: ../content/performance-tuning.rst:177
msgid "There are two different back end modules for the article storage of phone, email and internal articles. The used article storage can be configured in the setting ``Ticket::Article::Backend::MIMEBase::ArticleStorage``."
msgstr ""

#: ../content/performance-tuning.rst:186
msgid "``Kernel::System::Ticket::Article::Backend::MIMEBase::ArticleStorageDB``"
msgstr ""

#: ../content/performance-tuning.rst:181
msgid "This default module will store attachments in the database. It also works with multiple front end servers, but requires much storage space in the database."
msgstr ""

#: ../content/performance-tuning.rst:186
msgid "Don't use this with large setups."
msgstr ""

#: ../content/performance-tuning.rst:195
msgid "``Kernel::System::Ticket::Article::Backend::MIMEBase::ArticleStorageFS``"
msgstr ""

#: ../content/performance-tuning.rst:189
msgid "Use this module to store attachments on the local file system. It is fast, but if you have multiple front end servers, you must make sure the file system is shared between the servers. Place it on an NFS share or preferably a SAN or similar solution."
msgstr ""

#: ../content/performance-tuning.rst:195
msgid "Recommended for large setups."
msgstr ""

#: ../content/performance-tuning.rst:197
msgid "You can switch from one back end to the other on the fly. You can switch the back end in the system configuration, and then run this command line utility to put the articles from the database onto the file system or the other way around:"
msgstr ""

#: ../content/performance-tuning.rst:204
msgid "You can use the ``--target`` option to specify the target back end."
msgstr ""

#: ../content/performance-tuning.rst:208
msgid "The entire process can take considerable time to run, depending on the number of articles you have and the available CPU power and/or network capacity."
msgstr ""

#: ../content/performance-tuning.rst:210
msgid "If you want to keep old attachments in the database, you can activate the system configuration option ``Ticket::Article::Backend::MIMEBase::CheckAllStorageBackends`` to make sure OTOBO will still find them."
msgstr ""

#: ../content/performance-tuning.rst:214
msgid "Archiving Tickets"
msgstr ""

#: ../content/performance-tuning.rst:216
msgid "As OTOBO can be used as an audit-proof system, deleting closed tickets may not be a good idea. Therefore there is a feature that allows you to archive tickets."
msgstr ""

#: ../content/performance-tuning.rst:219
msgid "Tickets that match certain criteria can be marked as archived. These tickets are not accessed if you do a regular ticket search or run a generic agent job. The system itself does not have to deal with a huge amount of tickets any longer as only the latest tickets are taken into consideration when using OTOBO. This can result in a huge performance gain on large systems."
msgstr ""

#: ../content/performance-tuning.rst:224
msgid "To use the archive feature:"
msgstr ""

#: ../content/performance-tuning.rst:226
msgid "Activate the ``Ticket::ArchiveSystem`` setting in the system configuration."
msgstr ""

#: ../content/performance-tuning.rst:227
msgid "Define a generic agent job:"
msgstr ""

#: ../content/performance-tuning.rst:229
msgid "Click on the *Add Job* button in the *Generic Agent* screen."
msgstr ""

#: ../content/performance-tuning.rst:230
msgid "*Job Settings*: provide a name for the archiving job."
msgstr ""

#: ../content/performance-tuning.rst:231
msgid "*Automatic Execution*: select proper options to schedule this job."
msgstr ""

#: ../content/performance-tuning.rst:232
msgid "*Select Tickets*: it might be a good idea to only archive those tickets in a closed state that have been closed a few months before."
msgstr ""

#: ../content/performance-tuning.rst:233
msgid "*Update/Add Ticket Attributes*: set the field *Archive selected tickets* to *archive tickets*."
msgstr ""

#: ../content/performance-tuning.rst:234
msgid "Save the job at the end of the page."
msgstr ""

#: ../content/performance-tuning.rst:235
msgid "Click on the *Run this task* link in the overview table to see the affected tickets."
msgstr ""

#: ../content/performance-tuning.rst:236
msgid "Click on the *Run Job* button."
msgstr ""

#: ../content/performance-tuning.rst:240
msgid "Up to 5000 tickets can be modified by running this job manually."
msgstr ""

#: ../content/performance-tuning.rst:242
msgid "When you search for tickets, the system default is to search tickets which are not archived."
msgstr ""

#: ../content/performance-tuning.rst:244
msgid "To search for archived tickets:"
msgstr ""

#: ../content/performance-tuning.rst:246
msgid "Open the ticket search screen."
msgstr ""

#: ../content/performance-tuning.rst:247
msgid "Set *Archive search* to *Unarchived tickets* or *All tickets*."
msgstr ""

#: ../content/performance-tuning.rst:248
msgid "Perform the search."
msgstr ""

#: ../content/performance-tuning.rst:252
msgid "Caching"
msgstr ""

#: ../content/performance-tuning.rst:254
msgid "A fast cache module is a great help in terms of performance. In sepcial cases it might be applicable to use Redis for caching."
msgstr ""

#: ../content/performance-tuning.rst:258
msgid "Install a Redis Cache Server"
msgstr ""

#: ../content/performance-tuning.rst:260
msgid "The following chapter describes the installation and configuration of Redis on either Docker-based or native installations."
msgstr ""

#: ../content/performance-tuning.rst:263
msgid "1. Install Redis Server"
msgstr ""

#: ../content/performance-tuning.rst:265
msgid "First of all you need to install the Redis Server."
msgstr ""

#: ../content/performance-tuning.rst:267
msgid "On native installations, `setup Redis <https://redis.io/topics/quickstart>`__ on the same host as OTOBO and binding it to its default port."
msgstr ""

#: ../content/performance-tuning.rst:269
msgid "When using OTOBO Docker the Redis service is provided in an override at ``docker-compose/caching/redis.yml``. In order to add it to your Docker Compose Stack you have to include it in the ``COMPOSE_FILE`` environment variable. Append it to the end of the ':'-separated list. Change the variable in the ``/opt/otobo-docker/.env`` env file."
msgstr ""

#: ../content/performance-tuning.rst:283
msgid "After this the compose stack needs to be restarted."
msgstr ""

#: ../content/performance-tuning.rst:292
msgid "1. Install Perl Module"
msgstr ""

#: ../content/performance-tuning.rst:296
msgid "Docker users can skip this part as the module is already included in the provided image."
msgstr ""

#: ../content/performance-tuning.rst:298
msgid "Either ``Redis`` or ``Redis::Fast`` (recommend, **~2x faster**) have to be installed. Use ``otobo.CheckModules.pl --list`` to choose the right package for you:"
msgstr ""

#: ../content/performance-tuning.rst:306
msgid "1. Configure OTOBO for Redis"
msgstr ""

#: ../content/performance-tuning.rst:308
msgid "Use the OTOBO `SysConfig` (Admin -> System Configuration) to configure OTOBO properly:"
msgstr ""

#: ../content/performance-tuning.rst:321
msgid "Ramdisk Caching"
msgstr ""

#: ../content/performance-tuning.rst:323
msgid "OTOBO caches a lot of temporary data in ``/opt/otobo/var/tmp``. Please make sure that this uses a high performance file system and storage. If you have enough RAM, you can also try to put this directory on a ramdisk like this:"
msgstr ""

#: ../content/performance-tuning.rst:335
msgid "Add persistent mount point in ``/etc/fstab``."
msgstr ""

#: ../content/performance-tuning.rst:339
msgid "This will be a non-permanent storage that will be lost on server reboot. All your sessions (if you store them in the file system) and your cache data will be lost."
msgstr ""

#: ../content/performance-tuning.rst:343
msgid "Clustering"
msgstr ""

#: ../content/performance-tuning.rst:345
msgid "For very high loads, it can be required to operate OTOBO on a cluster of multiple front end servers. This is a complex task with many pitfalls. We strongly advise to get in touch with our experts before trying to implement this on your own."
msgstr ""

#: ../content/requirements.rst:2
msgid "Hardware and Software Requirements"
msgstr ""

#: ../content/requirements.rst:4
msgid "The OTOBO web application can be installed on Linux and other Unix derivatives, e.g., OpenBSD or FreeBSD. Running OTOBO on Microsoft Windows is not supported."
msgstr ""

#: ../content/requirements.rst:7
msgid "The web application uses a relational database as backend. So, to run OTOBO, you'll need to run at least a web server and a database server. The web server and the database server may be installed either on the same or on different hosts."
msgstr ""

#: ../content/requirements.rst:11
msgid "Alternatively, OTOBO can also run under Docker. When running under Docker, the web and the database server are already included in the setup. Support for deployment with Kubernetes is under development."
msgstr ""

#: ../content/requirements.rst:15
msgid "The OTOBO web application requires Perl along with additional Perl modules from CPAN. The modules can be installed either with a Perl package manager or via the package manager of your operating system (``rpm``, ``yast``, ``apt``). There is a console command for checking the module dependencies:"
msgstr ""

#: ../content/requirements.rst:23
msgid "If some packages are missing, you can get an install command for your operating system by running the script with the ``--list`` option."
msgstr ""

#: ../content/requirements.rst:29
msgid "The listed commands should then be executed with root privileges."
msgstr ""

#: ../content/requirements.rst:31
msgid "The output of the module check script shows the installed packages and the version numbers. Missing modules are marked with a comment."
msgstr ""

#: ../content/requirements.rst:107
msgid "Hardware Requirements"
msgstr ""

#: ../content/requirements.rst:109
msgid "Hardware requirements highly depend on the usage of OTOBO. OTOBO can be used to process a few tickets per month or to process hundreds of tickets per day. The storage requirement also depends on the number of tickets and size of attachments."
msgstr ""

#: ../content/requirements.rst:113
msgid "We recommend using a machine for testing purposes with **at least**:"
msgstr ""

#: ../content/requirements.rst:115
msgid "small CPU"
msgstr ""

#: ../content/requirements.rst:116
msgid "4 GB RAM"
msgstr ""

#: ../content/requirements.rst:117
msgid "10 GB storage"
msgstr ""

#: ../content/requirements.rst:119
msgid "We recommend using a machine for production purpose with **at least**:"
msgstr ""

#: ../content/requirements.rst:121
msgid "3 GHz Xeon or comparable CPU"
msgstr ""

#: ../content/requirements.rst:122
msgid "8 GB RAM (16 GB recommended)"
msgstr ""

#: ../content/requirements.rst:123
msgid "40 GB storage"
msgstr ""

#: ../content/requirements.rst:127
msgid "Hardware requirements depend on the usage of OTOBO. Please contact your OTOBO consultant before deploying any hardware."
msgstr ""

#: ../content/requirements.rst:131
msgid "Software requirements"
msgstr ""

#: ../content/requirements.rst:135
msgid "Perl"
msgstr ""

#: ../content/requirements.rst:134
msgid "Perl 5.26.0 or higher"
msgstr ""

#: ../content/requirements.rst:135
msgid "Perl packages listed by ``/opt/otobo/bin/otobo.CheckModules.pl --list`` console command"
msgstr ""

#: ../content/requirements.rst:138
msgid "Web Server"
msgstr ""

#: ../content/requirements.rst:138
msgid "Nginx HTTP Server Version 1.24 or higher"
msgstr ""

#: ../content/requirements.rst:144
msgid "Databases"
msgstr ""

#: ../content/requirements.rst:141
msgid "MariaDB 10.11 or higher (recommended)"
msgstr ""

#: ../content/requirements.rst:142
msgid "MySQL 8.4 or higher"
msgstr ""

#: ../content/requirements.rst:143
msgid "PostgreSQL 13 or higher"
msgstr ""

#: ../content/requirements.rst:144
msgid "Oracle 19c or higher"
msgstr ""

#: ../content/requirements.rst:148
msgid "Optional"
msgstr ""

#: ../content/requirements.rst:147
msgid "Elasticsearch 7.x (fast search function for live previews)"
msgstr ""

#: ../content/requirements.rst:148
msgid "Redis (caching)"
msgstr ""

#: ../content/requirements.rst:154
msgid "Web browsers"
msgstr ""

#: ../content/requirements.rst:151
msgid "Apple Safari"
msgstr ""

#: ../content/requirements.rst:152
msgid "Google Chrome"
msgstr ""

#: ../content/requirements.rst:153
msgid "Microsoft Edge"
msgstr ""

#: ../content/requirements.rst:154
msgid "Mozilla Firefox"
msgstr ""

#: ../content/requirements.rst:155
msgid "Any other modern web browser with JavaScript support"
msgstr ""

#: ../content/sso-kerberos.rst:2
msgid "Kerberos Single Sign On in OTOBO Docker installation"
msgstr ""

#: ../content/sso-kerberos.rst:4
msgid "Please read to the chapter :doc:`installation/installation-docker` for basic information about installing and configure OTOBO. This tutorial assumes that OTOBO has been installed and configured using Docker."
msgstr ""

#: ../content/sso-kerberos.rst:9
msgid "In the following, we will refer from AD (Active Directory), of course the Kerberos configuration is also possible under LDAP."
msgstr ""

#: ../content/sso-kerberos.rst:13
msgid "Generate Active Directory User"
msgstr ""

#: ../content/sso-kerberos.rst:15
msgid "Please create a new Active Directory User with the following settings and save the marked settings:"
msgstr ""

#: ../content/sso-kerberos.rst:19
msgid "Please use as Username only this syntax: ``HTTP/fqdn.from.your.otobo.de``. ``fqdn.from.your.otobo.de`` needs to be a A-Record DNS entry, not a CNAME! In the next step, it is also possible to use other URLs for OTOBO, they must then point as CNAME to our A-record defined above."
msgstr ""

#: ../content/sso-kerberos.rst:23
msgid "The username part ``HTTP/`` should be written in capital letters, as Kerberos expects it that way."
msgstr ""

#: ../content/sso-kerberos.rst:25
msgid "The password doesn't work properly with some special characters (e.g. '&')."
msgstr ""

#: ../content/sso-kerberos.rst:27
msgid "You have to create a separate AD-user. You can not use the one that you already use for your LDAP/AD sync."
msgstr ""

#: ../content/sso-kerberos.rst:-1
msgid "Active Directory User configuration"
msgstr ""

#: ../content/sso-kerberos.rst:35
msgid "Generate Active Directory Keytab file"
msgstr ""

#: ../content/sso-kerberos.rst:37
msgid "In the next step, we connect to a domain controller of the Active Directory and open a console (cmd) there with administrator privileges. Now we use the tool ``ktpass.exe`` to generate the needed keytab file:"
msgstr ""

#: ../content/sso-kerberos.rst:45
msgid "``-princ = HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL`` → Picture Number 1 and 2"
msgstr ""

#: ../content/sso-kerberos.rst:46
msgid "``-mapuser = OTRS\\otrs32-centos6  (Username prä Win 2000)`` → Picture Number 3 and 4"
msgstr ""

#: ../content/sso-kerberos.rst:47
msgid "``-pass = Password`` → from user otrs32-centos6 (Active Directory User)"
msgstr ""

#: ../content/sso-kerberos.rst:48
msgid "``-out = c:/krb5.keytab`` → storage location for the generated keytab file"
msgstr ""

#: ../content/sso-kerberos.rst:52
msgid "Please write the domain (``@OTRS.LOCAL``) always in capital letters. The password must not contain some special characters."
msgstr ""

#: ../content/sso-kerberos.rst:55
msgid "In the next step please move the ``krb5.keytab`` file to the OTOBO Server:"
msgstr ""

#: ../content/sso-kerberos.rst:66
msgid "Create a new Volume for Your Custom Nginx Configuration"
msgstr ""

#: ../content/sso-kerberos.rst:79
msgid "Create new OTOBO .env File"
msgstr ""

#: ../content/sso-kerberos.rst:81
msgid "First of all we need to move the old file ``/opt/otobo-docker/.env`` to ``.env.tmp`` and create a new ``.env`` file including the kerberos settings."
msgstr ""

#: ../content/sso-kerberos.rst:95
msgid "Now copy your existing configuration options to the new ``.env`` file (at least ``OTOBO_DB_ROOT_PASSWORD``, ``OTOBO_NGINX_SSL_CERTIFICATE``, ``OTOBO_NGINX_SSL_CERTIFICATE_KEY``) and insert the following Kerberos settings:"
msgstr ""

#: ../content/sso-kerberos.rst:124
msgid "Start OTOBO"
msgstr ""

#: ../content/sso-kerberos.rst:126
msgid "After the initial Kerberos configuration we start OTOBO again:"
msgstr ""

#: ../content/sso-kerberos.rst:135
msgid "Tell OTOBO to use the Kerberos-Authentication"
msgstr ""

#: ../content/sso-kerberos.rst:137
msgid "In case you have configured AD-Authentication, de-activate it (e.g. by commenting out the respective lines from your Kernel/Config.pm). The authentication will not take place via LDAP anymore."
msgstr ""

#: ../content/sso-kerberos.rst:140
msgid "To use Kerberos-Authentication take the Kerberos-lines from Kernel/Config/Defaults.pm and put it into you Kernel/Config.pm E.g. these lines could work:"
msgstr ""

#: ../content/sso-kerberos-native.rst:345
#: ../content/sso-kerberos.rst:153
msgid "Configure Browser to Understand Kerberos SSO"
msgstr ""

#: ../content/sso-kerberos.rst:155
msgid "For SSO to work, the browser must be configured accordingly."
msgstr ""

#: ../content/sso-kerberos.rst:157
msgid "**Chrome, Edge, Internet Explorer, etc.**"
msgstr ""

#: ../content/sso-kerberos.rst:159
msgid "Add page under local or trusted pages and activate 'Integrated Windows Authentication' (Internet Options)."
msgstr ""

#: ../content/sso-kerberos.rst:161
msgid "**Firefox**"
msgstr ""

#: ../content/sso-kerberos.rst:163
msgid "Enter \"about:config\" in the firefox address line"
msgstr ""

#: ../content/sso-kerberos.rst:165
msgid "and change the following settings:"
msgstr ""

#: ../content/sso-kerberos.rst:174
msgid "Debugging and Problems"
msgstr ""

#: ../content/sso-kerberos.rst:176
msgid "If the Kerberos SSO does not work, please check first if the NGINX container is started:"
msgstr ""

#: ../content/sso-kerberos.rst:184
msgid "In the next step please check the NGINX logs for more information:"
msgstr ""

#: ../content/sso-kerberos.rst:192
msgid "If NGINX is running, please login into the NGINX Container and check all needed files:"
msgstr ""

#: ../content/sso-kerberos.rst:207
msgid "Kerberos Debugging"
msgstr ""

#: ../content/sso-kerberos.rst:214
msgid "Now you are able to debug the Kerberos settings. Examples:"
msgstr ""

#: ../content/sso-kerberos.rst:230
msgid "In case you stumble upon the issue that apparently the authentication works but the agent is not yet in the database, then your sync (if implemented) might not work. An error 52e (First bind failed) indicates that something is wrong with your Search User. This happens if you use the same user for the AD sync and as a SSO user. Please use separate AD users for that. In order to not have to create a new keytab and having to repeat the steps mentioned above, it could be easier to create a new user to use in your AD sync (probably in your ``Kernel/Config.pm``)."
msgstr ""

#: ../content/sso-kerberos.rst:236
msgid "In case SSO is not working properly, make sure: * the user for which it is not working is in Active Directory * the system has to be in the domain * it is properly stated as a trusted page (see 'Configure Browser to understand Kerberos SSO')"
msgstr ""

#: ../content/sso-kerberos-native.rst:2
msgid "Kerbeos Single Sign On for OTOBO Native Installation"
msgstr ""

#: ../content/sso-kerberos-native.rst:4
msgid "In this instruction we setup the"
msgstr ""

#: ../content/sso-kerberos-native.rst:6
msgid "Active Directory"
msgstr ""

#: ../content/sso-kerberos-native.rst:7
msgid "OTOBO Linux server"
msgstr ""

#: ../content/sso-kerberos-native.rst:8
msgid "User browser setup"
msgstr ""

#: ../content/sso-kerberos-native.rst:10
msgid "to ensure the AD user seamless authorization into OTOBO."
msgstr ""

#: ../content/sso-kerberos-native.rst:14
msgid "Please read the chapter :doc:`installation` for basic information about installing and configure OTOBO. This manual assumes that OTOBO has been installed and configured using Nginx."
msgstr ""

#: ../content/sso-kerberos-native.rst:19
msgid "Kerberos SSO Overview"
msgstr ""

#: ../content/sso-kerberos-native.rst:21
msgid "To avoid manual creation of Agents accounts, OTOBO allows users and agents to login in OTOBO using their AD credentials."
msgstr ""

#: ../content/sso-kerberos-native.rst:25
msgid "For agents LDAP auth backend example, in ``Kernel/Config/Defaults.pm`` search"
msgstr ""

#: ../content/sso-kerberos-native.rst:27
msgid "``$Self->{'AuthModule'} = 'Kernel::System::Auth::Sync::LDAP';``"
msgstr ""

#: ../content/sso-kerberos-native.rst:31
msgid "We can do even better and authenticate users and agents fully automatically, skipping the login screen entirely. This is called *Single Sign-On* (SSO) and could be done using Kerberos protocol."
msgstr ""

#: ../content/sso-kerberos-native.rst:36
msgid "The SSO setup with Kerberos is quite complex. You may stay with LDAP and avoid all the headache."
msgstr ""

#: ../content/sso-kerberos-native.rst:41
msgid "SSO Authentication Process Overview"
msgstr ""

#: ../content/sso-kerberos-native.rst:43
msgid "user logins into windows using his AD credentials"
msgstr ""

#: ../content/sso-kerberos-native.rst:44
msgid "user opens OTOBO website with a browser"
msgstr ""

#: ../content/sso-kerberos-native.rst:45
msgid "browser and webserver do some `Kerbeos crypto-magic <https://en.wikipedia.org/wiki/Kerberos_(protocol)#Client_Service_Authorization>`_"
msgstr ""

#: ../content/sso-kerberos-native.rst:46
msgid "browser pass the name of the authorized user to OTOBO"
msgstr ""

#: ../content/sso-kerberos-native.rst:47
msgid "OTOBO trust the username passed in the ``REMOTE_USER`` environment variable or the ``Remote-User`` HTTP header and skips the login screen"
msgstr ""

#: ../content/sso-kerberos-native.rst:51
msgid "Kerberos SSO Setup"
msgstr ""

#: ../content/sso-kerberos-native.rst:53
msgid "In our example OTOBO runs at https://otobo.company.com/ . AD controller should be able to reach the OTOBO service by its name using DNS A-Record!"
msgstr ""

#: ../content/sso-kerberos-native.rst:56
msgid "AD domain name is \"DOMAIN\" (because it may differ from \"COMPANY.COM\")."
msgstr ""

#: ../content/sso-kerberos-native.rst:58
msgid "OTOBO is a service in Kerberos terminology Service communicates with AD using a service account. Let service account name be \"serviceaccount\"."
msgstr ""

#: ../content/sso-kerberos-native.rst:63
msgid "Active Directory Settings"
msgstr ""

#: ../content/sso-kerberos-native.rst:65
msgid "Login on AD controller under administrator. Open \"Active Directory Users and Computers\" application. Inside the Users container, create a new account:"
msgstr ""

#: ../content/sso-kerberos-native.rst:69
msgid "User logon name (warning - here are two fields): ``HTTP/otobo.company.com`` ``@DOMAIN.COM``"
msgstr ""

#: ../content/sso-kerberos-native.rst:70
msgid "user logon name (pre Windows 2000) (two fields): ``DOMAIN\\`` ``serviceaccount``"
msgstr ""

#: ../content/sso-kerberos-native.rst:73
msgid "in account options: set checkbox on:"
msgstr ""

#: ../content/sso-kerberos-native.rst:72
msgid "``this account supports Kerberos-AES-128``"
msgstr ""

#: ../content/sso-kerberos-native.rst:73
msgid "``this account supports Kerberos-AES-256``"
msgstr ""

#: ../content/sso-kerberos-native.rst:75
msgid "Register an *Service Principal Name* (SPN) for the OTOBO service. Open a terminal and run:"
msgstr ""

#: ../content/sso-kerberos-native.rst:82
msgid "Check that SPN has been added. Distinguished Name - that includes ``CN``, ``DC``, ``OU`` - can be different depending from your AD structure. Important is that you see your service principal name (``HTTP/...``)."
msgstr ""

#: ../content/sso-kerberos-native.rst:94
msgid "Generate Keytab File"
msgstr ""

#: ../content/sso-kerberos-native.rst:98
msgid "Keytab is a cryptographic file containing a representation of the service and its long-term key as it exists in the directory service. In our Active Directory domain, keytab file will be used by the Webserver (that runs on Linux) to authenticate users against AD via Kerberos protocol."
msgstr ""

#: ../content/sso-kerberos-native.rst:101
msgid "Login into AD under domain administrator account and generate keytab file using ``ktpass``:"
msgstr ""

#: ../content/sso-kerberos-native.rst:109
msgid "Setup Kerberos Client on the OTOBO Server"
msgstr ""

#: ../content/sso-kerberos-native.rst:111
msgid "Copy the keytab file from the AD controller to the OTOBO server:"
msgstr ""

#: ../content/sso-kerberos-native.rst:117
msgid "Login on the Linux server and install Kerberos client libraries:"
msgstr ""

#: ../content/sso-kerberos-native.rst:125
msgid "``DEBIAN_FRONTEND=noninteractive`` is required to skip inital keytab configuration since the keytab file is configured manually."
msgstr ""

#: ../content/sso-kerberos-native.rst:127
msgid "Now check the keytab file content:"
msgstr ""

#: ../content/sso-kerberos-native.rst:141
msgid "Configure your domain in ``/etc/krb5.conf``:"
msgstr ""

#: ../content/sso-kerberos-native.rst:164
msgid "Then try to obtain a *ticket-granting ticket* (TGT) from AD:"
msgstr ""

#: ../content/sso-kerberos-native.rst:172
msgid "This is a correct answer. Goto webserver section."
msgstr ""

#: ../content/sso-kerberos-native.rst:176
msgid "Error: No Suitable Keys for Service"
msgstr ""

#: ../content/sso-kerberos-native.rst:183
msgid "Double check your ``kinit`` arguments. If arguments are correct, but you still got this error, the keytab may have an incorrect SPN inside."
msgstr ""

#: ../content/sso-kerberos-native.rst:186
msgid "List the SPN entries in keytab: ``klist -kte krb5.keytab``."
msgstr ""

#: ../content/sso-kerberos-native.rst:188
msgid "The list should contain exact principal (service account) name (+ AD domain name), that you have registered in AD, e.g."
msgstr ""

#: ../content/sso-kerberos-native.rst:194
msgid "If not, you probably had mistyped the ``ktpass`` command arguments and have to regenerate the keytab file."
msgstr ""

#: ../content/sso-kerberos-native.rst:197
msgid "Error: Client not Found in Kerberos"
msgstr ""

#: ../content/sso-kerberos-native.rst:204
msgid "This error happens when:"
msgstr ""

#: ../content/sso-kerberos-native.rst:206
msgid "service user name (serviceaccount) in keytab file and in AD are different"
msgstr ""

#: ../content/sso-kerberos-native.rst:207
msgid "service user password from keytab file and AD differs"
msgstr ""

#: ../content/sso-kerberos-native.rst:208
msgid "if serviceaccount password has been changed in AD - regenerate the keytab file"
msgstr ""

#: ../content/sso-kerberos-native.rst:209
msgid "SPN (Service Principal Name) was not registered or differs from the Principal name in the keytab file."
msgstr ""

#: ../content/sso-kerberos-native.rst:211
msgid "Check if SPN is registered for \"serviceaccount\" - under AD user on windows run ``setspn -L DOMAIN\\serviceaccount``"
msgstr ""

#: ../content/sso-kerberos-native.rst:213
msgid "The output SPN should match with the output of ``klist -kte krb5.keytab``"
msgstr ""

#: ../content/sso-kerberos-native.rst:216
msgid "Nginx with Kerberos SSO and SSL"
msgstr ""

#: ../content/sso-kerberos-native.rst:220
msgid "If Nginx is not already up and running refer to `Otobo basic installation manual <https://doc.otobo.org/manual/installation/11.1/en/content/installation.html>`_"
msgstr ""

#: ../content/sso-kerberos-native.rst:222
msgid "Install required Nginx modules:"
msgstr ""

#: ../content/sso-kerberos-native.rst:228
msgid "Ensure that the file permissions for ``/etc/krb5.keytab`` are set correctly:"
msgstr ""

#: ../content/sso-kerberos-native.rst:237
msgid "The name of the webserver group can change depending on your OS. For SUSE and Red Hat/CentOS/Fedora it is called ``nginx``. On Debian and Ubuntu ``www-data``."
msgstr ""

#: ../content/sso-kerberos-native.rst:240
msgid "The following Nginx config file ``/etc/nginx/sites-available/nginx.conf`` should replace your previous default config file. It should contain the this content:"
msgstr ""

#: ../content/sso-kerberos-native.rst:311
msgid "Make sure to replace ``ssl_certificate`` and ``ssl_certificate_key`` with your custom ssl configuration. Adjust ``auth_gss_service_name`` and ``auth_gss_realm`` with values depending on your Kerberos Realm setup."
msgstr ""

#: ../content/sso-kerberos-native.rst:314
msgid "If you have the old Nginx configuration for Otobo - don't forget to disable it."
msgstr ""

#: ../content/sso-kerberos-native.rst:316
msgid "Enable our website"
msgstr ""

#: ../content/sso-kerberos-native.rst:323
msgid "Ensure the webserver sends a proper header, that invites browser to use Kerberos authentication:"
msgstr ""

#: ../content/sso-kerberos-native.rst:330
msgid "output should have a following header:"
msgstr ""

#: ../content/sso-kerberos-native.rst:330
msgid "``WWW-Authenticate: Negotiate …``"
msgstr ""

#: ../content/sso-kerberos-native.rst:333
msgid "Otobo Configuration"
msgstr ""

#: ../content/sso-kerberos-native.rst:335
msgid "To make Otobo trust the username passed by the webserver (in the ``REMOTE_USER`` environment variable or the ``Remote-User`` HTTP header) and skip the login screen, you have to enable a ``HTTPBasicAuth`` auth backend in the Otobo configuration ``Kernel/Config.pm``:"
msgstr ""

#: ../content/sso-kerberos-native.rst:338
msgid "for agents: ``$Self->{AuthModule} = 'Kernel::System::Auth::HTTPBasicAuth`` (instead of LDAP)"
msgstr ""

#: ../content/sso-kerberos-native.rst:339
msgid "for users: ``$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';``"
msgstr ""

#: ../content/sso-kerberos-native.rst:341
msgid "You still can use LDAP to populate Users data from the AD, as it is described in the corresponding sections of``Kernel/Config/Defaults.pm``"
msgstr ""

#: ../content/sso-kerberos-native.rst:347
msgid "In the browser address line, open ``about:config`` and change the following settings:"
msgstr ""

#: ../content/updating.rst:2
msgid "Updating"
msgstr ""

#: ../content/updating.rst:4
msgid "This document describes the procedure for upgrading an existing OTOBO 11.0 to 11.1. However, the same procedure can be used for patch level updates, e.g., 11.1.0 to 11.1.1. Just omit the steps not relevant for patch level updates."
msgstr ""

#: ../content/updating.rst:11
msgid "It is highly recommended to perform a test update on a separate testing machine first."
msgstr ""

#: ../content/updating.rst:15
msgid "To prepare required Perl modules beforehand, you can already download and unzip the new OTOBO version and execute the check modules script, e.g. with the following command (please adjust the file path). This is not necessary in a regular installation and will be part of the later update instruction."
msgstr ""

#: ../content/updating.rst:24
msgid "On Ubuntu/Debian systems you have to manually install some Perl packages before upgrading to 11.1."
msgstr ""

#: ../content/updating-docker.rst:35
#: ../content/updating.rst:31
msgid "For OTOBO 11.1, the following packages are being migrated automatically to the framework. This means that no separate package is necessary and they will be part of OTOBO by default."
msgstr ""

#: ../content/updating-docker.rst:38
#: ../content/updating.rst:34
msgid "CK5-FullWindowMode"
msgstr ""

#: ../content/updating-docker.rst:39
#: ../content/updating.rst:35
msgid "CustomerAgeShowCreated"
msgstr ""

#: ../content/updating-docker.rst:40
#: ../content/updating.rst:36
msgid "CustomerTicketSearch"
msgstr ""

#: ../content/updating-docker.rst:41
#: ../content/updating.rst:37
msgid "Elasticsearch-Extension"
msgstr ""

#: ../content/updating-docker.rst:42
#: ../content/updating.rst:38
msgid "ExtendedArticleEdit"
msgstr ""

#: ../content/updating-docker.rst:43
#: ../content/updating.rst:39
msgid "HideShowForAgentTicketCompose"
msgstr ""

#: ../content/updating-docker.rst:44
#: ../content/updating.rst:40
msgid "ImportExportCustomerCompany"
msgstr ""

#: ../content/updating-docker.rst:45
#: ../content/updating.rst:41
msgid "ImportExportStandardObjects"
msgstr ""

#: ../content/updating-docker.rst:46
#: ../content/updating.rst:42
msgid "ImportExportTicket"
msgstr ""

#: ../content/updating-docker.rst:49
#: ../content/updating.rst:43
msgid "PostMasterXFromHeader"
msgstr ""

#: ../content/updating-docker.rst:50
#: ../content/updating.rst:44
msgid "ProcessTicketTemplates"
msgstr ""

#: ../content/updating-docker.rst:51
#: ../content/updating.rst:45
msgid "RestorePendingInformation"
msgstr ""

#: ../content/updating-docker.rst:52
#: ../content/updating.rst:46
msgid "RotherOSS-AccountedTimeInViews"
msgstr ""

#: ../content/updating-docker.rst:53
#: ../content/updating.rst:47
msgid "TicketUpdateOperationExternalIdentifier"
msgstr ""

#: ../content/updating-docker.rst:47
#: ../content/updating.rst:48
msgid "OAuth2"
msgstr ""

#: ../content/updating-docker.rst:48
#: ../content/updating.rst:49
msgid "OAuth2-Mail"
msgstr ""

#: ../content/updating.rst:50
msgid "Elasticsearch-FAQ"
msgstr ""

#: ../content/updating-docker.rst:56
#: ../content/updating.rst:53
msgid "The optional 11.0 package 'MailAccount-OAuth2' is obsolete and replaced by new functionality in OTOBO core. It will not be uninstalled during migration to OTOBO 11.1. It will be listed as not fully installed. This will allow you to migrate configuration from the old package to new core functionality. You need to uninstall the package manually after migration."
msgstr ""

#: ../content/updating.rst:61
msgid "Step 1: Stop All Relevant Services and the OTOBO Daemon"
msgstr ""

#: ../content/updating.rst:63
msgid "Please make sure there are no more running services or Cron jobs that try to access OTOBO. This will depend on your service configuration."
msgstr ""

#: ../content/updating.rst:72
msgid "Now you need to be stopping the OTOBO core services depending on your configuration."
msgstr ""

#: ../content/updating.rst:75
msgid "Option A: Systemd Unit Files Configured"
msgstr ""

#: ../content/updating.rst:77
msgid "If you have already migrated to Systemd unit files in the past the following line can be used:"
msgstr ""

#: ../content/updating.rst:85
msgid "Option B: Systemd Unit Files **NOT** Configured"
msgstr ""

#: ../content/updating.rst:87
msgid "Otherwise stop OTOBO Cron jobs and the daemon manually (in this order):"
msgstr ""

#: ../content/updating.rst:97
msgid "Step 2: Backup Files and Database"
msgstr ""

#: ../content/updating.rst:99
msgid "Create a backup of the hole ``/opt/otobo`` directory and the database."
msgstr ""

#: ../content/updating.rst:102
msgid "Example for a Standard Installation with Ubuntu and MySQL"
msgstr ""

#: ../content/updating.rst:111
msgid "Please check whether all files are valid."
msgstr ""

#: ../content/updating.rst:115
msgid "Do not proceed without a complete backup of your system. You can also use the :doc:`backup-restore` script for this."
msgstr ""

#: ../content/updating.rst:119
msgid "Step 3: Install the new Release"
msgstr ""

#: ../content/updating.rst:121
msgid "Download the latest OTOBO release from https://ftp.otobo.org/pub/otobo/ and unpack the source archive (for example, using ``tar``) into the directory ``/opt/otobo-update``:"
msgstr ""

#: ../content/updating.rst:132
msgid "Restore Old Configuration Files"
msgstr ""

#: ../content/updating.rst:134
msgid "We need only copy the file ``Kernel/Config.pm`` in OTOBO 11."
msgstr ""

#: ../content/updating.rst:143
msgid "Restore Article Data"
msgstr ""

#: ../content/updating.rst:145
msgid "If you configured OTOBO to store article data in the file system, restore the ``article`` folder to ``/opt/otobo/var/`` or the folder specified in the system configuration."
msgstr ""

#: ../content/updating.rst:154
msgid "Restore Already Installed Default Statistics"
msgstr ""

#: ../content/updating.rst:156
msgid "If you have additional packages with default statistics, restore the stats XML files with the suffix ``*.installed`` to ``/opt/otobo/var/stats``."
msgstr ""

#: ../content/updating.rst:165
msgid "Set File Permissions"
msgstr ""

#: ../content/updating.rst:167
msgid "Execute the following command to set the file and directory permissions for OTOBO. It will try to detect the correct user and group settings needed for your setup."
msgstr ""

#: ../content/updating.rst:175
#: ../content/updating.rst:246
msgid "Check Webserver Configuration Files"
msgstr ""

#: ../content/updating.rst:177
msgid "Newer versions of OTOBO may need you to adjust the webserver configuration. From version 11.0 onwards we moved from PSGI to native Nginx. We provide Nginx templates at ``scripts/nginx-vhost-443.include.conf`` and ``scripts/nginx-vhost-80.include.conf``."
msgstr ""

#: ../content/updating.rst:183
msgid "Step 4: Check for New Needed Perl Modules"
msgstr ""

#: ../content/updating.rst:185
msgid "OTOBO needs new cpan packages for some version jumps. Please make sure to install all required packages and modules listed at the beginning of this article and the listed packages from the command below."
msgstr ""

#: ../content/updating.rst:193
msgid "Step 5: Only for Minor or Major Release Upgrades (e.g., 11.0 to 11.1)"
msgstr ""

#: ../content/updating.rst:201
msgid "Step 6: Update Installed Packages and Reconfigure Config"
msgstr ""

#: ../content/updating.rst:203
msgid "You can use the command below to update all installed packages. This works for all packages that are available from online repositories. You can update other packages later via the package manager (this requires a running OTOBO daemon)."
msgstr ""

#: ../content/updating.rst:218
msgid "Step 7: Deploy new Systemd Service Files (Optional)"
msgstr ""

#: ../content/updating.rst:220
msgid "Since OTOBO 11.1 it is recommended for native installations to run their OTOBO web service and OTOBO daemon using Systemd unit files. This way the OTOBO services are becoming easier to manage and more tightly integrated into the hosts operating stack. In addition, they significantly simplify the troubleshooting experience."
msgstr ""

#: ../content/updating.rst:224
msgid "If you are not sure if the unit files are already implemented you can use the following command to check."
msgstr ""

#: ../content/updating.rst:231
msgid "If the services are showing up this step can be skipped."
msgstr ""

#: ../content/updating.rst:233
msgid "To make sure that these files are visible to the system they need to be copied to a valid Systemd directory. In this example we will be using ``/etc/systemd/system``."
msgstr ""

#: ../content/updating.rst:242
msgid "After the ``daemon-reload`` all services should be controllable using Systemd control service like ``systemctl``."
msgstr ""

#: ../content/updating.rst:248
msgid "The new Systemd unit files are now relying on Gazelle webserver which means that the previous Apache webserver configs with the modperl plugin will not work anymore. The new Gazelle webserver binds the OTOBO webservice internally on port 5000. Opening this port to the public and handling SSL has to be done by an external reverse proxy. It is still possible to use Apache webserver to do this job but we strongly recommend switching to Nginx since it provides more modern features and Nginx syntax will also be used for all templates in the future."
msgstr ""

#: ../content/updating.rst:253
msgid "To migrate to Nginx the old webserver has to be removed first."
msgstr ""

#: ../content/updating.rst:259
msgid "In the next step Nginx has to be installed and configured."
msgstr ""

#: ../content/updating.rst:265
msgid "Similar to Apache, a site configuration needs to be provided to Nginx. Example configuration is provided at ``/opt/otobo/scripts/nginx-vhost-*.include.conf``."
msgstr ""

#: ../content/updating.rst:271
msgid "In most cases the included template is suitable. Nevertheless, the ``server_name`` in the template file has to be changed from ``localhost`` to the desired name to become reachable externally. The new configuration needs to be activated, subsequently."
msgstr ""

#: ../content/updating.rst:309
msgid "Restart your web server to load the new configuration settings. On most systems you can use the following command to do so:"
msgstr ""

#: ../content/updating.rst:323
msgid "Step 8: Start your Services"
msgstr ""

#: ../content/updating.rst:325
msgid "This will now depend on whether the OTOBO services have been migrated to the Systemd unit files as mentioned in Step 7 or not."
msgstr ""

#: ../content/updating.rst:328
msgid "Option A: Services have been Migrated"
msgstr ""

#: ../content/updating.rst:330
msgid "If the services have been migrated they can simply be enabled and started using ``systemctl``."
msgstr ""

#: ../content/updating.rst:337
msgid "Option B: Services have not been Migrated"
msgstr ""

#: ../content/updating.rst:339
msgid "If not migrated, OTOBO daemon and cron jobs must be started using their associated scripts (in this order):"
msgstr ""

#: ../content/updating.rst:348
msgid "Now additional services can be started. This will depend on your service configuration, here is an example:"
msgstr ""

#: ../content/updating.rst:357
msgid "Now you can log into your system."
msgstr ""

#: ../content/updating.rst:360
msgid "Step 9: (Optional) Disable Redis Caching"
msgstr ""

#: ../content/updating.rst:362
msgid "Since OTOBO 11.1 we no longer recommend Redis for caching in general because it often results in increased loading times. There are still use cases in production environments where Redis is the better option but on average we recommend using the local filesystem for better results."
msgstr ""

#: ../content/updating.rst:365
msgid "Depending on your setup this can either be changed in your ``/opt/otobo/Kernel/Config.pm`` file or in the Sysconfig ``Cache::Module`` in the OTOBO UI. The value has to be changed from ``Kernel::System::Cache::Redis`` to ``Kernel::System::Cache::FileStorable``."
msgstr ""

#: ../content/updating-docker.rst:2
msgid "Updating a Docker-based Installation of OTOBO"
msgstr ""

#: ../content/updating-docker.rst:6
msgid "Don't update without a complete backup of your system. See :doc:`backup-restore` for more information."
msgstr ""

#: ../content/updating-docker.rst:11
msgid "Updates from one patch version to another patch version, e.g., from 11.1.6 to 11.1.7, are tested and under quality assurance. Skipping vesions in between may work, but may lead to unexpected results."
msgstr ""

#: ../content/updating-docker.rst:15
msgid "For running OTOBO under Docker we need the OTOBO software itself and an environment in which OTOBO can run. The OTOBO Docker image provides the environment and a copy of the OTOBO software. The software itself is installed in the volume ``otobo_opt_otobo``. A named volume is used because run time data, e.g. configuration files and installed packages, is stored in the same directory tree."
msgstr ""

#: ../content/updating-docker.rst:20
msgid "When updating to a new version of OTOBO several things have to happen."
msgstr ""

#: ../content/updating-docker.rst:22
msgid "The Docker Compose files have to be updated."
msgstr ""

#: ../content/updating-docker.rst:23
msgid "The Docker Compose configuration file ``.env`` has to be checked."
msgstr ""

#: ../content/updating-docker.rst:24
msgid "The ``scripts/update.sh`` script has to be executed"
msgstr ""

#: ../content/updating-docker.rst:28
msgid "In the sample commands below, the version **11.x.y**, corresponding to the tag **11_x_y**, is used as the example version. Please substitute it with the real version, e.g. **11.1.7**."
msgstr ""

#: ../content/updating-docker.rst:33
msgid "Before upgrading, please check if your installed packages are available for the new version."
msgstr ""

#: ../content/updating-docker.rst:63
msgid "Migrating to Docker Compose v2"
msgstr ""

#: ../content/updating-docker.rst:65
msgid "Please take note, that Docker Compose v1 is deprecated and will not be supported in the future. If ``docker-compose --version`` shows a version beginning with ``1``, Docker Compose v1 is installed. If ``docker ps`` shows a container called ``otobo_web_1``, then Docker Compose v1 is running your container."
msgstr ""

#: ../content/updating-docker.rst:69
msgid "If your host is a recent Ubuntu Linux, migration is straight forward and does not entail downtime of OTOBO:"
msgstr ""

#: ../content/updating-docker.rst:91
msgid "Docker Compose v2 entails a new naming scheme for the containers, e.g., ``otobo_web_1`` becomes ``otobo-web-1`` (note the change of ``_`` to ``-``). If you have tooling that relies on the ``docker-compose`` command or the name of the containers, e.g., when using ``acme.sh`` in standalone mode, you need to refit your setup."
msgstr ""

#: ../content/updating-docker.rst:96
msgid "Stop the Containers"
msgstr ""

#: ../content/updating-docker.rst:107
msgid "Updating the Docker Compose Files"
msgstr ""

#: ../content/updating-docker.rst:109
msgid "The OTOBO Docker Compose files may change between releases. Therefore, is must be made sure that the correct setup is used."
msgstr ""

#: ../content/updating-docker.rst:114
msgid "See https://hub.docker.com/r/rotheross/otobo/tags for the available releases."
msgstr ""

#: ../content/updating-docker.rst:116
msgid "To obtain the new Docker Compose files, the OTOBO Docker repository must be updated to the wanted version: As a docker administrator, you can do this as follows:"
msgstr ""

#: ../content/updating-docker.rst:132
msgid "Checking the Docker Compose ``.env`` File"
msgstr ""

#: ../content/updating-docker.rst:134
msgid "The file ``.env`` controls the OTOBO Docker container. Within that file, the variables ``OTOBO_IMAGE_OTOBO``, ``OTOBO_IMAGE_OTOBO_ELASTICSEARCH``, and ``OTOBO_IMAGE_OTOBO_NGINX`` declare which images are used. Please configure the these variables according to the OTOBO version you want to run ``rel-11_x_y``. If you want to always pull the latest image, use ``latest``."
msgstr ""

#: ../content/updating-docker.rst:141
msgid "Update OTOBO"
msgstr ""

#: ../content/updating-docker.rst:145
msgid "Since OTOBO 11.1 Redis caching gets migrated to FileStorage caching automatically when running ``update.sh``. For common setups this results in increased query times. If you still want to use Redis, follow the instructions at :doc:`/content/performance-tuning`."
msgstr ""

#: ../content/updating-docker.rst:152
msgid "Please note that minor or major upgrades must always be carried out one after the other. If you would like to upgrade from version 10.0.* to the latest 11.1.*, please upgrade to 10.1 first and then to 11.1."
msgstr ""

#: ../content/updating-docker.rst:155
msgid "For minor and major version upgrades to OTOBO 11.1, the following script handles all necessary app and database update tasks automatically:"
msgstr ""
