Ubuntu 16.04에서 PostgreSQL 및 Nginx와 함께 Mattermost를 설치하는 방법


이 페이지에서

  1. 1단계 - PostgreSQL 데이터베이스 설치 및 구성
  2. 2단계 - Mattermost 설치 및 구성
  3. 3단계 - Mattermost Systemd 서비스 구성
  4. 4단계 - Nginx 설치 및 구성
  5. 5단계 - 테스트
  6. 참조

Mattermost는 Golang 및 React 프로그래밍 언어로 작성된 오픈 소스 메시징 시스템입니다. Slack 대안으로 slack 또는 hipchat과 같은 자체 메시징 서비스를 구축할 수 있습니다. Mattermost는 팀 커뮤니케이션을 한 곳으로 가져오고 어디서나 액세스할 수 있도록 합니다. 데스크톱, Android 기기 및 iPhone에서 액세스할 수 있습니다.

이 튜토리얼에서는 PostgreSQL을 데이터베이스 시스템으로 사용하고 Nginx를 Mattermost의 리버스 프록시로 사용하는 자체 Mattermost 서버를 만드는 방법을 안내합니다. 운영 체제로 우분투 16.04를 사용하겠습니다.

전제 조건

  • 우분투 16.04 - 64비트
  • 루트 권한\n

1단계 - PostgreSQL 데이터베이스 설치 및 구성

Mattermost는 MySQL 및 PostgreSQL 데이터베이스를 지원합니다. 이 자습서에서는 PostgreSQL을 기본 데이터베이스로 사용합니다. 서버에 연결하고 리포지토리를 업데이트합니다.

SSH로 서버에 연결하거나 터미널에 로그인하고 Ubuntu 리포지토리를 업데이트합니다.

ssh 
sudo apt-get update

루트 사용자로서 이 apt 명령으로 PostgreSQL을 설치합니다.

sudo apt-get install postgresql postgresql-contrib

설치가 완료되면 postgres 사용자로 로그인하고 psql 명령을 입력하여 postgresql 셸에 로그인합니다.

su - postgres
psql

아래 명령을 사용하여 postgres 사용자 비밀번호를 변경하십시오.

\password postgres
Enter new password:

다음으로 Mattermost 설치를 위해 새 데이터베이스와 사용자를 구성해야 합니다. 나는 mattermostdb라는 이름의 새 데이터베이스를 만들고 암호 matterpassword를 사용하여 사용자 matteruser를 생성합니다. 설치를 위한 보안 암호를 선택하십시오.

아래의 PostgreSQL 쿼리를 사용하여 새 데이터베이스와 사용자를 생성합니다.

CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';

mattermostdb 데이터베이스에 matteruser 권한을 부여하고 종료합니다.

GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q

2단계 - Mattermost 설치 및 구성

루트 사용자가 아닌 일반 Linux 사용자로 Mattermost를 설치하고 구성합니다. Mattermost를 사용자 문제로 실행할 것이므로 서버에서 문제라는 새 Linux 사용자를 생성해야 합니다.

새 문제 사용자 및 암호를 생성합니다.

useradd -m -s /bin/bash matter
passwd matter

문제 사용자가 생성되었으므로 이제 사용자로 로그인하고 wget으로 최신 Mattermost 버전을 다운로드합니다.

su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz

Mattermost 파일을 추출하면 Mattermost 새 디렉토리가 표시됩니다. cd 명령으로 해당 디렉토리를 입력하십시오.

tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/

다음으로 사용자 파일을 저장할 새 데이터 디렉토리를 만든 다음 vim으로 가장 중요한 구성 파일 config/config.json을 편집합니다.

mkdir data/
vim config/config.json

Mattermost는 Nginx 리버스 프록시 뒤에서 실행되므로 로컬 IP 주소에서 수신 대기하도록 Mattermost를 구성하는 것이 좋습니다. ServiceSettings 블록에서 localhost IP 주소를 4행의 구성에 추가합니다.

"ListenAddress": "127.0.0.1:8065",

이제 48행의 SqlSettings로 이동합니다. 아래 구성으로 PostgreSQL 데이터베이스를 사용하도록 DriverNameDataSource 구성을 변경합니다.

"DriverName": "postgres",
"DataSource": "postgres://matteruser::5432/mattermostdb?sslmode=disable&connect_timeout=10",

참고:

matteruser = postgresql 사용자.
matterpassword = 암호.
mattermostdb = 데이터베이스.

저장 및 종료.

이 작업이 완료되면 bin 디렉토리로 이동하여 가장 중요한 것을 실행하십시오.

cd bin/
./platform

이제 mattermost가 포트 8065를 사용하는 localhost IP에서 실행되고 있음을 알 수 있습니다.

종료하려면 Ctrl + c를 누르십시오.

3단계 - Mattermost Systemd 서비스 구성

systemd 시스템 디렉토리로 이동하여 새로운 중요한 서비스 파일을 만듭니다.

cd /etc/systemd/system/
vim mattermost.service

아래에 구성 붙여넣기:

[Unit]
Description=Mattermost is an open source, self-hosted Slack-alternative
After=syslog.target network.target

[Service]
Type=simple
User=matter
Group=matter
ExecStart=/home/matter/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/home/matter/mattermost
Restart=always
RestartSec=30
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

저장 및 종료.

systemd 데몬을 다시 로드하고 위에서 생성한 Mattermost 서비스를 시작합니다.

systemctl daemon-reload
systemctl start mattermost

오류가 없는지 확인하십시오. Mattermost 서비스가 실행 중인지 확인합니다.

netstat -plntu
systemctl status mattermost

4단계 - Nginx 설치 및 구성

이 단계에서는 Nginx를 설치하고 Nginx를 Mattermost의 역방향 프록시로 구성합니다. 가장 중요한 포트 8056을 HTTP 및 HTTPS 포트에 매핑합니다.

이 apt 명령을 사용하여 Ubuntu 리포지토리에서 Nginx를 설치합니다.

sudo apt-get install nginx

이제 Nginx 구성 디렉터리로 이동하여 SSL 하위 디렉터리를 만듭니다.

cd /etc/nginx/
mkdir ssl/; cd ssl/

OpenSSL을 사용하여 자체 서명된 새 SSL 인증서 파일을 생성하고 개인 키의 권한을 변경합니다.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key

sites-available 디렉터리에 Mattermost용 새 가상 호스트 파일을 생성합니다.

cd /etc/nginx/sites-available/
vim mattermost

아래에 가상 호스트 구성을 붙여넣으십시오.

server {
   listen         80;
   server_name    mattermost.mydomain.com;
   return         301 https://$server_name$request_uri;
}

server {
   listen 443 ssl;
   server_name mattermost.mydomain.com;

   ssl on;
   ssl_certificate /etc/nginx/ssl/mattermost.crt;
   ssl_certificate_key /etc/nginx/ssl/mattermost.key;
   ssl_session_timeout 5m;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:10m;

   location / {
      gzip off;
      proxy_set_header X-Forwarded-Ssl on;
      client_max_body_size 50M;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      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_pass http://127.0.0.1:8065;
   }
}

도메인 이름을 자신의 도메인으로 변경하고 저장하고 종료합니다.

사이트 활성화 디렉토리에서 가장 중요한 파일에 대한 심볼릭 링크를 생성하여 가상 호스트를 활성화합니다.

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/

Nginx 구성을 테스트하고 오류가 없는지 확인한 다음 nginx를 다시 시작하십시오.

nginx -t
systemctl restart nginx

5단계 - 테스트

웹 브라우저를 열고 가장 중요한 도메인 이름(제 경우에는 mattermost.mydomain.com)을 방문합니다.

자동으로 HTTPS 연결로 리디렉션됩니다.

먼저 새 계정을 만들고 계정 만들기를 클릭합니다.

그런 다음 새 팀을 만들거나 관리자/시스템 콘솔에 액세스하기 위한 링크를 볼 수 있습니다.

시스템 콘솔로 이동을 클릭하면 아래와 같은 시스템 콘솔 대시보드가 표시됩니다.

새 팀 만들기를 클릭하고 팀 이름을 입력한 후 다음을 클릭합니다. 그런 다음 팀 URL을 구성하고 마침 버튼을 클릭합니다.

마지막으로 팀 대시보드가 표시됩니다.

Mattermost 팀 채팅.

Ubuntu 16.04의 PostgreSQL 및 Nginx 웹 서버에서 Mattermost가 성공적으로 설치되었습니다.

참조

  • https://docs.mattermost.com/install/prod-debian.html