本文介绍如何在 Ubuntu Server 20.04 上手动部署 Mattermost,使用 PostgreSQL 13 作为数据库,并通过 systemd 管理服务进程。
1. 安装 PostgreSQL 13
更新系统并安装依赖
sudo apt updatesudo apt install curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates添加 PostgreSQL 官方软件源
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list安装 PostgreSQL 13
sudo apt update && sudo apt install postgresql-13 postgresql-client-13确认服务运行状态
systemctl status postgresql@13-main.service2. 初始化数据库
进入 PostgreSQL 交互终端,依次执行以下命令:
sudo -u postgres psqlCREATE DATABASE mattermostdb;CREATE USER mmuser WITH PASSWORD 'password';GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO mmuser;\q⚠️ 请将
'password'替换为强密码,不要在生产环境中使用示例密码。
3. 创建系统用户并部署 Mattermost
# 创建专用系统用户sudo useradd --system --user-group mattermost
# 下载并解压 Mattermostwget http://192.168.0.6:8082/Files/FTP/mattermost-10.7.0-linux-amd64.tar.gzsudo tar -xf mattermost-10.7.0-linux-amd64.tar.gz
# 移动到标准目录并设置权限sudo mv mattermost /opt/sudo chown -R mattermost:mattermost /opt/mattermost4. 配置 Mattermost
创建数据目录
sudo mkdir -p /opt/mattermost/data编辑配置文件
sudo nano /opt/mattermost/config/config.json找到并修改以下两处配置:
站点 URL
"ServiceSettings": { "SiteURL": "https://your_domain"}数据库连接
"SqlSettings": { "DriverName": "postgres", "DataSource": "postgres://mmuser:password@localhost/mattermostdb?sslmode=disable&connect_timeout=10&binary_parameters=yes"}将
your_domain替换为实际域名,password替换为第 2 步中设置的数据库密码。
5. 配置 systemd 服务
创建服务单元文件:
sudo nano /etc/systemd/system/mattermost.service写入以下内容:
[Unit]Description=MattermostAfter=network.targetAfter=postgresql.serviceBindsTo=postgresql.service
[Service]Type=notifyExecStart=/opt/mattermost/bin/mattermostTimeoutStartSec=3600KillMode=mixedRestart=alwaysRestartSec=10WorkingDirectory=/opt/mattermostUser=mattermostGroup=mattermostLimitNOFILE=49152
[Install]WantedBy=multi-user.target6. 启动服务
# 重新加载 systemd 配置sudo systemctl daemon-reload
# 设置开机自启并立即启动sudo systemctl enable --now mattermost
# 查看运行状态sudo systemctl status mattermost若状态显示 Active: active (running),即表示部署成功。
🔒 后续建议:部署完成后,建议在前端配置 Nginx 反向代理并启用 HTTPS,以保障数据传输安全。
Thanks for reading!
