CINXE.COM
Install with Package Manager — Zammad System Documentation documentation
<!DOCTYPE html> <html class="writer-html5" lang="en" > <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Install with Package Manager — Zammad System Documentation documentation</title> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> <link rel="stylesheet" href="https://media.readthedocs.org/css/sphinx_rtd_theme.css" type="text/css" /> <link rel="stylesheet" href="https://media.readthedocs.org/css/readthedocs-doc-embed.css" type="text/css" /> <link rel="stylesheet" href="../_static/theme/theme_overrides.css" type="text/css" /> <link rel="shortcut icon" href="../_static/favicon.ico"/> <!--[if lt IE 9]> <script src="../_static/js/html5shiv.min.js"></script> <![endif]--> <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <script src="../_static/jquery.js"></script> <script src="../_static/underscore.js"></script> <script src="../_static/doctools.js"></script> <script src="../_static/js/versionwarning.js"></script> <script src="../_static/tabs.js"></script> <script src="../_static/theme/zammad_overrides.js"></script> <script src="../_static/js/theme.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="Install with Docker" href="docker-compose.html" /> <link rel="prev" title="Hardware" href="../prerequisites/hardware.html" /> <script async type="text/javascript" src="/_/static/javascript/readthedocs-addons.js"></script><meta name="readthedocs-project-slug" content="zammad" /><meta name="readthedocs-version-slug" content="latest" /><meta name="readthedocs-resolver-filename" content="/install/package.html" /><meta name="readthedocs-http-status" content="200" /></head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search" > <a href="../index.html" class="icon icon-home"> Zammad System Documentation <img src="../_static/zammad_logo_70x61@2x.png" class="logo" alt="Logo"/> </a> <div class="version"> latest </div> <div role="search"> <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> <p class="caption" role="heading"><span class="caption-text">About</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../about/zammad.html">Zammad</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Prerequisites</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../prerequisites/software.html">Software</a></li> <li class="toctree-l1"><a class="reference internal" href="../prerequisites/hardware.html">Hardware</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Installation & Update</span></p> <ul class="current"> <li class="toctree-l1 current"><a class="current reference internal" href="#">Install with Package Manager</a><ul> <li class="toctree-l2"><a class="reference internal" href="#prerequisites">Prerequisites</a><ul> <li class="toctree-l3"><a class="reference internal" href="#install-required-tools">1. Install Required Tools</a></li> <li class="toctree-l3"><a class="reference internal" href="#install-elasticsearch">1. Install Elasticsearch</a></li> <li class="toctree-l3"><a class="reference internal" href="#ensure-correct-locale">3. Ensure Correct Locale</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="#add-repository-and-install-zammad">Add Repository and Install Zammad</a><ul> <li class="toctree-l3"><a class="reference internal" href="#add-repository">Add Repository</a></li> <li class="toctree-l3"><a class="reference internal" href="#install-zammad">Install Zammad</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="#firewall-selinux">Firewall & SELinux</a><ul> <li class="toctree-l3"><a class="reference internal" href="#selinux">SELinux</a></li> <li class="toctree-l3"><a class="reference internal" href="#firewall">Firewall</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="#manage-services-of-zammad">Manage Services of Zammad</a></li> <li class="toctree-l2"><a class="reference internal" href="#next-steps">Next Steps</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="docker-compose.html">Install with Docker</a></li> <li class="toctree-l1"><a class="reference internal" href="kubernetes.html">Install on Kubernetes</a></li> <li class="toctree-l1"><a class="reference internal" href="source.html">Install from Source</a></li> <li class="toctree-l1"><a class="reference internal" href="elasticsearch.html">Set Up Elasticsearch</a></li> <li class="toctree-l1"><a class="reference internal" href="update.html">Updating Zammad</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Getting started</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../getting-started/configure-webserver.html">Configure the Webserver</a></li> <li class="toctree-l1"><a class="reference internal" href="../getting-started/first-steps.html">First Steps</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Migration</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../migration/index.html">Migrating to Zammad</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Administration via ...</span></p> <ul> <li class="toctree-l1"><a class="reference external" href="https://admin-docs.zammad.org/">Web-UI (admin documentation)</a></li> <li class="toctree-l1"><a class="reference internal" href="../admin/console.html">Console</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Contributing / Development</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../contributing/start.html">Start</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">REST API</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../api/intro.html">Introduction</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/calendar.html">Calendar</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/checklist.html">Checklist Endpoints</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/generic-cti/index.html">Generic CTI</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/group.html">Group</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/notification.html">Online Notification</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/object.html">Object</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/organization.html">Organization</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/role.html">Roles</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/sla.html">Service-Level Agreements (SLA)</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/ticket.html">Ticket Endpoints</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/user.html">User</a></li> <li class="toctree-l1"><a class="reference internal" href="../api/user-access-token.html">User Access Token</a></li> </ul> <p class="caption" role="heading"><span class="caption-text">Appendix</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../appendix/backup-and-restore/index.html">Backup and Restore</a></li> <li class="toctree-l1"><a class="reference internal" href="../appendix/configure-env-vars.html">Configuration via Environment Variables</a></li> <li class="toctree-l1"><a class="reference internal" href="../appendix/configure-database-server.html">Configure Database Server</a></li> <li class="toctree-l1"><a class="reference internal" href="../appendix/migrate-to-postgresql.html">Migrate to PostgreSQL Server</a></li> <li class="toctree-l1"><a class="reference internal" href="../appendix/privacy.html">Privacy & Data Retention</a></li> <li class="toctree-l1"><a class="reference internal" href="../appendix/single-sign-on.html">Single Sign-On for Kerberos</a></li> <li class="toctree-l1"><a class="reference internal" href="../appendix/reporting-tools-thirdparty.html">Reporting Tools (Third party)</a></li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="../index.html">Zammad System Documentation</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="Page navigation"> <ul class="wy-breadcrumbs"> <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> <li class="breadcrumb-item active">Install with Package Manager</li> <li class="wy-breadcrumbs-aside"> <a href="../_sources/install/package.rst.txt" rel="nofollow"> View page source</a> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <div class="section" id="install-with-package-manager"> <h1>Install with Package Manager<a class="headerlink" href="#install-with-package-manager" title="Permalink to this headline">露</a></h1> <p>This section describes the basic package installation of Zammad. If these manual steps aren鈥檛 what you are looking for, consider a <a class="reference external" href="https://zammad.com/en/pricing">hosted Zammad setup</a> or <a class="reference internal" href="docker-compose.html"><span class="doc">deploy Zammad via Docker</span></a>.</p> <div class="section" id="prerequisites"> <h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">露</a></h2> <p>Before performing the following steps, make sure to meet Zammad鈥檚 <a class="reference internal" href="../prerequisites/software.html"><span class="doc">software requirements</span></a>.</p> <div class="section" id="install-required-tools"> <h3>1. Install Required Tools<a class="headerlink" href="#install-required-tools" title="Permalink to this headline">露</a></h3> <p>In addition to already mentioned <a class="reference internal" href="../prerequisites/software.html#package-dependencies"><span class="std std-ref">software dependencies</span></a>, some operating systems may require additional packages if not already installed.</p> <div class="sphinx-tabs docutils container"> <div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Ubuntu / Debian</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">SLES</button><button aria-controls="panel-0-0-2" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-2" name="0-2" role="tab" tabindex="-1">CentOS / RHEL</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>curl<span class="w"> </span>apt-transport-https<span class="w"> </span>gnupg </pre></div> </div> </div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><p>SLES 15 requires additional repositories to be activated. To do so, run the following commands.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>SUSEConnect<span class="w"> </span>--product<span class="w"> </span>sle-module-desktop-applications/<span class="k">$(</span>.<span class="w"> </span>/etc/os-release<span class="p">;</span><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="nv">$VERSION_ID</span><span class="k">)</span>/<span class="k">$(</span>uname<span class="w"> </span>-i<span class="k">)</span> $<span class="w"> </span>sudo<span class="w"> </span>SUSEConnect<span class="w"> </span>--product<span class="w"> </span>PackageHub/<span class="k">$(</span>.<span class="w"> </span>/etc/os-release<span class="p">;</span><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="nv">$VERSION_ID</span><span class="k">)</span>/<span class="k">$(</span>uname<span class="w"> </span>-i<span class="k">)</span> </pre></div> </div> </div><div aria-labelledby="tab-0-0-2" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-2" name="0-2" role="tabpanel" tabindex="0"><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>yum<span class="w"> </span>install<span class="w"> </span>wget<span class="w"> </span>epel-release </pre></div> </div> </div></div> </div> <div class="section" id="install-elasticsearch"> <h3>1. Install Elasticsearch<a class="headerlink" href="#install-elasticsearch" title="Permalink to this headline">露</a></h3> <p>Elasticsearch is not a hard dependency of Zammad, but strongly recommended! It needs to be installed before Zammad. Please take a look at the <a class="reference internal" href="elasticsearch.html"><span class="doc">instructions</span></a> first.</p> </div> <div class="section" id="ensure-correct-locale"> <h3>3. Ensure Correct Locale<a class="headerlink" href="#ensure-correct-locale" title="Permalink to this headline">露</a></h3> <p>To make Zammad work correctly, your system has to use the correct locales.</p> <div class="sphinx-tabs docutils container"> <div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-1-1-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-1-1-0" name="1-0" role="tab" tabindex="0">Ubuntu / Debian</button><button aria-controls="panel-1-1-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-1" name="1-1" role="tab" tabindex="-1">OpenSUSE / SLES</button><button aria-controls="panel-1-1-2" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-2" name="1-2" role="tab" tabindex="-1">CentOS / RHEL</button></div><div aria-labelledby="tab-1-1-0" class="sphinx-tabs-panel" id="panel-1-1-0" name="1-0" role="tabpanel" tabindex="0"><p>List your current locale settings.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>locale<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span><span class="s2">"LANG="</span> </pre></div> </div> <p>If above does not return <code class="docutils literal notranslate"><span class="pre"><lang_code>.utf8</span></code> you can correct this issue as follows.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>locales $<span class="w"> </span>sudo<span class="w"> </span>locale-gen<span class="w"> </span>en_US.UTF-8 $<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"LANG=en_US.UTF-8"</span><span class="w"> </span>><span class="w"> </span>sudo<span class="w"> </span>/etc/default/locale </pre></div> </div> </div><div aria-labelledby="tab-1-1-1" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-1" name="1-1" role="tabpanel" tabindex="0"><p>List your current locale settings.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>localectl<span class="w"> </span>status<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>LANG </pre></div> </div> <p>If above does not return <code class="docutils literal notranslate"><span class="pre"><lang_code>.utf8</span></code> you can correct this issue as follows.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>localectl<span class="w"> </span>set-locale<span class="w"> </span><span class="nv">LANG</span><span class="o">=</span>en_US.UTF-8 </pre></div> </div> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>By default OpenSUSE uses <code class="docutils literal notranslate"><span class="pre">POSIX</span></code> as <code class="docutils literal notranslate"><span class="pre">LANG</span></code> value for the root user. Learn more about this within the <a class="reference external" href="https://doc.opensuse.org/documentation/leap/startup/html/book-opensuse-startup/cha-yast-lang.html#pro-yast-lang-additional">OpenSUSE documentation</a>.</p> <p>This does not affect other users and thus can be ignored.</p> </div> </div><div aria-labelledby="tab-1-1-2" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-2" name="1-2" role="tabpanel" tabindex="0"><p>List your current locale settings.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>locale<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span><span class="s2">"LANG="</span> </pre></div> </div> <p>If above does not return <code class="docutils literal notranslate"><span class="pre"><lang_code>.utf8</span></code> you can correct this issue as follows.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>localectl<span class="w"> </span>set-locale<span class="w"> </span><span class="nv">LANG</span><span class="o">=</span>en_US.UTF-8 </pre></div> </div> </div></div> </div> </div> <div class="section" id="add-repository-and-install-zammad"> <h2>Add Repository and Install Zammad<a class="headerlink" href="#add-repository-and-install-zammad" title="Permalink to this headline">露</a></h2> <div class="admonition hint"> <p class="admonition-title">Hint</p> <p>Packager.io may not be accessible from IPv6-only environments, so make sure to consider this when performing the steps below.</p> </div> <div class="section" id="add-repository"> <h3>Add Repository<a class="headerlink" href="#add-repository" title="Permalink to this headline">露</a></h3> <div class="sphinx-tabs docutils container"> <div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-2-2-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-2-2-0" name="2-0" role="tab" tabindex="0">Ubuntu</button><button aria-controls="panel-2-2-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-2-2-1" name="2-1" role="tab" tabindex="-1">Debian</button><button aria-controls="panel-2-2-2" aria-selected="false" class="sphinx-tabs-tab" id="tab-2-2-2" name="2-2" role="tab" tabindex="-1">OpenSUSE / SLES</button><button aria-controls="panel-2-2-3" aria-selected="false" class="sphinx-tabs-tab" id="tab-2-2-3" name="2-3" role="tab" tabindex="-1">CentOS / RHEL</button></div><div aria-labelledby="tab-2-2-0" class="sphinx-tabs-panel" id="panel-2-2-0" name="2-0" role="tabpanel" tabindex="0"><dl> <dt>Install Repository Key</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>curl<span class="w"> </span>-fsSL<span class="w"> </span>https://dl.packager.io/srv/zammad/zammad/key<span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="se">\</span> <span class="w"> </span>gpg<span class="w"> </span>--dearmor<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/keyrings/pkgr-zammad.gpg><span class="w"> </span>/dev/null </pre></div> </div> </dd> <dt>Ubuntu 20.04</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 20.04 main"</span><span class="p">|</span><span class="w"> </span><span class="se">\</span> <span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/sources.list.d/zammad.list<span class="w"> </span>><span class="w"> </span>/dev/null </pre></div> </div> </dd> <dt>Ubuntu 22.04</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 22.04 main"</span><span class="p">|</span><span class="w"> </span><span class="se">\</span> <span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/sources.list.d/zammad.list<span class="w"> </span>><span class="w"> </span>/dev/null </pre></div> </div> </dd> <dt>Ubuntu 24.04</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 24.04 main"</span><span class="p">|</span><span class="w"> </span><span class="se">\</span> <span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/sources.list.d/zammad.list<span class="w"> </span>><span class="w"> </span>/dev/null </pre></div> </div> </dd> </dl> </div><div aria-labelledby="tab-2-2-1" class="sphinx-tabs-panel" hidden="true" id="panel-2-2-1" name="2-1" role="tabpanel" tabindex="0"><dl> <dt>Install Repository Key</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>curl<span class="w"> </span>-fsSL<span class="w"> </span>https://dl.packager.io/srv/zammad/zammad/key<span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="se">\</span> <span class="w"> </span>gpg<span class="w"> </span>--dearmor<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/keyrings/pkgr-zammad.gpg><span class="w"> </span>/dev/null </pre></div> </div> </dd> <dt>Debian 11</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 11 main"</span><span class="p">|</span><span class="w"> </span><span class="se">\</span> <span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/sources.list.d/zammad.list<span class="w"> </span>><span class="w"> </span>/dev/null </pre></div> </div> </dd> <dt>Debian 12</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 12 main"</span><span class="p">|</span><span class="w"> </span><span class="se">\</span> <span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/sources.list.d/zammad.list<span class="w"> </span>><span class="w"> </span>/dev/null </pre></div> </div> </dd> </dl> </div><div aria-labelledby="tab-2-2-2" class="sphinx-tabs-panel" hidden="true" id="panel-2-2-2" name="2-2" role="tabpanel" tabindex="0"><dl> <dt>Install Repository Key</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>rpm<span class="w"> </span>--import<span class="w"> </span>https://dl.packager.io/srv/zammad/zammad/key </pre></div> </div> </dd> <dt>openSUSE 15.x / SLES 15</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>wget<span class="w"> </span>-O<span class="w"> </span>/etc/zypp/repos.d/zammad.repo<span class="w"> </span><span class="se">\</span> https://dl.packager.io/srv/zammad/zammad/stable/installer/sles/15.repo </pre></div> </div> </dd> </dl> </div><div aria-labelledby="tab-2-2-3" class="sphinx-tabs-panel" hidden="true" id="panel-2-2-3" name="2-3" role="tabpanel" tabindex="0"><dl> <dt>Install Repository Key</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>rpm<span class="w"> </span>--import<span class="w"> </span>https://dl.packager.io/srv/zammad/zammad/key </pre></div> </div> </dd> <dt>CentOS 8 / RHEL 8</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>wget<span class="w"> </span>-O<span class="w"> </span>/etc/yum.repos.d/zammad.repo<span class="w"> </span><span class="se">\</span> https://dl.packager.io/srv/zammad/zammad/stable/installer/el/8.repo </pre></div> </div> </dd> <dt>CentOS 9 / RHEL 9</dt><dd><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>wget<span class="w"> </span>-O<span class="w"> </span>/etc/yum.repos.d/zammad.repo<span class="w"> </span><span class="se">\</span> https://dl.packager.io/srv/zammad/zammad/stable/installer/el/9.repo </pre></div> </div> </dd> </dl> </div></div> </div> <div class="section" id="install-zammad"> <h3>Install Zammad<a class="headerlink" href="#install-zammad" title="Permalink to this headline">露</a></h3> <div class="sphinx-tabs docutils container"> <div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-3-3-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-3-3-0" name="3-0" role="tab" tabindex="0">Ubuntu / Debian</button><button aria-controls="panel-3-3-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-3-3-1" name="3-1" role="tab" tabindex="-1">OpenSUSE / SLES</button><button aria-controls="panel-3-3-2" aria-selected="false" class="sphinx-tabs-tab" id="tab-3-3-2" name="3-2" role="tab" tabindex="-1">CentOS / RHEL</button></div><div aria-labelledby="tab-3-3-0" class="sphinx-tabs-panel" id="panel-3-3-0" name="3-0" role="tabpanel" tabindex="0"><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>apt<span class="w"> </span>update $<span class="w"> </span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>zammad </pre></div> </div> </div><div aria-labelledby="tab-3-3-1" class="sphinx-tabs-panel" hidden="true" id="panel-3-3-1" name="3-1" role="tabpanel" tabindex="0"><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>zypper<span class="w"> </span>ref $<span class="w"> </span>sudo<span class="w"> </span>zypper<span class="w"> </span>install<span class="w"> </span>zammad </pre></div> </div> </div><div aria-labelledby="tab-3-3-2" class="sphinx-tabs-panel" hidden="true" id="panel-3-3-2" name="3-2" role="tabpanel" tabindex="0"><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>yum<span class="w"> </span>install<span class="w"> </span>zammad </pre></div> </div> <p>Due to an <a class="reference external" href="https://github.com/crohr/pkgr/issues/165">issue</a> with packager.io on CentOS you鈥檒l need to correct file permissions for public files.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>chmod<span class="w"> </span>-R<span class="w"> </span><span class="m">755</span><span class="w"> </span>/opt/zammad/public/ </pre></div> </div> </div></div> </div> </div> <div class="section" id="firewall-selinux"> <h2>Firewall & SELinux<a class="headerlink" href="#firewall-selinux" title="Permalink to this headline">露</a></h2> <p>Some parts of these steps may not apply to you, feel free to skip them!</p> <div class="section" id="selinux"> <h3>SELinux<a class="headerlink" href="#selinux" title="Permalink to this headline">露</a></h3> <div class="admonition note"> <p class="admonition-title">Note</p> <p>The commands below only work on Ubuntu, Debian and CentOS. If you use a different distribution, please have a look at their documentation.</p> </div> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="c1"># Allow nginx or apache to access public files of Zammad and communicate</span> $<span class="w"> </span>sudo<span class="w"> </span>chcon<span class="w"> </span>-Rv<span class="w"> </span>--type<span class="o">=</span>httpd_sys_content_t<span class="w"> </span>/opt/zammad/public/ $<span class="w"> </span>sudo<span class="w"> </span>setsebool<span class="w"> </span>httpd_can_network_connect<span class="w"> </span>on<span class="w"> </span>-P $<span class="w"> </span>sudo<span class="w"> </span>semanage<span class="w"> </span>fcontext<span class="w"> </span>-a<span class="w"> </span>-t<span class="w"> </span>httpd_sys_content_t<span class="w"> </span>/opt/zammad/public/ $<span class="w"> </span>sudo<span class="w"> </span>restorecon<span class="w"> </span>-Rv<span class="w"> </span>/opt/zammad/public/ $<span class="w"> </span>sudo<span class="w"> </span>chmod<span class="w"> </span>-R<span class="w"> </span>a+r<span class="w"> </span>/opt/zammad/public/ </pre></div> </div> </div> <div class="section" id="firewall"> <h3>Firewall<a class="headerlink" href="#firewall" title="Permalink to this headline">露</a></h3> <p>Ensure to open ports <code class="docutils literal notranslate"><span class="pre">80</span></code> and <code class="docutils literal notranslate"><span class="pre">443</span></code> (TCP & UDP) beside of the ports you need. Below you can find a few examples for different distributions. If you are using a different distribution, please have a look at their documentation.</p> <p>Please note that the examples below only cover the distribution鈥檚 default firewall. It may not cover your case.</p> <div class="sphinx-tabs docutils container"> <div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-4-4-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-4-4-0" name="4-0" role="tab" tabindex="0">Ubuntu</button><button aria-controls="panel-4-4-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-4-4-1" name="4-1" role="tab" tabindex="-1">Debian</button><button aria-controls="panel-4-4-2" aria-selected="false" class="sphinx-tabs-tab" id="tab-4-4-2" name="4-2" role="tab" tabindex="-1">CentOS, RHEL, openSUSE, SLES</button></div><div aria-labelledby="tab-4-4-0" class="sphinx-tabs-panel" id="panel-4-4-0" name="4-0" role="tabpanel" tabindex="0"><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="c1"># Open Port 80 and 443 on your Firewall</span> $<span class="w"> </span>sudo<span class="w"> </span>ufw<span class="w"> </span>allow<span class="w"> </span><span class="m">80</span> $<span class="w"> </span>sudo<span class="w"> </span>ufw<span class="w"> </span>allow<span class="w"> </span><span class="m">443</span> $<span class="w"> </span>sudo<span class="w"> </span>ufw<span class="w"> </span>reload </pre></div> </div> </div><div aria-labelledby="tab-4-4-1" class="sphinx-tabs-panel" hidden="true" id="panel-4-4-1" name="4-1" role="tabpanel" tabindex="0"><div class="admonition warning"> <p class="admonition-title">Warning</p> <p>We鈥檙e covering <code class="docutils literal notranslate"><span class="pre">nftables</span></code> in this part - iptables is discouraged starting from Debian 10 (Buster). Our example uses the <code class="docutils literal notranslate"><span class="pre">input</span></code> chain, yours may be a different one!</p> </div> <p>Add the following lines to <code class="docutils literal notranslate"><span class="pre">/etc/nftables.conf</span></code> or your specific rule file. Ensure to add these lines to your input-chain.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Open Port 80 and 443 for Zammad</span> <span class="n">sudo</span> <span class="n">tcp</span> <span class="n">dport</span> <span class="p">{</span> <span class="n">http</span><span class="p">,</span> <span class="n">https</span> <span class="p">}</span> <span class="n">accept</span> <span class="n">sudo</span> <span class="n">udp</span> <span class="n">dport</span> <span class="p">{</span> <span class="n">http</span><span class="p">,</span> <span class="n">https</span> <span class="p">}</span> <span class="n">accept</span> </pre></div> </div> <p>The result should look like the following. Keep in mind that your environment could require different / more rules.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/usr/local/sbin/nft -f</span> <span class="n">flush</span> <span class="n">ruleset</span> <span class="n">table</span> <span class="n">inet</span> <span class="nb">filter</span> <span class="p">{</span> <span class="n">chain</span> <span class="nb">input</span> <span class="p">{</span> <span class="nb">type</span> <span class="nb">filter</span> <span class="n">hook</span> <span class="nb">input</span> <span class="n">priority</span> <span class="mi">0</span><span class="p">;</span> <span class="n">policy</span> <span class="n">drop</span><span class="p">;</span> <span class="n">ct</span> <span class="n">state</span> <span class="n">established</span><span class="p">,</span><span class="n">related</span> <span class="n">accept</span> <span class="n">tcp</span> <span class="n">dport</span> <span class="n">ssh</span> <span class="n">log</span> <span class="n">accept</span> <span class="n">tcp</span> <span class="n">dport</span> <span class="p">{</span> <span class="n">http</span><span class="p">,</span> <span class="n">https</span> <span class="p">}</span> <span class="n">accept</span> <span class="n">udp</span> <span class="n">dport</span> <span class="p">{</span> <span class="n">http</span><span class="p">,</span> <span class="n">https</span> <span class="p">}</span> <span class="n">accept</span> <span class="p">}</span> <span class="n">chain</span> <span class="n">forward</span> <span class="p">{</span> <span class="nb">type</span> <span class="nb">filter</span> <span class="n">hook</span> <span class="n">forward</span> <span class="n">priority</span> <span class="mi">0</span><span class="p">;</span> <span class="n">policy</span> <span class="n">accept</span><span class="p">;</span> <span class="p">}</span> <span class="n">chain</span> <span class="n">output</span> <span class="p">{</span> <span class="nb">type</span> <span class="nb">filter</span> <span class="n">hook</span> <span class="n">output</span> <span class="n">priority</span> <span class="mi">0</span><span class="p">;</span> <span class="n">policy</span> <span class="n">accept</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div> <p>To load your new rules, simply run <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">systemctl</span> <span class="pre">reload</span> <span class="pre">nftables</span></code>.</p> </div><div aria-labelledby="tab-4-4-2" class="sphinx-tabs-panel" hidden="true" id="panel-4-4-2" name="4-2" role="tabpanel" tabindex="0"><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="c1"># Open Port 80 and 443 on your Firewall</span> $<span class="w"> </span>sudo<span class="w"> </span>firewall-cmd<span class="w"> </span>--zone<span class="o">=</span>public<span class="w"> </span>--add-service<span class="o">=</span>http<span class="w"> </span>--permanent $<span class="w"> </span>sudo<span class="w"> </span>firewall-cmd<span class="w"> </span>--zone<span class="o">=</span>public<span class="w"> </span>--add-service<span class="o">=</span>https<span class="w"> </span>--permanent $<span class="w"> </span>sudo<span class="w"> </span>firewall-cmd<span class="w"> </span>--reload </pre></div> </div> </div></div> </div> </div> <div class="section" id="manage-services-of-zammad"> <h2>Manage Services of Zammad<a class="headerlink" href="#manage-services-of-zammad" title="Permalink to this headline">露</a></h2> <p>In general Zammad uses three services - these can be (re)started & stopped with the parent <code class="docutils literal notranslate"><span class="pre">zammad</span></code>.</p> <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="c1"># Zammad service to start all services at once</span> $<span class="w"> </span>systemctl<span class="w"> </span><span class="o">(</span>status<span class="p">|</span>start<span class="p">|</span>stop<span class="p">|</span>restart<span class="o">)</span><span class="w"> </span>zammad $<span class="w"> </span><span class="c1"># Zammads internal puma server (relevant for displaying the web app)</span> $<span class="w"> </span>systemctl<span class="w"> </span><span class="o">(</span>status<span class="p">|</span>start<span class="p">|</span>stop<span class="p">|</span>restart<span class="o">)</span><span class="w"> </span>zammad-web $<span class="w"> </span><span class="c1"># Zammads background worker - relevant for all delayed- and background jobs</span> $<span class="w"> </span>systemctl<span class="w"> </span><span class="o">(</span>status<span class="p">|</span>start<span class="p">|</span>stop<span class="p">|</span>restart<span class="o">)</span><span class="w"> </span>zammad-worker $<span class="w"> </span><span class="c1"># Zammads websocket server for session related information</span> $<span class="w"> </span>systemctl<span class="w"> </span><span class="o">(</span>status<span class="p">|</span>start<span class="p">|</span>stop<span class="p">|</span>restart<span class="o">)</span><span class="w"> </span>zammad-websocket </pre></div> </div> </div> <div class="section" id="next-steps"> <h2>Next Steps<a class="headerlink" href="#next-steps" title="Permalink to this headline">露</a></h2> <p>With this Zammad technically is ready to go. However, you鈥檒l need to follow the following further steps to access Zammads Web-UI and getting started with it.</p> <blockquote> <div><ol class="arabic simple"> <li><p><a class="reference internal" href="elasticsearch.html#configure-zammad-with-elasticsearch"><span class="std std-ref">Connect Zammad with Elasticsearch</span></a></p></li> <li><p><a class="reference internal" href="../getting-started/configure-webserver.html"><span class="doc">Configure the Webserver</span></a></p></li> <li><p><a class="reference internal" href="../getting-started/first-steps.html"><span class="doc">First Steps</span></a></p></li> <li><p>You may also find Zammads <a class="reference internal" href="../admin/console.html"><span class="doc">Console</span></a> commands useful</p></li> </ol> </div></blockquote> <p>If you expect usage with 5 agents or more you may also want to consider the following pages.</p> <blockquote> <div><ul class="simple"> <li><p><a class="reference internal" href="../appendix/configure-env-vars.html#performance-tuning"><span class="std std-ref">Performance Tuning</span></a></p></li> <li><p><a class="reference internal" href="../appendix/configure-database-server.html"><span class="doc">Configure Database Server</span></a></p></li> </ul> </div></blockquote> </div> </div> </div> </div> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> <a href="../prerequisites/hardware.html" class="btn btn-neutral float-left" title="Hardware" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="docker-compose.html" class="btn btn-neutral float-right" title="Install with Docker" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> </div> <hr/> <div role="contentinfo"> <p>© Copyright 2024, Zammad.</p> </div> Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. </footer> </div> </div> </section> </div> <script> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>