### Zendesk Migration Job Status: Freshly Started Source: https://github.com/zammad/zammad-documentation/blob/pre-release/migration/zendesk.md Example output showing the initial state of a Zendesk import job. `finished_at` being `nil` indicates the process is ongoing. ```text # {"skipped"=>0, "created"=>0, "updated"=>0, "unchanged"=>0, "failed"=>0, "deactivated"=>0, "sum"=>0, "total"=>100}}, started_at: Mon, 03 Jan 2022 18:41:51 UTC +00:00, finished_at: nil, created_at: Mon, 03 Jan 2022 18:41:16 UTC +00:00, updated_at: Mon, 03 Jan 2022 18:43:32 UTC +00:00> ``` -------------------------------- ### Install Elasticsearch (OpenSUSE/SLES) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/elasticsearch/install-elasticsearch-9.md Installs Elasticsearch by enabling the repository and then installing the package using Zypper. ```bash sudo zypper modifyrepo --enable elasticsearch && sudo zypper install elasticsearch ``` -------------------------------- ### Example: Freshly Started Import Job State Source: https://github.com/zammad/zammad-documentation/blob/pre-release/migration/kayako.md This text output shows the state of an ImportJob immediately after it has been created and started. 'finished_at' is nil, indicating the migration is in progress. ```text # {"skipped"=>0, "created"=>0, "updated"=>0, "unchanged"=>0, "failed"=>0, "deactivated"=>0, "sum"=>0, "total"=>100}}, started_at: Mon, 03 Jan 2022 18:41:51 UTC +00:00, finished_at: nil, created_at: Mon, 03 Jan 2022 18:41:16 UTC +00:00, updated_at: Mon, 03 Jan 2022 18:43:32 UTC +00:00> ``` -------------------------------- ### Start and Enable Elasticsearch Service Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/elasticsearch/install-elasticsearch-9.md Enables the Elasticsearch service to start on boot and starts it immediately. ```bash sudo systemctl enable elasticsearch.service --now ``` -------------------------------- ### Zammad Safe Mode Console Output Example Source: https://github.com/zammad/zammad-documentation/blob/pre-release/admin/console.md Example output when Zammad is started in safe mode, indicating that third-party services like Redis are ignored and showing potential connection errors. ```text Zammad is running in safe mode. Any third party services like Redis are ignored. There was an error trying to connect to Redis via redis://localhost:6379. Please provide a Redis instance at localhost:6379 or set REDIS_URL to point to a different location. # Loading production environment (Rails 6.1.7.3) 3.1.3 :001 > ``` -------------------------------- ### Zammad Restore Process Example Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/backup-and-restore/restore.md An example output of the Zammad restore process, showing the prompts and actions taken during restoration. ```text # Zammad restore started - Fri Jan 21 17:54:13 CET 2022!
The restore will delete your current database! Be sure to have a backup available!
Please ensure to have twice the storage of the uncompressed backup size!
Note that the restoration USUALLY requires root permissions as services are stopped!
Enter 'yes' if you want to proceed! Restore?: yes Enter file date to restore: 20220120124714 20220121175344 File date: 20220121175344 Enter db date to restore: 20220120124714 20220121175344 DB date: 20220121175344 # Stopping Zammad # Checking requirements # ... Dropping current database zammad Dropped database 'zammad' # ... Creating database zammad for owner zammad CREATE DATABASE # Restoring PostgreSQL DB # Restoring Files # Ensuring correct file permissions ... # Clearing Cache ... # Starting Zammad
# Zammad restored successfully - Fri Jan 21 17:54:34 CET 2022! ``` -------------------------------- ### Start Interactive Zammad Console (Package) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/admin/console.md Open an interactive Rails console session for Zammad package installations. This allows running multiple commands sequentially. ```console $ zammad run rails c ``` -------------------------------- ### Freshdesk Migration Job State: Freshly Started Source: https://github.com/zammad/zammad-documentation/blob/pre-release/migration/freshdesk.md Example output showing the state of an import job immediately after it has started. The `finished_at` field is nil, indicating the migration is in progress. ```text # {"skipped"=>0, "created"=>0, "updated"=>0, "unchanged"=>0, "failed"=>0, "deactivated"=>0, "sum"=>0, "total"=>100}}, started_at: Mon, 03 Jan 2022 18:41:51 UTC +00:00, finished_at: nil, created_at: Mon, 03 Jan 2022 18:41:16 UTC +00:00, updated_at: Mon, 03 Jan 2022 18:43:32 UTC +00:00> ``` -------------------------------- ### Install Zammad (OpenSUSE) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/backup-and-restore/migrate-hosts.md Install Zammad on OpenSUSE systems. This command should be run after a removal. ```bash $ sudo zypper install zammad ``` -------------------------------- ### Install libimlib2 on Ubuntu Source: https://github.com/zammad/zammad-documentation/blob/pre-release/prerequisites/software.md Use this command to install the libimlib2 package on Ubuntu systems. ```bash $ sudo apt install libimlib2 ``` -------------------------------- ### Install Elasticsearch (CentOS/RHEL) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/elasticsearch/install-elasticsearch-9.md Installs Elasticsearch using DNF, enabling the repository during the installation command. ```bash sudo dnf install --enablerepo=elasticsearch elasticsearch ``` -------------------------------- ### Full nftables configuration example Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/package.md This is an example of a complete nftables ruleset that includes the necessary rules for Zammad. Your environment may require additional or different rules. ```text #!/usr/local/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0; policy drop; ct state established,related accept tcp dport ssh log accept tcp dport { http, https } accept udp dport { http, https } accept } chain forward { type filter hook forward priority 0; policy accept; } chain output { type filter hook output priority 0; policy accept; } } ``` -------------------------------- ### Start Interactive Zammad Console (Source) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/admin/console.md Open an interactive Rails console session for Zammad source/development installations. This allows running multiple commands sequentially. ```console $ rails c ``` -------------------------------- ### Install Apache Kerberos Dependencies (OpenSUSE) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/single-sign-on.md Updates repositories and installs the Kerberos client and the Apache module for Kerberos authentication on OpenSUSE. ```bash $ sudo zypper ref ``` ```bash $ sudo zypper install krb5-client apache2-mod_auth_kerb ``` -------------------------------- ### Install imlib2 on openSUSE / SLES Source: https://github.com/zammad/zammad-documentation/blob/pre-release/prerequisites/software.md Use this command to install the imlib2 package on openSUSE and SLES systems. ```bash $ sudo zypper install imlib2 ``` -------------------------------- ### Install pgloader on Ubuntu/Debian Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/migrate-to-postgresql.md Installs the pgloader tool on Ubuntu or Debian systems. ```console $ sudo apt update ``` ```console $ sudo apt install pgloader ``` -------------------------------- ### Install pgloader on OpenSUSE/SLES Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/migrate-to-postgresql.md Installs the pgloader tool on OpenSUSE or SLES systems. ```console $ sudo zypper refresh ``` ```console $ sudo zypper install pgloader ``` -------------------------------- ### Install Dependencies with Pip Source: https://github.com/zammad/zammad-documentation/blob/pre-release/README.md Use this command to install the necessary Python dependencies for compiling Zammad documentation. Ensure you have a requirements.txt file in your current directory. ```bash pip install -r requirements.txt ``` -------------------------------- ### PostgreSQL Authentication Configuration Example Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/backup-and-restore/troubleshooting.md This example shows how to adjust the pg_hba.conf file to allow MD5 authentication for PostgreSQL. Consult official PostgreSQL documentation for specific configurations. ```text host all all 127.0.0.1/32 md5 host all all ::1/128 md5 ``` -------------------------------- ### Install imlib2 on CentOS / RHEL Source: https://github.com/zammad/zammad-documentation/blob/pre-release/prerequisites/software.md Use this command to install the imlib2 package on CentOS and RHEL systems after enabling EPEL. ```bash $ sudo dnf install imlib2 ``` -------------------------------- ### Zammad Backup Process Output Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/backup-and-restore/backup.md Example output showing the steps and success message of the Zammad backup process. ```text # Zammad backup started - Fri Jan 21 17:53:44 CET 2022! creating file backup... ... as full dump creating postgresql backup... Ensuring dump permissions ... # Zammad backuped successfully - Fri Jan 21 17:53:57 CET 2022! ``` -------------------------------- ### Install PostgreSQL on Ubuntu/Debian Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/migrate-to-postgresql.md Installs PostgreSQL and its contrib package on Ubuntu or Debian systems. ```console $ sudo apt update ``` ```console $ sudo apt install postgresql postgresql-contrib ``` ```console $ sudo systemctl start postgresql ``` ```console $ sudo systemctl enable postgresql ``` -------------------------------- ### Install Elasticsearch (Ubuntu/Debian) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/elasticsearch/install-elasticsearch-9.md Installs the Elasticsearch package using APT after updating package lists. ```bash sudo apt update && sudo apt install elasticsearch ``` -------------------------------- ### Install PostgreSQL on CentOS Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/migrate-to-postgresql.md Installs PostgreSQL server and its contrib package on CentOS systems. ```console $ sudo dnf install postgresql-server postgresql-contrib ``` ```console $ sudo postgresql-setup initdb ``` ```console $ sudo systemctl start postgresql ``` ```console $ sudo systemctl enable postgresql ``` -------------------------------- ### Install pgloader on CentOS Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/migrate-to-postgresql.md Installs the pgloader tool on CentOS systems. ```console $ sudo dnf install -y pgloader ``` -------------------------------- ### Install epel-release on CentOS / RHEL Source: https://github.com/zammad/zammad-documentation/blob/pre-release/prerequisites/software.md Install the EPEL repository to satisfy dependencies on CentOS and RHEL systems. ```bash $ sudo dnf install epel-release ``` -------------------------------- ### Redis Sentinel Setup Configuration Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/redis.md For Sentinel setups, REDIS_SENTINELS is mandatory. Other variables like username and password for Sentinel and Redis are optional. ```bash REDIS_SENTINELS=sentinel1.example.com:26380,sentinel2.example.com ``` ```bash REDIS_SENTINEL_NAME=mymaster ``` ```bash REDIS_SENTINEL_USERNAME=sentinel_user ``` ```bash REDIS_SENTINEL_PASSWORD=sentinel_password ``` ```bash REDIS_USERNAME=redis_user ``` ```bash REDIS_PASSWORD=redis_password ``` -------------------------------- ### Install SSL Certificate with acme.sh Source: https://github.com/zammad/zammad-documentation/blob/pre-release/getting-started/configure-webserver.md Install the issued certificate and configure automatic webserver reloading. Replace `` with 'apache2', 'httpd', or 'nginx'. ```console $ acme.sh --install-cert -d zammad.example.com \ --cert-file /etc/ssl/private/zammad.example.com.pem \ --key-file /etc/ssl/private/zammad.example.com.key \ --fullchain-file /etc/ssl/private/zammad.example.com.full.pem \ --reloadcmd "systemctl force-reload " ``` -------------------------------- ### Install PostgreSQL on OpenSUSE/SLES Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/migrate-to-postgresql.md Installs PostgreSQL and its contrib package on OpenSUSE or SLES systems. OpenSUSE 15 also requires the devel package. ```console $ sudo zypper refresh ``` ```console $ sudo zypper install postgresql postgresql-server postgresql-contrib ``` ```console openSuSE 15 also requires: $ sudo zypper install postgresql-server-devel ``` ```console $ sudo systemctl start postgresql ``` ```console $ sudo systemctl enable postgresql ``` -------------------------------- ### Install Zammad (Debian/Ubuntu) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/backup-and-restore/migrate-hosts.md Install Zammad on Debian/Ubuntu systems. This command should be run after a forced removal if necessary. ```bash $ sudo apt install zammad ``` -------------------------------- ### Update Package List and Install Zammad on OpenSUSE/SLES Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/package.md Refreshes the Zypper repositories and installs the Zammad package. ```bash $ sudo zypper refresh ``` ```bash $ sudo zypper install zammad ``` -------------------------------- ### OAuth2 (Token Access) Example Source: https://github.com/zammad/zammad-documentation/blob/pre-release/api/intro.md Use OAuth2 for third-party applications to authenticate against Zammad using a bearer token. ```console $ curl -H "Authorization: Bearer {your_token}" https://{fqdn}/{endpoint} ``` -------------------------------- ### Install Apache Kerberos Dependencies (Ubuntu/Debian) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/single-sign-on.md Installs the necessary packages for Kerberos user authentication and the Apache module for GSSAPI on Ubuntu or Debian-based systems. ```bash $ sudo apt update ``` ```bash $ sudo apt install krb5-user libapache2-mod-auth-gssapi ``` -------------------------------- ### Add Elasticsearch Certificate via Rails Console Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/elasticsearch/connect-configure-elasticsearch.md Add the Elasticsearch CA certificate to Zammad using the Rails console. This is for new Zammad installations or when the getting started wizard has not been run. ```bash sudo cat /etc/elasticsearch/certs/http_ca.crt | zammad run rails r 'SSLCertificate.create!(certificate: STDIN.read)' ``` -------------------------------- ### Start Zammad Console in Safe Mode (Source) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/admin/console.md Start the Zammad Rails console in safe mode for source installations by setting the ZAMMAD_SAFE_MODE environment variable. This ignores third-party service availability. ```console $ ZAMMAD_SAFE_MODE=1 rails c ``` -------------------------------- ### Mark System Initialization as Done Source: https://github.com/zammad/zammad-documentation/blob/pre-release/migration/includes/commands-after-migration.include.md Execute this command to indicate that the system initialization process has been completed. This is crucial for enabling all system features. ```irb Setting.set('system_init_done', true) ``` -------------------------------- ### Start Zammad Console in Safe Mode (Package) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/admin/console.md Start the Zammad Rails console in safe mode for package installations by setting the ZAMMAD_SAFE_MODE environment variable. This ignores third-party service availability. ```console $ ZAMMAD_SAFE_MODE=1 zammad run rails c ``` -------------------------------- ### Initialize Knowledge Base Source: https://github.com/zammad/zammad-documentation/blob/pre-release/api/knowledgebase.md Use this POST request to initialize a knowledge base. Ensure you have the `knowledge_base.editor` permission. ```json { "name": "My New Knowledge Base", "description": "This is a description for my new knowledge base." } ``` -------------------------------- ### Set System Initialization Done Source: https://github.com/zammad/zammad-documentation/blob/pre-release/migration/otrs.md Marks the system initialization as complete after the import. Run this within the Zammad Rails console. ```ruby >> Setting.set('system_init_done', true) ``` -------------------------------- ### HTTP Basic Authentication Example Source: https://github.com/zammad/zammad-documentation/blob/pre-release/api/intro.md Use this method for basic authentication with username and password. It is strongly suggested against, and access tokens should be preferred. ```console $ curl -u {username}:{password} https://{fqdn}/{endpoint} ``` -------------------------------- ### Enable Zammad Site Configuration (Ubuntu/Debian/openSUSE) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/getting-started/configure-webserver.md Enable the Zammad site configuration on Ubuntu, Debian, or openSUSE systems using the a2ensite command. ```bash $ a2ensite zammad ``` -------------------------------- ### Execute pgloader Migration Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/migrate-to-postgresql.md Starts the actual data migration from the source database to PostgreSQL using pgloader with verbose output. ```console $ pgloader --verbose /tmp/pgloader-command ``` -------------------------------- ### Docker Compose Stack with Scenario Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/docker-compose/docker-compose-scenarios.md Use this command to start the Zammad stack with one or more additional scenarios. Replace the placeholder with the desired scenario file name. ```bash docker compose -f docker-compose.yml -f scenarios/{scenario you want to use}.yml up -d ``` -------------------------------- ### Start Zammad Service Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/backup-and-restore/migrate-hosts.md Start the Zammad systemd service if it is not running after the restoration process. ```bash $ sudo systemctl start zammad ``` -------------------------------- ### Install libimlib2t64 on Debian 13 Source: https://github.com/zammad/zammad-documentation/blob/pre-release/prerequisites/software.md Use this command to install the libimlib2t64 package on Debian 13. ```bash $ sudo apt install libimlib2t64 ``` -------------------------------- ### Enable Apache Modules (OpenSUSE) Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/single-sign-on.md Enables the Apache modules for Kerberos authentication and URL rewriting, followed by a restart of the Apache service. ```bash $ a2enmod auth_kerb rewrite ``` ```bash $ systemctl restart apache2 ``` -------------------------------- ### Compile Documentation Locally Source: https://github.com/zammad/zammad-documentation/blob/pre-release/README.md Run this command to build the HTML version of the Zammad documentation on your local machine. This is typically used after making changes to the documentation source files. ```bash make html ``` -------------------------------- ### Example: Import Job State Halfway Through Source: https://github.com/zammad/zammad-documentation/blob/pre-release/migration/kayako.md This text output illustrates the state of an ImportJob when it is partially completed. It shows counts for created, updated, and skipped items across different data types. ```text # {"skipped"=>0, "created"=>3, "updated"=>0, "unchanged"=>0, "failed"=>0, "deactivated"=>0, "sum"=>3, "total"=>3}, "Organizations"=> {"skipped"=>0, "created"=>193, "updated"=>1, "unchanged"=>0, "failed"=>0, "deactivated"=>0, "sum"=>194, "total"=>194}, "Users"=> {"skipped"=>0, "created"=>3352, "updated"=>0, "unchanged"=>0, "failed"=>0, "deactivated"=>0, "sum"=>3352, "total"=>3352}, "Tickets"=> {"skipped"=>0, "created"=>987, "updated"=>0, "unchanged"=>0, "failed"=>0, "deactivated"=>0, "sum"=>987, "total"=>1000}}, started_at: Tue, 04 Jan 2022 11:37:38 UTC +00:00, finished_at: nil, created_at: Tue, 04 Jan 2022 11:37:36 UTC +00:00, updated_at: Tue, 04 Jan 2022 12:12:52 UTC +00:00> ``` -------------------------------- ### Install Locales Package Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/package.md Installs the 'locales' package, which provides locale generation capabilities on Debian-based systems. ```bash $ sudo apt install locales ``` -------------------------------- ### Execute Zammad Backup Script Source: https://github.com/zammad/zammad-documentation/blob/pre-release/appendix/backup-and-restore/backup.md Run this script as the root or zammad user to create a backup. Ensure Zammad is stopped before execution. ```bash $ /opt/zammad/contrib/backup/zammad_backup.sh ``` -------------------------------- ### Install Required Tools on CentOS/RHEL Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/package.md Installs curl and epel-release, which are necessary for package management on CentOS and RHEL systems. ```bash $ sudo dnf install curl epel-release ``` -------------------------------- ### Update Package List and Install Zammad on CentOS/RHEL Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/package.md Updates the DNF package manager cache and installs the Zammad package. ```bash $ sudo dnf update ``` ```bash $ sudo dnf install zammad ``` -------------------------------- ### Update Package List and Install Zammad on Ubuntu/Debian Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/package.md Refreshes the package list and installs the Zammad package using APT. ```bash $ sudo apt update ``` ```bash $ sudo apt install zammad ``` -------------------------------- ### Start Kayako Migration Job Source: https://github.com/zammad/zammad-documentation/blob/pre-release/migration/kayako.md Create a new import job for Kayako and queue it for asynchronous processing. This initiates the data migration from Kayako to Zammad. ```irb job = ImportJob.create(name: 'Import::Kayako') ``` ```irb AsyncImportJob.perform_later(job) ``` -------------------------------- ### Start Zammad Docker Compose Stack Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/docker-compose.md Start the Zammad Docker containers in detached mode. This command initiates the Zammad deployment. ```bash docker compose up -d ``` -------------------------------- ### Install Required Tools on Ubuntu/Debian Source: https://github.com/zammad/zammad-documentation/blob/pre-release/install/package.md Installs necessary tools like curl, apt-transport-https, and gnupg for package management on Ubuntu and Debian systems. ```bash $ sudo apt install curl apt-transport-https gnupg ``` -------------------------------- ### HTTP Token Authentication Example Source: https://github.com/zammad/zammad-documentation/blob/pre-release/api/intro.md Authenticate using an access token generated by a user. This method can be disabled and may not be available. ```console $ curl -H "Authorization: Token token={your_token}" https://{fqdn}/{endpoint} ``` -------------------------------- ### Example Condition Payload Source: https://github.com/zammad/zammad-documentation/blob/pre-release/api/intro.md This is an example JSON structure for the 'condition' payload, used in API search requests. It defines criteria for filtering tickets. ```json {"condition":{"ticket.state_id":{"operator":"is","value":["2"]},"ticket.title":{"operator":"contains","value":"Test"}}} ``` -------------------------------- ### Initialize Knowledge Base Source: https://github.com/zammad/zammad-documentation/blob/pre-release/api/knowledgebase.md Initializes a new knowledge base. Requires the `knowledge_base.editor` permission. The request and response examples include a knowledge base ID of `1`, which may differ in your environment. ```APIDOC ## POST /api/v1/knowledge_bases/init ### Description Initializes a new knowledge base. ### Method POST ### Endpoint /api/v1/knowledge_bases/init ### Permissions `knowledge_base.editor` ### Request Example (No request body specified in source) ### Response #### Success Response (200) (Response structure not fully detailed in source, but an example is provided) ### Response Example ```json { "id": 1, "name": "Default Knowledge Base", "description": "", "active": true, "created_by_id": 1, "updated_by_id": 1, "created_at": "2023-01-01T10:00:00Z", "updated_at": "2023-01-01T10:00:00Z" } ``` ``` -------------------------------- ### Update Object Payload Example Source: https://github.com/zammad/zammad-documentation/blob/pre-release/api/object.md Example payload for updating an object attribute, including its current and new values. Ensure 'data_option' is provided. ```json { "id": 50, "name": "sample_boolean", "object": "Ticket", "display": "Sample Boolean", "data_type": "boolean", "position": 1200, "data_option": { "options": { "true": "yes", "false": "no" }, "default": "false" } } ``` -------------------------------- ### Access Zammad Rails Console Source: https://github.com/zammad/zammad-documentation/blob/pre-release/migration/kayako.md Use this command to open the Zammad Rails console for package installations. For source installations, use 'rails c'. ```console zammad run rails c ``` ```console rails c ```