不知不觉【实用的开源项目】系列已经来到第四期了啊。今天为大家介绍一下 Mattermost ,教大家使用云服务器部署 Mattermost ,简洁、强大的私人书籍管理系统!
这篇文章是详细的文字版,若希望查看教程视频,请向下滑动,查看视频,或者直接到 BiliBili 搜索 我是小俊呀 ,查找视频哦!
待补充
HK 或国内,其他服务器、家里云或者各家企业的私有云亦可,我们在腾讯云轻量应用服务器重装系统的时候,选择 应用镜像 ,然后选择 Docker CE 19.03.9 ,然后我们就可以使用 Docker 部署搭建了我们需要的程序啦!本文就从安装完 Docker 后开始教程啦!当然啦,不使用腾讯云轻量应用服务器的朋友们,可以自己手动安装 Docker ,然后进入我们的部署哦!本文就从安装完 Docker 后开始教程啦!本文软件基于腾讯云轻量应用服务器安装,无建议配置,教程使用的腾讯云轻量应用服务器系统为 CentOS 7.6 64位 !理论上腾讯云轻量应用服务器为 Docker CE 19.03.9 的服务器操作应与本文基本一致(包括过程与报错),其他系统为 CentOS 7 的服务器应与本文大同小异!
腾讯云轻量应用服务器快到两周年了,活动力度很大喔!大家可以关注一下!
腾讯云轻量应用服务器购买地址: https://curl.qcloud.com/XqKjWCYA
腾讯云精选爆品 特惠抢购: https://curl.qcloud.com/UEBvnJfH
腾讯云云产品特惠专区: https://curl.qcloud.com/TPJfrddE

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
安装 Docker 的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击链接:【教程】CentOS系统Docker的详细安装教程https://www.smalljun.com/archives/3174.html
安装 Nginx Proxy Manager 的详细教程小俊之前也写过哦,也配有详细的视频版本,需要学习的朋友可以点击链接:【教程】使用腾讯云轻量应用服务器搭建Nginx Proxy Manager,优美简单地解决反向代理!https://www.smalljun.com/archives/3113.html ,当然想要使用反向代理的小伙伴要是熟悉 Nginx ,也可以自己安装 Nginx 进行反向代理哦!
安装 Docker-compose 的详细教程可以参考小俊之前写过的【教程】CentOS系统Docker的详细安装教程https://www.smalljun.com/archives/3174.html#toc_23
执行以下命令,新建各个目录,并给予权限
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
执行以下命令,新建 docker-compose.yaml 文件
vi docker-compose.yaml
然后输入以下配置内容
---
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 为暴露端口,如被占用,请自行更改替换,需要在云服务器的控制台防火墙开放相应端口!
执行以下命令,新建 .env 文件
vi .env
然后输入以下配置内容
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
如下图所示

输入执行以下命令后台启动容器
docker-compose up -d
如下图所示

输入执行以下命令确认所有容器都是 running 或 up 状态
docker-compose ps
如下图所示

进入 Nginx Proxy Manager ,点击 Hosts ,然后点击 Add Proxy Host,按下图进行配置,下图中的 172.17.0.1 可能有所不一,请执行 ip addr 自行查找 docker0 网卡的内网IP!
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 tcp 与 81 tcp 哦。
打开浏览器,输入你的域名即可进入 Mattermost 。

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

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

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

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

至此,你已经可以开开心心地使用 Mattermost 开发人员协作平台啦!赶紧拉上自己的朋友一起玩吧!
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b