설치 가이드
이 가이드는 다양한 플랫폼에서 SirrChat 메일 서버를 설치하는 데 도움을 드립니다.
시스템 요구 사항
최소 요구 사항
- CPU: 1코어
- RAM: 512MB
- Storage: 10GB 사용 가능 공간
- OS: Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+)
권장 요구 사항
- CPU: 2코어 이상
- RAM: 2GB 이상
- Storage: 50GB SSD
- Network: 고정 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:dmarc@example.com"방화벽 구성
필요한 포트 열기:
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