Mattermost 설치 노트 [Apache & Subdirectry 운영]

Mattermost 설치 노트 [Apache & Subdirectry 운영]

2022-10-06 last update

8 minutes reading 우분투20.04 Mattermost
설치 작업 노트 [21/07/04]

Apache & Subdirectry 운영 설정


  • 우분투 20.04.2 LTS
  • Mattermost Team Edition v5.34.2
  • PostgreSQL 12.6 (Ubuntu 12.6-0ubuntu0.20.04.1)

  • ※ gitlab의 [Omnibus] 패키지에 [GitLabMattermost]로 동봉되어 있으므로 Subdirectry 운용이 필요하지 않으면 여기 설치가 편합니다. 하지만 이 동봉판 [GitLabMattermost]에서는 서브디렉토리 운용 방법을 모르고 이번 설치 방법으로 하고 있습니다.
    htps : // 멈추고 r도 st. 코m/

    ↑ 여기 링크는 엔터프라이즈 버전의 링크입니다.
    엔터프라이즈 버전에서도 상관없다고 설명은 있지만 오픈 소스 버전으로 명시된 Team Edition을 설치하고 있습니다.
    ※이 페이지에서의 링크처는 사용하지 않고, 우하의 Version archive로부터 링크처를 따릅니다.
    · × Mattermost Enterprise Edition v5.34.2
    htps : // / ぇ あせ s. 멈춰서 r도 st. 이 m/5.34.2/두고 r도 stー5.34.2ーぃぬxーあmd64. r. gz
    ・ 〇Mattermost Team Edition v5.34.2('-team-'의 문자가 붙습니다.)
    htps : // / ぇ あせ s. 멈춰서 r도 st. 이 m/5.34.2/두고 r도 st-아 m-5.34. r. gz

    ■↓ 기본적인 설치 순서는 기본적으로 여기에 실려 있는 커멘드를 그대로 사용했습니다.



    ■설치 설정 내용


    설치 대상:/opt/mattermost
    사용자 & 그룹: mattermost : mattermost
    설정 파일 :/opt/mattermost/config/config.json
    부팅 포트: 8065

    ■사전의 DB설정(설명대로 커맨드를 친다.)

    sudo usermod -aG sudo postgres ##※私の環境では必要でした。postgresをsudoユーザーへ
    
    sudo apt install postgresql postgresql-contrib
    sudo --login --user postgres
    sudo -u postgres psql
    postgres=# CREATE DATABASE mattermost;
    postgres=# CREATE USER mmuser WITH PASSWORD 'mmuserのパスワード';
    postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
    postgres=# \q
    exit
    sudo systemctl reload postgresql
    

    postgresql 설정 파일을 편집합니다. 다음을 trust로 변경합니다.

    /etc/postgresql/12/main/pg_hba.conf
    
    local   all             all                                     trust
    
    
    host    all             all             ::1/128                 trust
    
    

    ↓ 데이터베이스 설정 테스트 확인 명령
    psql --dbname=mattermost --username=mmuser --password
    psql --host=localhost --dbname=mattermost --username=mmuser --password
    

    ■ 프로그램의 다운로드, 전개, 배치(설명대로 커맨드를 친다.)

    sudo apt update
    sudo apt upgrade
    cd /usr/local/src
    sudo wget https://releases.mattermost.com/5.34.2/mattermost-team-5.34.2-linux-amd64.tar.gz
    sudo tar -xvzf mattermost*.gz
    sudo mv mattermost /opt
    sudo mkdir /opt/mattermost/data
    sudo useradd --system --user-group mattermost
    sudo chown -R mattermost:mattermost /opt/mattermost
    sudo chmod -R g+w /opt/mattermost
    

    ■Mattermost의 설정 파일 ※필요한 부분을 수정합니다. 

    sudo vi /opt/mattermost/config/config.json
    

    /opt/mattermost/config/config.json
    
    ##3
            "SiteURL": "http://mattermost.example.com/mattermost",
    
    ##149-150
            "DriverName": "postgres",
            "DataSource": "postgres://mmuser:パスワード@localhost:5432/mattermost?sslmode=disable\u0026connect_timeout=10",
    

    ■ Mattermost 의 기동 테스트를 실시합니다. (다음 명령을 실행하고 CTRL + C로 중지합니다)
    cd /opt/mattermost
    sudo -u mattermost ./bin/mattermost
    
    http://localhost:8065/mattermost 같은 주소로 초기 설정 화면이 표시되는지 확인합니다.


    ■ 프로그램의 기동 설정 ① 서비스 자동 기동 설정
    sudo touch /lib/systemd/system/mattermost.service
    sudo vi /lib/systemd/system/mattermost.service
    

    /lib/systemd/system/mattermost.service
    
    [Unit]
    Description=Mattermost
    After=network.target
    After=postgresql.service
    BindsTo=postgresql.service
    
    [Service]
    Type=notify
    ExecStart=/opt/mattermost/bin/mattermost
    TimeoutStartSec=3600
    Restart=always
    RestartSec=10
    WorkingDirectory=/opt/mattermost
    User=mattermost
    Group=mattermost
    LimitNOFILE=49152
    
    [Install]
    WantedBy=postgresql.service
    
    

    ■ 프로그램 시작 설정 ② Apache 설정
    default-ssl.conf에 추가했습니다.

    /etc/apache2/sites-available/default-ssl.conf
    <VirtualHost _default_:443>
    
     --------
    
    ProxyPreserveHost On  ##←この記載がないとWebSocketのエラーが発生します。
    ######## mattermost ########################################
      RewriteCond %{REQUEST_URI} /mattermost/api/v[0-9]+/(users/)?websocket [NC,OR]
      RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
      RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
      RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
    
      <Location /mattermost>
        Require all granted
    
        ProxyPass http://127.0.0.1:8065/mattermost
        ProxyPassReverse http://127.0.0.1:8065/mattermost
        ProxyPassReverseCookieDomain 127.0.0.1 mattermost.example.com/mattermost
    
      </Location>
    
    --------
    
    </VirtualHost>
    

    ■ 시작에 대한 주요 명령의 예
    ①mattermost.service
    ②apache2.service 두 기동이 필요
    sudo systemctl daemon-reload
    sudo systemctl status mattermost.service
    sudo systemctl start mattermost.service
    sudo systemctl enable mattermost.service
    
    sudo a2ensite default-ssl
    sudo apache2ctl configtest
    
    sudo systemctl start apache2
    sudo systemctl stop apache2
    sudo systemctl reload apache2
    

    ■ 설정을 잘못했을 때의 제거 명령
    sudo systemctl stop mattermost.service
    sudo systemctl disable mattermost.service
    sudo rm -rf /opt/mattermost
    
    ##mattermostデータベースを削除して再度作成
    sudo -u postgres psql
    postgres=# DROP DATABASE mattermost;
    postgres=# CREATE DATABASE mattermost;
    postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
    postgres=# \q
    

    ■ 트러블 발생 대응


    시작 후 이러한 경고가 표시됩니다.
    Mattermost에 연결할 수 없습니다. 연결을 확인합니다. 이 문제가 계속되면 시스템 관리자에게 WebSocket 포트를 확인하도록 요청하십시오. (Please check connection, Mattermost unreachable. If issue persists, ask administrator to check WebSocket port.)

    원인 : 아파치 설정 문제였습니다.


    ① 다음 설정을 VirtualHost에 추가하면 수정되었습니다.

    /etc/apache2/sites-available/default-ssl.conf
    ProxyPreserveHost On
    

    ②이하, Apache에 모듈을 추가했습니다.
    $ sudo a2enmod proxy
    $ sudo a2enmod proxy_http
    $ sudo a2enmod proxy_wstunnel
    

    ■ 참고로 한 페이지
    htps : // 기주 b. 코 m / 멈춰서 r도 st / 두 cs / 이스에 s / 1295
    htps : // 흠 m. 멈춰서 r도 st. rg / t / m-m r ゔ ぇ r-b b th th issue / 5391/15
    https://notes.only-weekend.net/2018/11/28/mattermost%E3%82%92%E3%82%B5%E3%83%96%E3%83%87%E3%82%A3% E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%A7%E4%BD%BF%E3%81%86apache%E3%81%AE%E8% A8%AD%E5%AE%9A%E3%81%AB%E6%88%90%E5%8A%9F%E3%81%97%E3%81%9F/