반응형

안녕하세요 가야태자 @talkit 입니다.

이번 글에서는 제가 지난 번에 리눅스를 설치 하면서 뭔가를 설치해보고자한다고 말씀 드렸는데 그것 중에 하나가 Mattermost라는 툴입니다.

이툴은 Slack이라는 협업도구(?)를 대체하는 프로그램 입니다.

Mattermost는 Slack과 마찬가지로, 웹사이트에서 가입해서 사용할 수 있습니다.

하지만, Slack과는 다르게 Self-managed server를 제공 합니다.

그래서 저는 테스트 겸 제가 셋팅해 놓은 VMWARE ubuntu에 그리고 궁극적으로 외부의 VPS에 설치하고자 합니다.

Mattermost 설치전으로 되돌릴수 있도록 백업을 하고 있습니다. ^^

zip파일로 VM폴더를 묶어 두면 나중에 복원하거나 다른 것을 해볼 때 사용 가능 합니다.

이부분은 다음에 VMWARE 백업 이라는 주제로 한번 글을 써보겠습니다.

오늘은 Mattermost 설치에 주안점을 두겠습니다.

Mattermost 공식 홈페이지에는 기본적으로 docker를 이용해서 설치하고 사용하는 법을 알려 주고 있습니다. 그런데 제가 docker잘 모릅니다. T.T

그래서 일단 Ubuntu에 직접 설치하는 것을 생각하고 있습니다.

순서를 조금 요약해보겠습니다.

1. Ubuntu 설치
2. Database 설치
3. Mattermost server 프로그램 설치
4. Mattermost server 프로그램 설정
5. Mattermost server 상에 TLS 설정
6. NGINX server 설치
7. Mattermost server를 위한 proxy로 NGINX 설정
8. SSL과 HTTP/2와 함께 NGINX 설정

공식 매뉴얼에 나오 있는 것은 위와 같습니다.

1. Ubuntu 설치


리눅스/Linux VMWARE에 우분투/Ubuntu 20.04 설치하기/Install https://talkit.tistory.com/677

위 글로 대체 하겠습니다.

2. Database 설치


리눅스/Linux 우분투 리눅스에 MySQL을 설치해보자. How to install MySQL on Ubuntu https://talkit.tistory.com/680

MySQL 설치도 위글로 대체 하겠습니다. ^^

설치가 끝나면 계정 설을 해야 합니다.

sudo mysql -u root -p

# 프롬프트가 등장하면

create user 'mmuser'@'%' identified by 'mmuser-password';

mmuser는 그대로 두시고, mmuser-password 를 원하는 비밀번호로 변경해서 진행 하시면 되는데 보안상 호스트가 %인것은 위험한데 저건 일단 오늘은 설치해보고 보관 관련 이슈는 한번 다뤄 보겠습니다.

Mattermost를 위한 데이터베이스를 하나 만듭니다.

create database mattermost;

mattermost 데이터베이스에 mmuser에게 권한을 줍니다.

 grant all privileges on mattermost.* to 'mmuser'@'%';

여기도 모든 권한을 줘서 보안 관련 이슈를 말씀 드리겠습니다.

그런데 저렇게 설정하면 나중에 보안 문제 빼고는 편안 합니다. ^^

설정 다하셨으면 MySQL은 빠져 나오시면 됩니다.

3. Mattermost server 프로그램 설치

Deploy Your Self-Hosted Mattermost Server | Mattermost

 

Deploy Your Self-Hosted Mattermost Server | Mattermost

Deploy a Mattermost server in minutes on the platform of your choice including Kubernetes, Ubuntu, Debian, Red Hat, and Docker.

mattermost.com

위 URL에서 최신 버전의 Mattermost 서버를 다운로드 합니다. 

wget https://releases.mattermost.com/7.5.2/mattermost-7.5.2-linux-amd64.tar.gz

위 명령어를 내리면, 다운로드를 진행 합니다. 

tar xzvfp mattermost-7.5.2-linux-amd64.tar.gz

받은 파일의 압축을 푸십시오.

sudo mv mattermost /opt

압축을 /opt 로 옮기라고 되어 있습니다. 그래서 저는 따라하는 중입니다. 

sudo mkdir /opt/mattermost/data

데이타 폴더를 만드라네요 ^^

sudo useradd --system --user-group mattermost

mattermost 리눅스 계정을 만들라고 합니다. 

sudo chown -R mattermost:mattermost /opt/mattermost

mattermost 계정에 프로그램 폴더를 권한을 줍니다. 

sudo chmod -R g+w /opt/mattermost

그룹에 쓰기권한을 주네요 ^^

/opt/mattermost/config/config.json

위 파일을 수정해야 합니다. ^^

sudo vi /opt/mattermost/config/config.json
 "SqlSettings": {
    "DriverName": "postgres",
    "DataSource": "postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable\u0026connect_timeout=10\u0026binary_parameters=yes",
    "DataSourceReplicas": [],
    "DataSourceSearchReplicas": [],
    "MaxIdleConns": 20,
    "ConnMaxLifetimeMilliseconds": 3600000,
    "ConnMaxIdleTimeMilliseconds": 300000,
    "MaxOpenConns": 300,
    "Trace": false,
    "AtRestEncryptKey": "",
    "QueryTimeout": 30,
    "DisableDatabaseSearch": false,
    "MigrationsStatementTimeoutSeconds": 100000,
    "ReplicaLagSettings": []
  },

config.json을 열면, SqlSettings 가 있습니다. 
기본적으로 PostgreSQL로 되어 있네요

 "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mmuser:비밀번호1@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8\u0026writeTimeout=30s"",
    "DataSourceReplicas": [],
    "DataSourceSearchReplicas": [],
    "MaxIdleConns": 20,
    "ConnMaxLifetimeMilliseconds": 3600000,
    "ConnMaxIdleTimeMilliseconds": 300000,
    "MaxOpenConns": 300,
    "Trace": false,
    "AtRestEncryptKey": "",
    "QueryTimeout": 30,
    "DisableDatabaseSearch": false,
    "MigrationsStatementTimeoutSeconds": 100000,
    "ReplicaLagSettings": []
  },

위와 같이 변경 합니다. 앞에서 그대로 따라하셨으면 비밀번호만 변경해주시면 됩니다. 

그리고 저장 하고 빠져 나갑니다. 

    "SiteURL": "http://원하는주소",

SiteURL을 위와 같이 변경 하십시오.

https로 변경 하겠지만, ^^ http:// 로 여기서는 설정 합니다. 

이제 거의 설치가 끝난 것 같습니다. ^^

cd /opt/mattermost

저희가 설치한 디렉토리로 이동 합니다. 

sudo -u mattermost ./bin/mattermost

서버를 실행 합니다. 두둥.

뭔가 서버는 잘 떴구요.

이 화면이 나오면 잘된겁니다. 

일단 저는 웹브라우져로 접속해 보겠습니다. 

처음 가입 시키는 아이디가 system_admin 권한을 가진답니다. 

^^

첫번째 아이디는 어디서 만들지를 고민 하고있었습니다. T.T

여기서 하면 되네요.

Email address는 이메일 주소이고,

Username은 이름이 아니고 T.T 계정입니다. 띄워쓰기 없이 계정으로 만드십시오.

비밀번호는 잘 만드십시오.

Team이 없으니 가입 하라고 나옵니다. ^^

Go to system console을 눌러서 들어간 화면 입니다. ^^

여기까지 보셨으면 ^^ 빠져 나옵니다 

PuTTY로 돌아가서 Ctrl + c 키를 누르면 서버가 꺼집니다. 

그런데 매일 매일  Shell 상에 저 서버를 띄워 둘수는 없습니다. ^^

그래서 system 서비스로 만들어야 합니다. 

sudo touch /lib/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
BindsTo=mysql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
  WantedBy=mysql.service

vi 를 이용해서 위 파일열 여시고 붙여 넣으시면 됩니다. 

단, Ubuntu 이고, 제가 위에 설명한대로 따라하셨다는 전제 하에서 입니다 .^^

설치 위치는 변경 해주셔야 합니다. 혹시 다르게 설치 하셨으면요 ^^

서버를 자동으로 켜기 위해서 

sudo systemctl enable mattermost

서비스를 실행 합니다. 

sudo systemctl start mattermost

그럼 설치는 여기 까지 하고, 웹에서 Email 노티피케이션하고, 초대 가능하게 하기 등 몇가지 설정하상은 다음 글에서 설명 드리겠습니다. 

감사합니다. 

 

반응형

+ Recent posts