今回も自分用メモ。
会社使っている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からログインしてメールの設定やらを済ませて終了です。
ではでは
おすすめのコンテンツ
広告