Skip to content

安装指南

本指南将帮助您在不同平台上安装 SirrChat 邮件服务器。

系统要求

最低配置

  • CPU: 1核
  • 内存: 512MB RAM
  • 存储: 10GB 可用空间
  • 操作系统: Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+)

推荐配置

  • CPU: 2核或更多
  • 内存: 2GB RAM 或更多
  • 存储: 50GB SSD
  • 网络: 固定 IP 地址和域名

快速安装

一键安装脚本

适用于 Ubuntu/Debian 系统:

bash
curl -sSL https://raw.githubusercontent.com/mail-chat-chain/mailchatd/main/start.sh | bash

这个脚本将自动:

  • 安装所有依赖
  • 下载最新版本的 SirrChat
  • 配置系统服务
  • 设置 TLS 证书

手动安装

1. 下载二进制文件

GitHub Releases 下载最新版本:

bash
wget https://github.com/mail-chat-chain/mailchatd/releases/latest/download/sirrchatd-linux-amd64.tar.gz
tar -xzf sirrchatd-linux-amd64.tar.gz
sudo mv sirrchatd /usr/local/bin/
sudo chmod +x /usr/local/bin/sirrchatd

2. 创建系统用户

bash
sudo useradd -r -s /bin/false -d /var/lib/sirrchatd sirrchat
sudo mkdir -p /var/lib/sirrchatd
sudo chown sirrchat:sirrchat /var/lib/sirrchatd

3. 创建配置文件

bash
sudo mkdir -p /etc/sirrchatd
sudo sirrchatd config init > /etc/sirrchatd/config.toml

编辑配置文件:

bash
sudo nano /etc/sirrchatd/config.toml

4. 配置 Systemd 服务

创建服务文件 /etc/systemd/system/sirrchatd.service:

ini
[Unit]
Description=SirrChat Mail Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=sirrchat
Group=sirrchat
ExecStart=/usr/local/bin/sirrchatd run --config /etc/sirrchatd/config.toml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

启用并启动服务:

bash
sudo systemctl daemon-reload
sudo systemctl enable sirrchatd
sudo systemctl start sirrchatd

Docker 安装

使用 Docker Compose

创建 docker-compose.yml:

yaml
version: '3.8'

services:
  sirrchat:
    image: sirrchat/sirrchatd:latest
    ports:
      - "25:25"
      - "587:587"
      - "143:143"
      - "993:993"
    volumes:
      - ./config.toml:/etc/sirrchatd/config.toml
      - maildata:/var/lib/sirrchatd
    environment:
      - SIRRCHAT_SERVER_HOSTNAME=mail.example.com
    restart: unless-stopped

  postgres:
    image: postgres:15-alpine
    environment:
      - POSTGRES_DB=sirrchat
      - POSTGRES_USER=sirrchat
      - POSTGRES_PASSWORD=your-password
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  maildata:
  pgdata:

启动服务:

bash
docker-compose up -d

从源代码编译

前置要求

  • Go 1.21 或更高版本
  • Git

编译步骤

bash
# 克隆仓库
git clone https://github.com/mail-chat-chain/mailchatd.git
cd sirrchatd

# 编译
go build -o sirrchatd ./cmd/sirrchatd

# 安装
sudo mv sirrchatd /usr/local/bin/
sudo chmod +x /usr/local/bin/sirrchatd

数据库设置

PostgreSQL

bash
# 安装 PostgreSQL
sudo apt install postgresql postgresql-contrib

# 创建数据库和用户
sudo -u postgres psql <<EOF
CREATE DATABASE sirrchat;
CREATE USER sirrchat WITH ENCRYPTED PASSWORD 'your-password';
GRANT ALL PRIVILEGES ON DATABASE sirrchat TO sirrchat;
EOF

MySQL

bash
# 安装 MySQL
sudo apt install mysql-server

# 创建数据库和用户
sudo mysql <<EOF
CREATE DATABASE sirrchat;
CREATE USER 'sirrchat'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON sirrchat.* TO 'sirrchat'@'localhost';
FLUSH PRIVILEGES;
EOF

SQLite

SQLite 无需额外安装,SirrChat 会自动创建数据库文件。

DNS 配置

为您的邮件服务器配置 DNS 记录:

A 记录

mail.example.com. IN A 203.0.113.1

MX 记录

example.com. IN MX 10 mail.example.com.

SPF 记录

example.com. IN TXT "v=spf1 mx ~all"

DKIM 记录

生成 DKIM 密钥并添加 TXT 记录:

bash
sirrchatd dkim generate --domain example.com

DMARC 记录

_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"

防火墙配置

打开必要的端口:

bash
# UFW
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 143/tcp
sudo ufw allow 993/tcp

# firewalld
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-service=smtp-submission
sudo firewall-cmd --permanent --add-service=imap
sudo firewall-cmd --permanent --add-service=imaps
sudo firewall-cmd --reload

验证安装

检查服务状态

bash
sudo systemctl status sirrchatd

测试 SMTP 连接

bash
telnet mail.example.com 25

测试 IMAP 连接

bash
telnet mail.example.com 143

查看日志

bash
sudo journalctl -u sirrchatd -f

故障排除

服务无法启动

  1. 检查配置文件语法:

    bash
    sirrchatd config verify
  2. 检查日志输出:

    bash
    sudo journalctl -u sirrchatd -n 50

端口被占用

检查端口占用情况:

bash
sudo netstat -tulpn | grep -E ':(25|587|143|993)'

数据库连接失败

验证数据库连接:

bash
sirrchatd db ping

下一步

Released under the GPL 3.0 License.