Zammad ticketing/helpdesk on Nethserver available

@mrmarkuz Zammad 5 is released now, do you see when would it be updated in the repo?

Also as I noticed, if there is any elasticsearch update, then we need to run:

/usr/share/elasticsearch/bin/elasticsearch-plugin remove ingest-attachment
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Otherwise the plugin version mismatches the elasticsearch version.

I guess signal-event nethserver-zammad-update would do the same, but that does not get called automatically at elasticsearch updates.

I am not sure how signal events works, is it possible to add it to elasticsearch updates?

1 Like

Interested and following like a backpack…

Well… Prerequisite “interesting” from Install from package — Zammad documentation

# CentOS 7
$ yum install postgresql14-server
$ postgresql-14-setup initdb
$ systemctl start postgresql-14
$ systemctl enable postgresql-14

# general
$ yum install zammad

Let’s see my setup what carries…

# rpm -qa postgre*
postgresql-libs-9.2.24-7.el7_9.x86_64
postgresql-server-9.2.24-7.el7_9.x86_64
postgresql-9.2.24-7.el7_9.x86_64

Oh dear.

 yum list postgresql*
Loaded plugins: changelog, fastestmirror, nethserver_events
Loading mirror speeds from cached hostfile
 * ce-base: mirrors.prometeus.net
 * ce-extras: mirrors.prometeus.net
 * ce-sclo-rh: mirrors.prometeus.net
 * ce-sclo-sclo: mirrors.prometeus.net
 * ce-updates: mirrors.prometeus.net
 * epel: epel.mirror.wearetriple.com
 * nethforge: nethserver.interlin.nl
 * nethserver-base: nethserver.interlin.nl
 * nethserver-updates: nethserver.interlin.nl
Installed Packages
postgresql.x86_64                                                                        9.2.24-7.el7_9                                                      @ce-updates
postgresql-libs.x86_64                                                                   9.2.24-7.el7_9                                                      @ce-updates
postgresql-server.x86_64                                                                 9.2.24-7.el7_9                                                      @ce-updates
Available Packages
postgresql.i686                                                                          9.2.24-7.el7_9                                                      ce-updates
postgresql-contrib.x86_64                                                                9.2.24-7.el7_9                                                      ce-updates
postgresql-devel.i686                                                                    9.2.24-7.el7_9                                                      ce-updates
postgresql-devel.x86_64                                                                  9.2.24-7.el7_9                                                      ce-updates
postgresql-docs.x86_64                                                                   9.2.24-7.el7_9                                                      ce-updates
postgresql-jdbc.noarch                                                                   9.2.1002-8.el7_8                                                    ce-updates
postgresql-jdbc-javadoc.noarch                                                           9.2.1002-8.el7_8                                                    ce-updates
postgresql-libs.i686                                                                     9.2.24-7.el7_9                                                      ce-updates
postgresql-odbc.x86_64                                                                   09.03.0100-2.el7                                                    ce-base
postgresql-pgpool-II.x86_64                                                              3.4.6-1.el7                                                         epel
postgresql-pgpool-II-devel.x86_64                                                        3.4.6-1.el7                                                         epel
postgresql-pgpool-II-extensions.x86_64                                                   3.4.6-1.el7                                                         epel
postgresql-plperl.x86_64                                                                 9.2.24-7.el7_9                                                      ce-updates
postgresql-plpython.x86_64                                                               9.2.24-7.el7_9                                                      ce-updates
postgresql-plruby.x86_64                                                                 0.5.3-13.el7                                                        epel
postgresql-plruby-doc.x86_64                                                             0.5.3-13.el7                                                        epel
postgresql-pltcl.x86_64                                                                  9.2.24-7.el7_9                                                      ce-updates
postgresql-static.i686                                                                   9.2.24-7.el7_9                                                      ce-updates
postgresql-static.x86_64                                                                 9.2.24-7.el7_9                                                      ce-updates
postgresql-test.x86_64                                                                   9.2.24-7.el7_9                                                      ce-updates
postgresql-upgrade.x86_64                                                                9.2.24-7.el7_9                                                      ce-updates
postgresqltuner.noarch                    

Something tells me that a “little” version change is… advisable.
Anyway, PostgreSQL 9.3 or later seems still supported. So a small update.
But a ruby upgrade is requrested to 2.7.4.

And if i add as requested this repository…
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
PostgreSQL 9.6 tells me “Ding dong, Hello! I want to land on your setup”.

Moreover… nodejs in Nethserver is 6.something, and Zammad “not so kindly” asks 12. Oh dear act II

1 Like

Thanks for the information. I’m going to update it as soon as the DB migration to the required postgresql 9.3+ works. I’ll provide a testing package asap.

Maybe it’s time for nethserver-elasticsearch to check ingrest attachment on update…with preconfig for Nextcloud full text search :thinking:

OK, Update and DB migration needed, I’d go for nethserver-postgresql12 as used with mattermost but I need to check. I guess this avoids the ruby upgrade…

Node.js is only needed for JS or CSS changes, see documentation

EDIT:

Ah, now I understand, zammad requires postgresql-server in version 9.3+ so we can’t use rh-postgresql*. :unamused:

Maybe we should just use docker?

https://docs.zammad.org/en/latest/install/docker-compose.html

YEAH

One oft the best news

Would you please explain me why the repository that I added could not suit that good? Package conflict with already installed PostgreSQL?
PostgreSQL could not be upgraded to 9.6 without breaking all the surroundings?

Hard pass. Sorry, not going to dockerize a server than one day or another will be… shipped elsewhere (hosting), plain server suits better to me.

1 Like

It’s not a conflict, it updates the default postgresql 9.2 provided by CentOS 7 that’s still used by Webtop, zabbix and phpmyadmin for example.
Upgrading packages provided by the distro with external ones can cause problems.
SCL aims to avoid these problems by providing newer versions of software and run it in a special environment. This would allow installing rh-postgresql12 next to the postgresql 9.2 packages.
The new zammad 5 RPM requires the external postgres packages so it’s not installable without upgrading.

So at least if we go the external upgrade way we need to test impacted software and maybe need to upgrade modules that use it - that’s effort.

I feel you as I always fighted for native integration of software because of ressources/performance/security.
But even if docker generates overhead and another layer, it would solve update or package requirements issues.
If we had used docker, we could just run Zammad 5 now without issues.

We could Install from source or repackage zammad but that’s effort too. I’m going to check and test possible solutions.

From Zammad docs:

The source installation is the most difficult installation type of Zammad.

if this was done throu yum install nethserver-zammad, then i wont mind docker.
but there are many hops to isntalling dockerized versions of apps.

1 Like

from looking at Zammad docs,
i don’t see major new features and functions in Zammad 5 that would make me want to break things on my server to get it.
i will however test on a testing server, and when it works accordingly, ill update as required.

this is a good one but pricey: MessageBird | An omnichannel communications platform, built for global scale

Well… I’m stuck at 3.6.x. maybe i missed the upgrade to Zammad 4.0?

Well. I did not.

Do not try to do the same thing on a production server! This could brake your installation, so if you want to run it…

Backup before burden

Or simply… don’t do it.

After an little search i tried to… run down the hill for an update from 3.6.0 to 4.0. So, here we go.
Source:

With these instructions the 4.0.x repo of Zammad can be installed into sistem.

sudo wget -O /etc/yum.repos.d/zammad.repo \
  https://dl.packager.io/srv/zammad/zammad/stable-4.0/installer/el/7.repo

Output

[root@nethtest01 ~]# sudo wget -O /etc/yum.repos.d/zammad.repo \
https://dl.packager.io/srv/zammad/zammad/stable-4.0/installer/el/7.repo
--2021-10-09 16:14:16--  https://dl.packager.io/srv/zammad/zammad/stable-4.0/installer/el/7.repo
Resolving dl.packager.io (dl.packager.io)... 178.63.71.248
Connecting to dl.packager.io (dl.packager.io)|178.63.71.248|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘/etc/yum.repos.d/zammad.repo’

    [ <=>                                                                                                                                                              ] 279         --.-K/s   in 0s

2021-10-09 16:14:16 (16.8 MB/s) - ‘/etc/yum.repos.d/zammad.repo’ saved [279]

But instead of running the install, i prefered an… update.

[root@nethtest01 ~]# yum update
Loaded plugins: changelog, fastestmirror, nethserver_events
Loading mirror speeds from cached hostfile
 * ce-base: mirrors.prometeus.net
 * ce-extras: mirrors.prometeus.net
 * ce-sclo-rh: mirrors.prometeus.net
 * ce-sclo-sclo: mirrors.prometeus.net
 * ce-updates: mirrors.prometeus.net
 * epel: ftp.plusline.net
 * nethforge: mrmarkuz.dynu.net
 * nethserver-base: mrmarkuz.dynu.net
 * nethserver-updates: mrmarkuz.dynu.net
zammad/x86_64/signature                                                                                                                                                             |  473 B  00:00:00
zammad/x86_64/signature                                                                                                                                                             | 1.3 kB  00:00:00
zammad/x86_64/primary                                                                                                                                                               | 3.2 kB  00:00:00
zammad                                                                                                                                                                                                 7/7
Resolving Dependencies
--> Running transaction check
---> Package zammad.x86_64 0:3.6.0-1614852413.9a3a289a.centos7 will be updated
---> Package zammad.x86_64 0:4.0.1-1625488687.c4fbc989.centos7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================================================================================================================
 Package                                   Arch                                      Version                                                               Repository                                 Size
===========================================================================================================================================================================================================
Updating:
 zammad                                    x86_64                                    4.0.1-1625488687.c4fbc989.centos7                                     zammad                                    120 M

Transaction Summary
===========================================================================================================================================================================================================
Upgrade  1 Package

Total download size: 120 M
Is this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for zammad
zammad-4.0.1-1625488687.c4fbc989.centos7.x86_64.rpm                                                                                                                                 | 120 MB  00:00:33
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : zammad-4.0.1-1625488687.c4fbc989.centos7.x86_64                                                                                                                                         1/2
# (Re)creating init scripts
Nothing to do.
Nothing to do.
Nothing to do.
# Enabling Zammad on boot
# Stopping Zammad
# database.yml found. Updating db...
== 20201013095141 ElasticSearchLower65Obsolete: migrating =====================
== 20201013095141 ElasticSearchLower65Obsolete: migrated (0.0133s) ============

== 20201110000001 MentionInit: migrating ======================================
-- create_table(:mentions)
   -> 0.1921s
-- add_index(:mentions, [:mentionable_id, :mentionable_type, :user_id], {:unique=>true, :name=>"index_mentions_mentionable_user"})
   -> 0.0030s
-- add_foreign_key(:mentions, :users, {:column=>:created_by_id})
   -> 0.0409s
-- add_foreign_key(:mentions, :users, {:column=>:updated_by_id})
   -> 0.0023s
-- add_foreign_key(:mentions, :users, {:column=>:user_id})
   -> 0.0021s
== 20201110000001 MentionInit: migrated (0.6790s) =============================

== 20201111133905 MaintenanceAssociationsCleanup: migrating ===================
-- remove_reference(:templates, :user, {:index=>true, :foreign_key=>true})
   -> 0.0270s
-- remove_reference(:text_modules, :user, {:index=>true, :foreign_key=>true})
   -> 0.0103s
== 20201111133905 MaintenanceAssociationsCleanup: migrated (0.0384s) ==========

== 20201118140850 Issue2671PendingTillCanBeChangedByCustomer: migrating =======
== 20201118140850 Issue2671PendingTillCanBeChangedByCustomer: migrated (0.0330s)

== 20201201000001 SettingAddSenderFormatAgentName: migrating ==================
== 20201201000001 SettingAddSenderFormatAgentName: migrated (0.0168s) =========

== 20201202080338 Issue3270SelectorUpdate: migrating ==========================
== 20201202080338 Issue3270SelectorUpdate: migrated (0.0851s) =================

== 20201210075534 MaintenanceMissingKbUniqueIndexes: migrating ================
-- add_index(:knowledge_base_locales, [:system_locale_id, :knowledge_base_id], {:name=>"index_kb_locale_on_kb_system_locale_kb", :unique=>true})
   -> 0.0027s
-- add_index(:knowledge_base_translations, [:kb_locale_id, :knowledge_base_id], {:name=>"index_kb_t_on_kb_locale_kb", :unique=>true})
   -> 0.0013s
-- add_index(:knowledge_base_category_translations, [:kb_locale_id, :category_id], {:name=>"index_kb_c_t_on_kb_locale_category", :unique=>true})
   -> 0.0043s
-- add_index(:knowledge_base_answer_translations, [:kb_locale_id, :answer_id], {:name=>"index_kb_a_t_on_kb_locale_answer", :unique=>true})
   -> 0.0014s
== 20201210075534 MaintenanceMissingKbUniqueIndexes: migrated (0.0106s) =======

== 20210113000001 GitLabSupport: migrating ====================================
== 20210113000001 GitLabSupport: migrated (0.0170s) ===========================

== 20210118095820 Issue3372WebhooksAdminView: migrating =======================
-- create_table(:webhooks)
   -> 0.0048s
== 20210118095820 Issue3372WebhooksAdminView: migrated (0.0364s) ==============

== 20210215000001 SettingEsTotalMaxSizeInMb: migrating ========================
== 20210215000001 SettingEsTotalMaxSizeInMb: migrated (0.0028s) ===============

== 20210308000001 GitHubSupport: migrating ====================================
== 20210308000001 GitHubSupport: migrated (0.0165s) ===========================

== 20210310090351 ActiverecordSessionStore114: migrating ======================
== 20210310090351 ActiverecordSessionStore114: migrated (0.0074s) =============

== 20210311130946 RemoveUnfixableGenericOauth2Login: migrating ================
== 20210311130946 RemoveUnfixableGenericOauth2Login: migrated (0.0044s) =======

== 20210428125300 Issue3523NewOperator: migrating =============================
== 20210428125300 Issue3523NewOperator: migrated (0.0010s) ====================

== 20210510092410 Issue3550SetPretty: migrating ===============================
== 20210510092410 Issue3550SetPretty: migrated (0.0013s) ======================

# Updating translations...
# Configuring Elasticsearch...
-> removing [ingest-attachment]...
-> Installing ingest-attachment
-> Downloading ingest-attachment from elastic
[=================================================] 100%  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.java2d.cmm.kcms
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.security.SecurityPermission createAccessControlContext
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

-> Installed ingest-attachment
-> Please restart Elasticsearch to activate any plugins installed
# Starting Zammad
# Creating webserver bootstart
# Restarting webserver nginx
####################################################################################

Add your fully qualified domain name or public IP to servername directive of
nginx, if this installation is done on a remote server. You have to change:
 and restart nginx process.
Otherwise just open http://localhost/ in your browser to start using Zammad.

####################################################################################
  Cleanup    : zammad-3.6.0-1614852413.9a3a289a.centos7.x86_64                                                                                                                                         2/2
  Verifying  : zammad-4.0.1-1625488687.c4fbc989.centos7.x86_64                                                                                                                                         1/2
  Verifying  : zammad-3.6.0-1614852413.9a3a289a.centos7.x86_64                                                                                                                                         2/2

Updated:
  zammad.x86_64 0:4.0.1-1625488687.c4fbc989.centos7

Complete!

And… at the end, the usual signal-update.

[root@nethtest01 ~]# signal-event nethserver-zammad-update
[root@nethtest01 ~]#

And… it worked!

I had a Zammad opened session, no activity running. After enough… patience (30-45 seconds after the signal-update) I had the chance to refresh the page and find the version 4.0.1 installed.

My installation is “mint”, only SMTP notifications, no integrations with other systems.

A later yum update found nothing to update/upgrade.

1 Like

I was Wrong.

the new version does have improvements that would greatly improve operational workflow.

Since this new version of Zammad requires a different pgsql database than ships with.
cant we install that new pgsql version in docker, then make zammad make use of that, untill the version of nethserver is bumped to the latr version.

I believe this will work best without doing a lot of work in migrating all scripts to the new pgsql version in NethServe

1 Like

The Zammad 5 docker version is working like a charm but I’m going to recheck zammad compilation once more.

The issue is that the zammad rpm requires the exact postgresql package > 9.4, so rh-postgres* or a docker version are not working.
The docker version already has a working postgresql container, so in case of an update from Zammad 4 we just need to migrate old data from postgresql 9.2 to the container.

1 Like

ok great Job

I hope then when the PostgreSQL 9.4 becomes available on centos, we can have have a non docker install of the same.

I don’t have anything against docker, but in my own personal opinion, dockerizing almost everything can be a management nightmare. especially for backing up individual files, etc.

CentOS Stream.

haha a

Nothing to laugh about, the statement comes from the behavior of CentOS 7: no more than PGSQL 92.

Just checking on the latest on Zammad/5/Docker/PgSQL etc etc.

1 Like

been using zammad for wuite a while now. the latest version and it works quite pretty well. @mrmarkuz has done alot in fixing bugs that arouse during usage.

1 Like

Can you tell a bit more about the setup such as:

  • Number of users
  • Type of channels/connectors
  • Ticket load
  • User experience

Please?

@mrmarkuz I see this is version 4.0.1, how to get on par with the latest available version please? Or (as frequently) are the CentOS 7 repo packages behind…?

TIA