Zammad ticketing/helpdesk on Nethserver available


(HF) #22

@mrmarkuz, is this still your objective please?

TIA


(Markus Neuberger) #23

Yes, I am going to move on when I have more time.


(Alessio Fattorini) #24

How can we help you man?

@LayLow how are you helping him?


(Markus Neuberger) #25

Thanks, I have some open projects at the moment:

  • moodle upgrade
  • keycloak
  • zammad
  • onlyoffice upgrade

But it’s just a matter of time when I can finish them…I assume to move on and have something ready this weekend.


(HF) #26

I’ll test and provide feedback if I can.


(Markus Neuberger) #27

You may use the reverse proxy module and create a virtualhost rule:

http://docs.nethserver.org/en/v7/proxy_pass.html#path-and-virtual-host-rules

Now you should be able to browse to https://myserver.domain.local and use zammad on default HTTPS port.

Next step is to check if it’s possible to disable nginx and use apache only and allow to browse to https://NETHSERVER/zammad


(markshaz) #28

Hello did you see this maybe useful :wink:https://github.com/zammad/zammad/blob/develop/contrib/apache2/zammad_ssl.conf


(Markus Neuberger) #29

Thanks, that’s working! I just had to stop/disable nginx, comment out the SSLCertificate lines and set the ServerName and the Redirect.

systemctl disable nginx --now
/etc/httpd/conf.d/zammad.conf
<VirtualHost *:80>
    ServerName myserver.domain.local
    Redirect permanent / https://myserver.domain.local
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

#    SSLCertificateFile /etc/letsencrypt/live/example.com-0000/fullchain.pem
#    SSLCertificateKeyFile /etc/letsencrypt/live/example.com-0000/privkey.pem
#    SSLCertificateChainFile /etc/ssl/lets-encrypt-x3-cross-signed.pem
#    SSLOpenSSLConfCmd DHParameters /etc/ssl/dhparam.pem

    # replace 'localhost' with your fqdn if you want to use zammad from remote
    ServerName myserver.domain.local

    ## don't loose time with IP address lookups
    HostnameLookups Off

    ## needed for named virtual hosts
    UseCanonicalName Off

    ## configures the footer on server-generated documents
    ServerSignature Off

    ProxyRequests Off
    ProxyPreserveHost On

    <Proxy 127.0.0.1:3000>
      Require local
    </Proxy>

    ProxyPass /assets !
    ProxyPass /favicon.ico !
    ProxyPass /robots.txt !
    ProxyPass /ws ws://127.0.0.1:6042/
    ProxyPass / http://127.0.0.1:3000/

    # Use settings below if proxying does not work and you receive HTTP-Errror 404
    # if you use the settings below, make sure to comment out the above two options
    # This may not apply to all systems, applies to openSuse
    #ProxyPass /ws ws://127.0.0.1:6042/ "retry=1 acque=3000 timeout=600 keepalive=On"
    #ProxyPass / http://127.0.0.1:3000/ "retry=1 acque=3000 timeout=600 keepalive=On"

    DocumentRoot "/opt/zammad/public"

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory "/opt/zammad/public">
        Options FollowSymLinks
              Require all granted
    </Directory>
</VirtualHost>

Next step would be having zammad available at https://neth/zammad instead of a virtualhost.


(Markus Neuberger) #30

It seems not possible to have zammad at https://nethserver/zammad, at least I couldn’t make it work and I found no documentation. I tried several reverse proxy/url rewrite methods.
Zammad needs a virtualhost like mattermost.


(Markus Neuberger) #31

Work in progress:

EDIT:

I am actually fighting with the provided zammad package. It installs and configures zammad during yum install. If nethserver-postgresql is installed it does not work. I have to check what the zammad package does and find a workaround or maybe repackage it. This may take some more time.


(Alessio Fattorini) #32

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


(HF) #33

@mrmarkuz, kindly asking if it works out please?


(Markus Neuberger) #34

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


(HF) #35

Thanks for your efforts!


(Markus Neuberger) #36

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.


(HF) #37

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

For reference, install log: https://pastebin.com/zcK17ubr

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


(Markus Neuberger) #38

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…


(HF) #39

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


(HF) #40

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:


(HF) #41

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