본문 바로가기

오픈소스

슬랙의 대체제 Mattermost를 라즈베리파이에 설치하기

Slack이 괜찮은 편이기는 하나 무료 메시지 숫자가 10,000개에 제한되어 있어 금방 소진된다.
오픈소스 대안을 찾아보니, 역시나 있다.
슬랙과 거의 판박이로 똑같다.
집에서 놀고 있는 라즈베리파이에 설치해 보았더니 아주 잘 된다.

Installation & Setup

0. Preparation

sudo useradd --system --user-group --no-create-home mattermost
sudo mkdir -p /opt/mattermost
sudo chown -R mattermost:mattermost /opt/mattermost/
su mattermost

1. Install pacakges

sudo apt update && sudo apt upgrade
sudo apt install mariadb-server
sudo mysql_secure_installation

2. Setup mysql database

sudo mysql -u root -p
create user 'mmuser'@'%' identified by 'YOUR_PASSWD';
create database mattermost;
grant all privileges on mattermost.* to 'mmuser'@'%';
flush privileges;

3. Install Mattermost Server

cd /opt/mattermost
sudo -u mattermost wget <https://github.com/SmartHoneybee/ubiquitous-memory/releases/download/v6.6.1/mattermost-v6.6.1-linux-arm.tar.gz>
sudo -u mattermost tar xvfz *.tar.gz
sudo -u mattermost mv mattermost v6.6.1 

3.1 Server setting

sudo -u mattermost vi /opt/mattermost/v6.6.1/config/config.json

아래처럼 바꿔줌. (underline)

"SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mmuser:YOUR_PASSWD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
    "DataSourceReplicas": [],
    "DataSourceSearchReplicas": [],
    "MaxIdleConns": 20,
    "ConnMaxLifetimeMilliseconds": 3600000,
    "ConnMaxIdleTimeMilliseconds": 300000,
    "MaxOpenConns": 300,
    "Trace": false,
    "AtRestEncryptKey": "",
    "QueryTimeout": 30,
    "DisableDatabaseSearch": false,
    "MigrationsStatementTimeoutSeconds": 100000,
    "ReplicaLagSettings": []
  },

 

그런데,
기본은 postgres인 것으로 봐서,
그냥 그걸로 해도 될 듯 한데?
mariaDB가 더 나은점이 있나?

 

3.2 Check

  • 잘 설치가 되었는지 확인하기 위해 아래 명령을 실행해 봄.
sudo -u mattermost /opt/mattermost/v6.6.1/bin/mattermost

  • DB에 Access하는데 문제가 있다네.. config에 mysql db password를 잘못 넣어서 그랬던 것임. 고쳐서 다시 실행해 봄.

  • 이번엔 뭔가 잘 되는 것 같았으나, 다시 에러가 주루룩

  • 맨 마지막에 잘 listening 한다고 나오면 성공한 것임. 약간 시간이 걸릴 수 있으니 이 메시지가 나올때 까지 느긋하게 기다려주자.

 

3.3 자동 실행 설정

  • 새로운 서비스를 제어하기 위한 파일을 생성한다.
sudo vi /lib/systemd/system/mattermost.service

 

  • 내용은 다음과 같이 기입한다.
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mariadb.service

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

[Install]
WantedBy=multi-user.target

 

  • 자동실행 등록
sudo systemctl daemon-reload
sudo systemctl enable mattermost.service
sudo systemctl start mattermost.service
  • 서비스 상태 확인하기
sudo systemctl enable mattermost.service

서비스 상태가 Active 이면 잘 동작하는 것이다.

References

 

Installing Mattermost server on RaspberryPI4

How I installed Mattermost Server on my raspberry pi. I have followed the guide at with some slight modifications.

minecraftchest1.wordpress.com

 

GitHub - mattermost/mattermost-server: Mattermost is an open source platform for secure collaboration across the entire software

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. - GitHub - mattermost/mattermost-server: Mattermost is an open source platform for s...

github.com

 

Releases · SmartHoneybee/ubiquitous-memory

new version? pull request. Contribute to SmartHoneybee/ubiquitous-memory development by creating an account on GitHub.

github.com