E-mailowy Service Desk z self-hosted GitLab EE i iRedMail

Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał

Aby przetwarzać przychodzące wiadomości e-mail jako issues rejestrowane w GitLabie, potrzebujesz skrzynki catch-all i GitLaba skonfigurowanego do jej obsługi. Jest jednak kilka niuansów, które trzeba znać przy konfiguracji.

Zakładam, że masz zainstalowany GitLab oraz iRedMail.

iRedMail #

Najpierw utwórz nową skrzynkę w panelu administracyjnym iRedMail. Następnie ręcznie utwórz rekord przekierowania. Możesz to pominąć, jeśli kupiłeś iRedMail Pro:

SQL
INSERT INTO forwardings 
  (address, forwarding, domain, dest_domain)
VALUES 
  ('domain.com', 'catchall@domain.com', 'domain.com', 'domain.com');

W tym momencie możesz sprawdzić, czy funkcja catch-all działa, wysyłając wiadomość do nieistniejącego użytkownika skrzynki. Szczególnie ważne jest sprawdzenie, czy wiadomości dotrą po wysłaniu na adres catchall+something@domain.com. Początkowo będą pojawiać się jako osobne foldery skrzynki, co z perspektywy GitLaba nie jest dobre. Łatwo to jednak naprawić, usuwając parametr extensions z dovecota. Zmień więc to:

Text
dovecot unix    -       n       n       -       -      pipe
    flags=DRh ... -m ${extension}

na to:

Text
dovecot unix    -       n       n       -       -      pipe
    flags=DRh ...

I uruchom /etc/init.d/postix restart

GitLab #

Jeśli chodzi o sam GitLab, sprawa jest prosta. Wystarczy edytować parametry incoming_email* w /etc/gitlab/gitlab.rb. Trzeba jednak użyć IMAP, więc wybierz między portami 143 i 993. Pierwszy jest przeznaczony do STARTTLS, a drugi do TLS. W przypadku domyślnej instalacji iRedMail będzie certyfikat self-signed i przychodzące e-maile nie będą działać, co swoją drogą możesz sprawdzić następującym poleceniem:

Bash
sudo gitlab-rake gitlab:incoming_email:check

Gdy uzupełnisz wszystkie wymagane parametry:

Bash
sudo gitlab-ctl reconfigure

Pamiętaj, że cała konfiguracja, którą zmieniłeś w PostgreSQL, zostanie odrzucona (/var/opt/gitlab/postgresql/data/pg_hba.conf i /var/opt/gitlab/postgresql/data/postgresql.conf), więc musisz się tym zająć – albo przez szablony, albo umieszczając ją w głównej konfiguracji GitLaba.

Pobierz certyfikat iRedMail. Możesz go pobrać przez przeglądarkę. Zapisz go jako plik .crt w katalogu /etc/gitlab/trusted-certs. Następnie wykonaj ponownie reconfigure i jeszcze raz sprawdź łączność. Wszystko powinno działać.

Jak z tego korzystać? #

W GitLabie service desk jest automatycznie włączony we wszystkich tworzonych projektach. Znajdziesz go w Monitor – Service Desk. Znajdziesz tam również docelowy adres e-mail, na który będziesz wysyłać wiadomości do service desku. Po wysłaniu wiadomość pojawi się w tej sekcji jako issue. Możesz komentować i odpowiadać bezpośrednio z klienta poczty, bez potrzeby odwiedzania samego GitLaba.

Wersja Markdown

Wszystkie treści na tej stronie są udostępniane na licencji Uznanie autorstwa – Użycie niekomercyjne – Bez utworów zależnych 4.0 Międzynarodowe (CC BY-NC-ND 4.0). Cytuj jako: Michał Sobczak, „E-mailowy Service Desk z self-hosted GitLab EE i iRedMail”, 21 maja 2024, https://michalasobczak.pl/pl/posts/e-mail-service-desk-with-self-hosted-gitlab-ee-and-iredmail.html