インストールガイド
このガイドでは、さまざまなプラットフォームで SirrChat メールサーバーをインストールする方法を説明します。
システム要件
最小要件
- CPU: 1コア
- RAM: 512MB
- ストレージ: 10GB 利用可能なスペース
- OS: Linux(Ubuntu 20.04+、Debian 11+、CentOS 8+)
推奨要件
- CPU: 2コア以上
- RAM: 2GB以上
- ストレージ: 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/sirrchatd2. システムユーザーを作成
bash
sudo useradd -r -s /bin/false -d /var/lib/sirrchatd sirrchat
sudo mkdir -p /var/lib/sirrchatd
sudo chown sirrchat:sirrchat /var/lib/sirrchatd3. 設定ファイルを作成
bash
sudo mkdir -p /etc/sirrchatd
sudo sirrchatd config init > /etc/sirrchatd/config.toml設定ファイルを編集:
bash
sudo nano /etc/sirrchatd/config.toml4. 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 sirrchatdDocker インストール
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;
EOFMySQL
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;
EOFSQLite
SQLite は追加のインストールは不要で、SirrChat が自動的にデータベースファイルを作成します。
DNS 設定
メールサーバーの DNS レコードを設定:
A レコード
mail.example.com. IN A 203.0.113.1MX レコード
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.comDMARC レコード
_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 sirrchatdSMTP 接続をテスト
bash
telnet mail.example.com 25IMAP 接続をテスト
bash
telnet mail.example.com 143ログを表示
bash
sudo journalctl -u sirrchatd -fトラブルシューティング
サービスが起動しない
設定ファイルの構文を確認:
bashsirrchatd config verifyログ出力を確認:
bashsudo journalctl -u sirrchatd -n 50
ポートが既に使用中
ポート使用状況を確認:
bash
sudo netstat -tulpn | grep -E ':(25|587|143|993)'データベース接続が失敗
データベース接続を確認:
bash
sirrchatd db ping