기계적 인조 인간

우분투 18.04에서 가장 중요한 것을 배포하는 방법

차례:

Anonim

Mattermost는 엔터프라이즈 급 인스턴트 메시징 플랫폼이며 오픈 소스 자체 호스팅 슬랙 대안입니다. Golang 및 React로 작성되었으며 MySQL 또는 PostgreSQL을 데이터베이스 백엔드로 사용할 수 있습니다. Mattermost는 모든 팀 커뮤니케이션을 한 곳으로 가져오고 파일 공유, 일대일 및 그룹 메시징, 사용자 정의 이모티콘, 화상 통화 등 다양한 기능을 제공합니다.

이 튜토리얼에서는 Ubuntu 18.04 서버에 Mattermost를 설치하고 Nginx를 SSL 리버스 프록시로 구성합니다.

전제 조건

이 학습을 계속하기 전에 다음 전제 조건을 충족하는지 확인하십시오.

  • sudo 권한이있는 사용자로 로그인했으며 서버 IP 주소를 가리키는 도메인 이름이 있습니다. 이 가이드를 확인하지 않으면 Nginx가 설치되어 있고 도메인에 SSL 인증서가 설치되어있는 것입니다. 이 가이드에 따라 무료 Let 's Encrypt SSL 인증서를 설치할 수 있습니다.

MySQL 데이터베이스 생성

우리는 Mattermost의 데이터베이스로 MySQL을 사용할 것입니다. 서버에 MySQL 또는 MariaDB가 설치되어 있지 않은 경우 다음 지침에 따라 설치할 수 있습니다.

MySQL 쉘에 로그인하십시오.

mysql -u root

다음을 사용하여 Mattermost 설치를위한 새 데이터베이스 및 사용자를 작성하십시오.

CREATE DATABASE mattermost; GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD'; P4ssvv0rD 보다 안전한 비밀번호를 사용하고 있는지 확인하십시오.

새로운 시스템 사용자 생성

Mattermost 인스턴스를 실행할 새 사용자 및 그룹을 작성하십시오. 우리는 사용자를 mattermost 하게 명명 할 것입니다:

sudo useradd -U -M -d /opt/mattermost mattermost

Mattermost 서버 설치

이 기사를 작성할 당시의 최신 버전의 Mattermost는 버전 5.1.0입니다. 다음 curl 명령을 사용하여 아카이브를 다운로드하십시오.

sudo curl -L https://releases.mattermost.com/5.1.0/mattermost-5.1.0-linux-amd64.tar.gz -o /tmp/mattermost.tar.gz

다운로드가 완료되면 아카이브를 추출하여 /opt 디렉토리로 이동하십시오.

sudo tar zxf /tmp/mattermost.tar.gz -C /opt

파일의 스토리지 디렉토리를 작성하십시오.

sudo mkdir -p /opt/mattermost/data

가장 mattermost 사용자로 디렉토리 소유권을 변경하십시오.

sudo chown -R mattermost: /opt/mattermost

/opt/mattermost/config/config.json 파일을 열고 데이터베이스 드라이버를 mysql 설정 한 후 데이터베이스 정보를 입력하십시오.

/opt/mattermost/config/config.json

"SqlSettings": { "DriverName": "mysql", "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4, utf8&readTimeout=30s&writeTimeout=30s",

Mattermost 인스턴스가 예상대로 작동하는지 확인하기 위해 Mattermost 서버를 테스트합니다. /opt/mattermost 디렉토리로 변경하고 다음 명령으로 서버를 시작하십시오.

cd /opt/mattermost sudo -u mattermost bin/mattermost

모든 것이 제대로 작동하면 서버가 시작되고 출력은 다음과 같습니다.

{"level":"info", "ts":1532546921.941638, "caller":"app/server.go:115", "msg":"Starting Server…"} {"level":"info", "ts":1532546921.9421031, "caller":"app/server.go:154", "msg":"Server is listening on:8065"} {"level":"info", "ts":1532546921.9541554, "caller":"app/web_hub.go:75", "msg":"Starting 2 websocket hubs"}

이제 CTRL+C 사용하여 Mattermost 서버를 중지하고 다음 단계를 계속할 수 있습니다.

시스템 유닛 생성

Mattermost 인스턴스를 서비스로 실행하기 위해 /etc/systemd/system/ 디렉토리에 mattermost.service 단위 파일을 만듭니다.

텍스트 편집기를 열고 다음 파일을 작성하십시오.

/etc/systemd/system/mattermost.service

Description=Mattermost After=network.target After=mysql.service Requires=mysql.service Type=notify ExecStart=/opt/mattermost/bin/mattermost TimeoutStartSec=3600 Restart=always RestartSec=10 WorkingDirectory=/opt/mattermost User=mattermost Group=mattermost LimitNOFILE=49152 WantedBy=mysql.service

다음 명령을 사용하여 새 단위 파일을 작성했음을 Mattermost 서비스에 시작하십시오.

sudo systemctl daemon-reload sudo systemctl start mattermost

이제 서비스 상태를 확인할 수 있습니다:

sudo systemctl status mattermost

● mattermost.service - Mattermost Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; ven Active: active (running) since Wed 2018-07-25 18:39:05 UTC; 41s ago Main PID: 3091 (mattermost) Tasks: 18 (limit: 507) CGroup: /system.slice/mattermost.service ├─3091 /opt/mattermost/bin/mattermost

오류가 없으면 부팅시 Mattermost 서비스가 자동으로 시작되도록합니다.

sudo systemctl enable mattermost

Nginx로 리버스 프록시 설정

이제 Mattermost 인스턴스에 대한 새 서버 블록을 설정해야합니다. 텍스트 편집기를 열고 다음 파일을 작성하십시오.

/etc/nginx/conf.d/example.com.conf

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off; upstream mattermost_backend { server 127.0.0.1:8065; } server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; access_log /var/log/nginx/example.com-access.log; error_log /var/log/nginx/example.com-error.log; location ~ /api/v+/(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; proxy_read_timeout 600s; proxy_pass http://mattermost_backend; } location / { proxy_http_version 1.1; 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_pass http://mattermost_backend; } }

변경 사항을 적용하려면 Nginx 서비스를 다시로드하십시오.

sudo systemctl reload nginx

가장 중요한 구성

브라우저를 열고 도메인을 입력하면 sugnup 페이지로 리디렉션됩니다.

이메일을 입력하고 사용자 이름과 비밀번호를 선택한 Create Account 버튼을 클릭하여 첫 번째 계정을 만듭니다.

SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet 및 Postmark와 같은 널리 사용되는 트랜잭션 전자 메일 서비스를 사용하거나이 자습서에 따라 자체 메일 서버를 설정할 수 있습니다.

마지막으로 변경 사항을 적용하려면 Mattermost 서비스를 다시 시작해야합니다.

sudo systemctl restart mattermost

결론

Ubuntu 18.04 서버에 Mattermost를 성공적으로 설치하고 Nginx를 리버스 프록시로 설정했습니다. 이제 Mattermost를 사용하여 팀과 공동 작업을 시작할 수 있습니다.

rocketchat nodejs 우분투