Zammad ticketing/helpdesk on Nethserver available

Sounds like a great project. It would be great having a module like that for our platform

1 Like

@mrmarkuz, kindly asking if it works out please?

1 Like

Not much time actually, hopefully I can release something working til end of the week, I keep you updated.

1 Like

Thanks for your efforts!

Zammad module is ready for testing…

Zammad needs a virtualhost, I used myserver.domain.local, change it to fit your needs.

yum -y install https://mrmarkuz.goip.de/mirror/mrmarkuz/7/noarch/nethserver-mrmarkuz-0.0.1-3.ns7.noarch.rpm
yum -y install nethserver-zammad
config setprop zammad VirtualHost myserver.domain.local
yum -y install zammad
signal-event nethserver-zammad-update

Zammad should be reachable at https://myserver.domain.local.after a few seconds.

5 Likes

@mrmarkuz, thanks, testing some stuff on a vanilla updated NS7 VM, but not yet finished.

For reference, install log: [root@localhost ~]# yum -y install https://mrmarkuz.goip.de/mirror/mrmarkuz/7/no - Pastebin.com

Q1. Is it correct that nethserver-httpd-virtualhosts is not installed? If I install it after the zammad installation, the virtual hosts only holds the default and not the vhost set bythe installation db command.

Q2. Would your module also work with PostgreSQL10 module from @stephdl


Name Version Release
elasticsearch 5.6.15 1

Q3. An update to Elasticsearch is immediately available via software center. The dependency installed one is elasticsearch.noarch 0:5.6.14-1. Is this on purpose or simply a mid-air collision with an Elasticsreach update?

Q4. How would the zammad installation behave on a NS7 with Nextcloud/Onlyoffice?

Q5. For now I installed zammad, but can’t reach the webinterface, instead I see the main NS webpage. This could be due to me working with a local VM and entry in /etc/hosts on my pc to mimic the FQDN and vhost. I can’t tell right now.

Q6. “config show zammad” shows:

[root@localhost ~]# config show zammad
zammad=service
VirtualHost=zammad.ns7.localdomain
access=
status=enabled

where “access” is empty. Should this be the case? Although zammad is running (services panel), there is no entry in the “network services” panel.

Very nice work!

HTH

1 Like

Thanks for testng!
I found another bug, nginx is not started because a conf file still exists, I am going to fix it by templating the nginx conf file.

Yes, because nethserver-httpd-virtualhosts is for user customized virtualhosts. A module just uses a httpd .conf file, in this case /etc/httpd/conf.d/zammad.conf, to configure a virtualhost.

I have to test it. The problem could be that I use the original zammad.rpm that is only installable on vanilla centos 7 and maybe not compatible to newer postgres versions.

Thanks, I uploaded an older elasticsearch.rpm to my repo. I’ll fix this asap.

I didn’t test yet but should work. I don’t see an overlap.

I tested with a local hosts file too, it should work.
Maybe you need another signal-event nethserver-zammad-update to apply it?

The first lines of /etc/httpd/conf.d/zammad.conf should show your virtualhost:

<VirtualHost *:80>
    ServerName myserver.domain.local
    Redirect permanent / https://myserver.domain.local

I am going to fix it, to be shown in network services. It seems the TCPPort is missing…

1 Like

Thanks very much. I’ll wait for an update before continueing testing. Progress by elimination :wink:

1 Like

It does. My bad :slight_smile:

Now that I have access to Zammad on NS7, it becomes clear to me that another study and learning curve is required to ‘master’ Zammad :slight_smile: :slight_smile:

1 Like

Installed zammad on a semi production NS7 with Nextcloud, OnlyOffice and Elasticsearch. No issues at all, all functioning properly!


Spoke a bit too soon.

Zammad gives me an error: StatusCode 500


{“error”:“Unable to process GET request to elasticsearch URL ‘http://127.0.0.1:9200/zammad_production/Ticket/_search’. Elasticsearch is not reachable, probably because it’s not running or even installed.\n\nResponse:\n#\u003cUserAgent::Result:0x00007f25ec4739e8 @success=false, @body=nil, @data=nil, @code=0, @content_type=nil, @error="#\u003cErrno::ECONNREFUSED: Failed to open TCP connection to 127.0.0.1:9200 (Connection refused - connect(2) for \"127.0.0.1\" port 9200)\u003e"\u003e\n\nPayload:\n{:query=\u003e{:bool=\u003e{:must=\u003e[{:range=\u003e{"created_at"=\u003e{:from=\u003e"2019-01-01", :to=\u003e"2019-12-31"}}}], :must_not=\u003e[{:term=\u003e{"state"=\u003e"merged"}}]}}, :size=\u003e0, :aggs=\u003e{:time_buckets=\u003e{:date_histogram=\u003e{:field=\u003e"created_at", :interval=\u003e"month"}}}}\n\nPayload size: 0M”}


To reproduce: Log in as admin or user and click ‘Reporting’ ( lower left corner, right of the user profile)

I rebooted the server after installing zammad, but I’m not sure if the error was present before.

“systemctl status elasticsearch” shows that it IS running and elasticsearch in Nextcloud is working properly.

HTH

1 Like

I can not reproduce the error except of when I stop elasticsearch. Did you edit /etc/elasticsearch/elasticsearch.yml ?

Which other packages are installed?

rpm -qa "nethserver-*" | sort

Just to compare the elasticsearch output:

[root@testserver ~]# curl -X GET localhost:9200
{
  "name" : "miqcSTK",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "90cgbWNtTx2WqAvPoDro9A",
  "version" : {
    "number" : "5.6.15",
    "build_hash" : "fe7575a",
    "build_date" : "2019-02-13T16:21:45.880Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

I am going to test some more when updating the module…

As a follow up, some issues have been manually corrected. Awaiting the next test version for further testing.

1 Like

Update available!

  • zammad.conf - servername fixed
  • templated nginx zammad.conf
  • change port from 3000 to 3001 to safely coexist with ntopng
  • integrated to network services
  • app button
  • backup postgres db

Fresh install:

yum -y install https://mrmarkuz.goip.de/mirror/mrmarkuz/7/noarch/nethserver-mrmarkuz-0.0.1-3.ns7.noarch.rpm
yum -y install nethserver-zammad
config setprop zammad VirtualHost myserver.domain.local
yum -y install zammad
signal-event nethserver-zammad-update

Update:

yum -y update nethserver-zammad

2 Likes

Updated the initial install. All issues gone! Verified various config files and all ok.:slight_smile:

Your ‘trick’ by using the db key value of the virtual host for the app button should be integrated into all apps. Most of them (if not all) are hardcoded I guess.

Many thanks again!

2 Likes

Thanks again for testing!

I copied it from nethserver-mattermost.
With a virtualhost a db value is used.
In most other cases the browser url host is used and just “/appname” appended.

2 Likes

One more thing… :wink:

If I disable (config setprop zammad status disabled) zammad followed by signal-event nethserver-zammad-update, the httpd zammad.conf is still in place, where I would expect it to be removed.

After the above, and manually removing the zammad.conf file, the signal-event re-generates the zammad.conf file.

Would it be more consistent to have the signal-event check the status and thus will or will not generate the zammad.conf file?

Visiting the zammad virtualhost (e.g. zammad.myserver.com) now leads to and error message when zammad is set to disabled.

HTH

1 Like

Yes it would so I updated the module.
The zammad.conf is still generated as it’s a template but it gets emptied now when zammad is disabled.
Visiting the zammad virtualhost now shows the Nethserver page.

I added a Zammad wiki page.

1 Like

I’ve updated the module and can confirm the zammad.conf file is now ‘empty’ when status is set to disabled.

Again, many thanks. It now appears to be a very robust module.

1 Like

You’re welcome, thanks for testing.

@mandcsharma, seems the module is ready. :grinning:

3 Likes

Ehy guys! Great job. Wow a lot of testing and code here.
As we said at the conference in bruxelles in our community people ask things and most likely they get it
Kudos @mrmarkuz and @LayLow

2 Likes