今回も自分用メモ。
会社使っているSlackが90日の保存期間になるとの事で、別の仕組み無いか?
と上の人に言われてMattermostを構築してみた。
その時のメモ。
きっと別サーバーで立ち上げやる可能性あるし。
広告
目次
インストール手順
rootに昇格前提での作業。
お決まり
apt-get update apt-get upgrade apt-get dist-upgrade reboot
データベース
mariadb使います。
なんか慣れちゃったので。
apt install -y mariadb-server /etc/init.d/mysql start MariaDB [(none)]> CREATE USER 'hogehoge'@'localhost' IDENTIFIED BY 'hogehoge-password'; MariaDB [(none)]> CREATE DATABASE mattermost; MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermost.* to 'hogehoge'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit;
*2022/12/21 追記*
mariadbサポートしないらしく、MySQLのが良いかも。
MySQLのインストは↓↓
# apt install mysql-server mysql-client # apt systemctl start mysql.service # apt systemctl status mysql.service # mysql -u root
あとはmariadbと同じ。
mattermost インストール
最新版は本家で確認して下さい。
インストールから権限系まで。
wget https://releases.mattermost.com/7.1.2/mattermost-7.1.2-linux-amd64.tar.gz tar -xvzf mattermost-7.1.2-linux-amd64.tar.gz mv mattermost /opt mkdir /opt/mattermost/data useradd --system --user-group mattermost chown -R mattermost:mattermost /opt/mattermost chmod -R g+w /opt/mattermost
設定ファイル
nano /opt/mattermost/config/config.json
"SqlSettings": {
"DriverName": "mysql",
"DataSource": "hogehoge:hogehoge-password@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026writeTimeout=30s",
"ServiceSettings": {
"SiteURL": "https://myurl.com",
mariadbでも”DriverName”: “mysql”。
DataSource は DBユーザー:パスワード~~ で記述。
cd /opt/mattermost sudo -u mattermost ./bin/mattermost :"Server is listening on [::]:8065"
設定が大丈夫か確認。
Server is listening on [::]:8065 みたいのがないとERROR。
多分DataSourceを間違ってるんじゃない??
serviceの設定
touch /lib/systemd/system/mattermost.service nano /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
そんで確認。
systemctl daemon-reload
systemctl status mattermost.service
● mattermost.service - Mattermost
Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
Active: inactive (dead)
systemctl start mattermost.service
問題無くスタート出来れば、IPアドレスで入れる。
nginxのインストール
続いてnginx入れていく。
apt install nginx systemctl enable nginx
設定ファイル
サーバーの8065ポートを開けておく。
touch /etc/nginx/sites-available/mattermost
nano /etc/nginx/sites-available/mattermost
upstream backend {
server サーバーIP:8065;
keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
listen 80 default_server;
server_name 自分のドメイン.com;
location ~ /api/v[0-9]+/(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;
client_body_timeout 60;
send_timeout 300;
lingering_timeout 5;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 90s;
proxy_pass http://backend;
}
location / {
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_http_version 1.1;
proxy_pass http://backend;
}
}
rm /etc/nginx/sites-enabled/default ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost systemctl restart nginx
これでドメインでアクセスできる。
SSL化する
apt install python3-certbot-nginx certbot --nginx -d myurl.com #あとは対話型の流れのままに
設定ファイルを再変更
nano /etc/nginx/sites-available/mattermost
upstream backend {
server サーバーIP:8065;
keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
server_name 自分のドメイン.com;
location ~ /api/v[0-9]+/(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;
client_body_timeout 60;
send_timeout 300;
lingering_timeout 5;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 90s;
proxy_http_version 1.1;
proxy_pass http://backend;
}
location / {
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_http_version 1.1;
proxy_pass http://backend;
}
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/自分のドメイン.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/自分のドメイン.com/privkey.pem; # managed by Certbot
# include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_session_timeout 1d;
# Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
# prevent replay attacks.
#
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = six months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
}
server {
if ($host = 自分のドメイン.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
server_name 自分のドメイン.com;
return 404; # managed by Certbot
}
本家にあった通りに変更。
別に変えなくて大丈夫だったんだけど、本家には変えましょうみたいに書いてあった気がしたから。
rm /etc/nginx/sites-enabled/mattermost ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost systemctl restart nginx
これで全部終わり。
あとはWEBからログインしてメールの設定やらを済ませて終了です。
ではでは
おすすめのコンテンツ
広告
