【实用的开源项目】使用云服务器部署Mattermost,强大的开发人员协作平台,更是一款高大上的聊天室!

2022-10-16 11:16:01 浏览数 (1)

前言

不知不觉【实用的开源项目】系列已经来到第四期了啊。今天为大家介绍一下 Mattermost ,教大家使用云服务器部署 Mattermost ,简洁、强大的私人书籍管理系统!这篇文章是详细的文字版,若希望查看教程视频,请向下滑动,查看视频!

视频教程

待补充

准备工作

  1. 【必需】一台服务器(推荐腾讯云轻量应用服务器 HK 或国内,其他服务器、家里云或者各家企业的私有云亦可,我们在腾讯云轻量应用服务器重装系统的时候,选择 应用镜像 ,然后选择 Docker CE 19.03.9 ,然后我们就可以使用 Docker 部署搭建了我们需要的程序啦!本文就从安装完 Docker 后开始教程啦!当然啦,不使用腾讯云轻量应用服务器的朋友们,可以自己手动安装 Docker ,然后进入我们的部署哦!本文就从安装完 Docker 后开始教程啦!
  2. 【建议且必需】域名一枚,并解析到服务器上
  3. 【必需反向代理本教程选用NPM】安装好Nginx Proxy Manager( 相关教程 )

注意

本文软件基于腾讯云轻量应用服务器安装,无建议配置,教程使用的腾讯云轻量应用服务器系统为 CentOS 7.6 64位 !理论上腾讯云轻量应用服务器为 Docker CE 19.03.9 的服务器操作应与本文基本一致(包括过程与报错),其他系统为 CentOS 7 的服务器应与本文大同小异!腾讯云轻量应用服务器快到两周年了,活动力度很大喔!大家可以关注一下!

腾讯云轻量应用服务器购买地址: https://curl.zijiebao.com/XqKjWCYA

腾讯云精选爆品 特惠抢购: https://curl.zijiebao.com/UEBvnJfH

腾讯云云产品特惠专区: https://curl.zijiebao.com/TPJfrddE

界面演示

Mattermost 简介

Mattermost is an open source platform for secure collaboration across the entire software development lifecycle. This repo is the primary source for core development on the Mattermost platform; it's written in Go and React and runs as a single Linux binary with MySQL or PostgreSQL. A new compiled version is released under an MIT license every month on the 16th. Mattermost是一个开源平台,用于在整个软件开发生命周期中实现安全协作。此存储库是 Mattermost 平台上核心开发的主要来源;它是用围棋和反应编写的,并作为一个带有MySQL或后格雷SQL的 Linux二进制文件运行。每月16日在MIT许可证下发布新的编译版本。

我觉得, Mattermost 不仅可以作为一款强大的开发人员协作平台,还可以作为一款优秀的聊天室程序!

官方网站

官方网站: https://mattermost.com/

官方Github: https://github.com/mattermost

部署 Mattermost

1. 环境准备

1. 安装 Docker(使用腾讯云轻量应用服务器可跳过这一部分)

安装 Docker 的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击链接:【教程】CentOS系统Docker的详细安装教程https://www.smalljun.com/archives/3174.html

2. 安装 Nginx Proxy Manager(必需反向代理本教程选用NPM)

安装 Nginx Proxy Manager 的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击链接:【教程】使用腾讯云轻量应用服务器搭建Nginx Proxy Manager,优美简单地解决反向代理!https://www.smalljun.com/archives/3113.html ,当然想要使用反向代理的小伙伴要是熟悉 Nginx ,也可以自己安装 Nginx 进行反向代理哦!

3. 安装 Docker-compose

安装 Docker-compose 的详细教程可以参考小俊之前写过的【教程】CentOS系统Docker的详细安装教程https://www.smalljun.com/archives/3174.html#toc_23

2. 部署 Mattermost

1. 新建目录

执行以下命令,新建各个目录,并给予权限

代码语言:javascript复制
mkdir -p /opt/docker/mattermost && cd /opt/docker/mattermost
mkdir -p /opt/docker/docker_data/postgresql/data && mkdir -p /opt/docker/docker_data/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
chmod -R 777 /opt/docker/docker_data/mattermost/config

2. 新建docker-compose.yaml文件

执行以下命令,新建 docker-compose.yaml 文件

代码语言:javascript复制
vi docker-compose.yaml

然后输入以下配置内容

代码语言:javascript复制
--- 
version: "3"
services: 
  mattermost: 
    depends_on: 
      - postgres
    env_file: 
      - .env
    image: "mattermost/mattermost-team-edition:7.3"
    pids_limit: 200
    ports: 
      - "8065:8065"
    read_only: false
    restart: unless-stopped
    security_opt: 
      - "no-new-privileges:true"
    tmpfs: 
      - /tmp
    volumes: 
      - "/opt/docker/docker_data/mattermost/config:/mattermost/config:rw"
      - "/opt/docker/docker_data/mattermost/data:/mattermost/data:rw"
      - "/opt/docker/docker_data/mattermost/logs:/mattermost/logs:rw"
      - "/opt/docker/docker_data/mattermost/plugins:/mattermost/plugins:rw"
      - "/opt/docker/docker_data/mattermost/client/plugins:/mattermost/client/plugins:rw"
      - "/opt/docker/docker_data/mattermost/bleve-indexes:/mattermost/bleve-indexes:rw"
  postgres: 
    env_file: 
      - .env
    image: "postgres:14.5"
    pids_limit: 100
    read_only: true
    restart: unless-stopped
    security_opt: 
      - "no-new-privileges:true"
    tmpfs: 
      - /tmp
    volumes: 
      - "/opt/docker/docker_data/postgresql/data:/var/lib/postgresql/data"
      - "lock:/var/run/postgresql"
volumes: 
  lock: ~

如下图所示

注意:docker-compose.yaml 文件中 8065 为暴露端口,如被占用,请自行更改替换,需要在云服务器的控制台防火墙开放相应端口!

3. 新建.env文件

执行以下命令,新建 .env 文件

代码语言:javascript复制
vi .env

然后输入以下配置内容

代码语言:javascript复制
POSTGRES_DB=mattermost
#一般不用修改,可自定义
POSTGRES_USER=smalljun
#设置一个自定义的数据库用户名以替换smalljun
POSTGRES_PASSWORD=xjpassword
#设置一个自定义的数据库密码以替换xjpassword
MM_SQLSETTINGS_DRIVERNAME=postgres
MM_SQLSETTINGS_DATASOURCE=postgres://smalljun:xjpassword@postgres:5432/mattermost?sslmode=disable&connect_timeout=10
#设置一个自定义的数据库用户名以替换smalljun,设置一个自定义的数据库密码以替换xjpassword
MM_BLEVESETTINGS_INDEXDIR=/mattermost/bleve-indexes
MM_SERVICESETTINGS_SITEURL=https://chat.ymzsl.com
#设置你用于该业务的域名以替换https://chat.ymzsl.com

如下图所示

3. 启动容器

输入执行以下命令后台启动容器

代码语言:javascript复制
docker-compose up -d

如下图所示

输入执行以下命令确认所有容器都是 runningup 状态

代码语言:javascript复制
docker-compose ps

如下图所示

3. 配置反向代理

进入 Nginx Proxy Manager ,点击 Hosts ,然后点击 Add Proxy Host,按下图进行配置,下图中的 172.17.0.1 可能有所不一,请执行 ip addr 自行查找 docker0 网卡的内网IP!

代码语言:javascript复制
Domain Names:填写你想用在该程序的域名
Scheme:默认http #一般不用改
Forward Hostname / IP:172.17.0.1 #一般为 `172.17.0.1` ,可能有所不一,请执行 `ip addr` 自行查找 `docker0` 网卡的内网IP!
Forward Port:8065 #暴露端口(若跟着本文未修改 `yaml` 文件中的暴露端口。应为 `8065` )

如下图所示

至此,我们已经安装完成 Mattermost 开发人员协作平台系统啦!浏览器访问您刚刚设置的域名即可访问!Ps:需要在腾讯云轻量应用服务器的后台防火墙开放相应端口!默认需要开放 80 tcp81 tcp 哦。

2. 简单配置 Mattermost

打开浏览器,输入你的域名即可进入 Mattermost

然后,创建首个用户(成为管理员)。

然后,可以选择创建团队或者进入系统控制台。

进入系统控制台之后,在 SITE CONFIGURATION 找到 Localization ,即可修改默认语言,可以修改为中文!

进入系统控制台之后,在 AUTHENTICATION 找到 Signup ,然后把 Enable Open Server 改为 true 即可开放注册!

至此,你已经可以开开心心地使用 Mattermost 开发人员协作平台啦!赶紧拉上自己的朋友一起玩吧!

0 人点赞