Android

Jak rozmieścić matermost na centos 7

How to Deploy a Let's Chat Server on CentOS 7

How to Deploy a Let's Chat Server on CentOS 7

Spisu treści:

Anonim

Mattermost to platforma do przesyłania wiadomości błyskawicznych typu open source, będąca alternatywą dla Slacka. Jest napisany w Golang i React i może wykorzystywać MySQL lub PostgreSQL jako backend bazy danych. Mattermost przenosi całą komunikację Twojego zespołu w jedno miejsce i zapewnia różne funkcje, w tym udostępnianie plików, wiadomości jeden na jednego i grupowe, niestandardowe emoji, rozmowy wideo i wiele innych. W tym samouczku pokażemy, jak wdrożyć Mattermost na serwerze CentOS 7 i skonfigurować Nginx jako odwrotne proxy SSL.

Wymagania wstępne

Przed kontynuowaniem tego samouczka upewnij się, że zostały spełnione następujące wymagania wstępne:

  • Jesteś zalogowany jako użytkownik sudo. Nazwa domeny wskazuje adres IP twojego serwera. Użyjemy linuxize-test.com . linuxize-test.com zainstalowanego Nginx, jeśli nie, sprawdź ten przewodnik. Masz zainstalowany certyfikat SSL dla swojej domeny. Możesz zainstalować bezpłatny certyfikat Let's Encrypt SSL postępując zgodnie z tym przewodnikiem.

Utwórz bazę danych MySQL

Będziemy używać MariaDB 10.3 jako zaplecza bazy danych. Mattermost nie będzie działał z MariaDB w wersji 5.5.

Zaloguj się do powłoki MySQL:

mysql -u root -p

I uruchom następujące polecenia, aby utworzyć nową bazę danych i użytkownika dla naszej instalacji Mattermost:

create database mattermost; GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';

Utwórz nowego użytkownika systemu

Aby utworzyć nowego użytkownika i grupę o nazwie mattermost , która uruchomi instalację Mattermost, uruchom następującą komendę:

sudo useradd -U -M -d /opt/mattermost mattermost

Zainstaluj Mattermost Server

W chwili pisania tego artykułu najnowszą stabilną wersją Mattermost jest wersja 5.4.0. Przed przejściem do następnego kroku sprawdź stronę pobierania Mattermost, aby sprawdzić, czy dostępna jest nowsza wersja.

Pobierz archiwum za pomocą następującego polecenia curl:

sudo curl -L https://releases.mattermost.com/5.4.0/mattermost-5.4.0-linux-amd64.tar.gz -o /tmp/mattermost.tar.gz

Po zakończeniu pobierania rozpakuj archiwum i przenieś je do katalogu opt :

sudo tar zxf /tmp/mattermost.tar.gz -C /opt

Utwórz katalog przechowywania plików:

sudo mkdir /opt/mattermost/data

Zmień własność katalogu na mattermost użytkownika:

sudo chown -R mattermost: /opt/mattermost

Otwórz plik config.json w swoim ulubionym edytorze tekstu:

sudo nano /opt/mattermost/config/config.json

Ustaw sterownik bazy danych na mysql , wprowadź nazwę bazy danych i hasło użytkownika bazy danych, które utworzyliśmy wcześniej w tym samouczku:

/opt/mattermost/config/config.json

… "SqlSettings": { "DriverName": "mysql", "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4, utf8&readTimeout=30s&writeTimeout=30s", "DataSourceReplicas":,…

Aby przetestować naszą instalację, aby upewnić się, że wszystko działa przed utworzeniem jednostki systemowej i skonfigurowaniem odwrotnego proxy za pomocą Nginx, uruchomimy serwer Mattermost.

Przejdź do katalogu /opt/mattermost i uruchom serwer:

cd /opt/mattermost sudo -u mattermost bin/mattermost

Dane wyjściowe powinny wskazywać, że serwer Mattermost nasłuchuje na porcie 8065 :

{"level":"info", "ts":1540921243.6797202, "caller":"app/plugin.go:100", "msg":"Starting up plugins"} {"level":"info", "ts":1540921244.3483207, "caller":"app/server.go:88", "msg":"Starting Server…"} {"level":"info", "ts":1540921244.3488805, "caller":"app/server.go:148", "msg":"Server is listening on:8065"} {"level":"info", "ts":1540921244.3620636, "caller":"app/web_hub.go:75", "msg":"Starting 2 websocket hubs"} {"level":"info", "ts":1540921244.451155, "caller":"jobs/workers.go:63", "msg":"Starting workers"} {"level":"info", "ts":1540921244.456804, "caller":"jobs/schedulers.go:68", "msg":"Starting schedulers."}

Możesz teraz zatrzymać serwer Mattermost za pomocą CTRL+C i przejść do następnych kroków.

Utwórz jednostkę systemową

Aby uruchomić naszą instancję Mattermost jako usługę, mattermost.service plik jednostki mattermost.service w katalogu /etc/systemd/system/ o następującej treści:

/etc/systemd/system/mattermost.service

Description=Mattermost After=network.target nss-lookup.target mariadb.service Type=notify WorkingDirectory=/opt/mattermost User=mattermost SyslogIdentifier=mattermost ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 LimitNOFILE=49152 WantedBy=multi-user.target

Powiadom systemd, że utworzyliśmy nowy plik jednostki i uruchom usługę Mattermost, wykonując:

sudo systemctl daemon-reload sudo systemctl start mattermost

Możemy teraz sprawdzić status usługi za pomocą następującego polecenia:

sudo systemctl status mattermost

● mattermost.service - Mattermost Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2018-10-30 17:44:46 UTC; 3s ago Main PID: 25959 (mattermost) CGroup: /system.slice/mattermost.service └─25959 /opt/mattermost/bin/mattermost

Na koniec włącz automatyczne uruchamianie usługi Mattermost podczas uruchamiania:

sudo systemctl enable mattermost

Skonfiguruj odwrotnego proxy za pomocą Nginx

/etc/nginx/conf.d/linuxize-test.com.conf

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off; upstream mattermost_backend { server 127.0.0.1:8065; } server { listen 80; server_name linuxize-test.com www.linuxize-test.com; include snippets/letsencrypt.conf; return 301 https://linuxize-test.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize-test.com; ssl_certificate /etc/letsencrypt/live/linuxize-test.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/linuxize-test.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/linuxize-test.com/chain.pem; include snippets/ssl.conf; return 301 https://linuxize-test.com$request_uri; } server { listen 443 ssl http2; server_name linuxize-test.com; ssl_certificate /etc/letsencrypt/live/linuxize-test.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/linuxize-test.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/linuxize-test.com/chain.pem; include snippets/ssl.conf; access_log /var/log/nginx/linuxize-test.com-access.log; error_log /var/log/nginx/linuxize-test.com-error.log; location ~ /api/v+/(users/)?websocket$ { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; client_max_body_size 50M; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_buffers 256 16k; proxy_buffer_size 16k; proxy_read_timeout 600s; proxy_pass http://mattermost_backend; } location / { proxy_http_version 1.1; client_max_body_size 50M; proxy_set_header Connection ""; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_buffers 256 16k; proxy_buffer_size 16k; proxy_read_timeout 600s; proxy_cache mattermost_cache; proxy_cache_revalidate on; proxy_cache_min_uses 2; proxy_cache_use_stale timeout; proxy_cache_lock on; proxy_pass http://mattermost_backend; } }

Ponownie załaduj usługę Nginx, aby zmiany odniosły skutek:

sudo systemctl reload nginx

Konfigurowanie Mattermost

Otwórz przeglądarkę, wpisz domenę i utwórz pierwsze konto:

i wprowadź parametry SMTP. Możesz korzystać z dowolnych popularnych transakcyjnych usług e-mail, takich jak SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet i Postmark lub możesz skonfigurować własny serwer pocztowy.

Na koniec musimy ponownie uruchomić usługę Mattermost, aby zmiany zostały wprowadzone:

sudo systemctl restart mattermost

Wniosek

Pomyślnie zainstalowałeś Mattermost na serwerze CentOS 7 i skonfigurowałeś Nginx jako odwrotne proxy. Możesz teraz zacząć używać Mattermost do współpracy ze swoim zespołem.

matermost nodejs centos