Skip to content

설치 가이드

이 가이드는 다양한 플랫폼에서 SirrMesh 메일 서버를 설치하는 방법을 안내합니다.

시스템 요구 사항

최소 요구 사항

  • 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/sirrmesh/SirrMesh/main/start.sh | bash

이 스크립트는 자동으로 수행합니다:

  • 모든 의존성 설치
  • SirrMesh 최신 버전 다운로드
  • 시스템 서비스 설정
  • TLS 인증서 구성

수동 설치

1. 바이너리 다운로드

GitHub Releases에서 최신 버전을 다운로드합니다:

bash
wget https://github.com/sirrmesh/SirrMesh/releases/latest/download/sirrmeshd-linux-amd64.tar.gz
tar -xzf sirrmeshd-linux-amd64.tar.gz
sudo mv sirrmeshd /usr/local/bin/
sudo chmod +x /usr/local/bin/sirrmeshd

2. 시스템 사용자 생성

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

3. 설정 파일 생성

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

설정 파일 편집:

bash
sudo nano /etc/sirrmeshd/config.toml

4. Systemd 서비스 설정

서비스 파일 /etc/systemd/system/sirrmeshd.service 생성:

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

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

[Install]
WantedBy=multi-user.target

서비스 활성화 및 시작:

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

Docker 설치

Docker Compose 사용

docker-compose.yml 생성:

yaml
version: '3.8'

services:
  sirrchat:
    image: sirrchat/sirrmeshd:latest
    ports:
      - "25:25"
      - "587:587"
      - "143:143"
      - "993:993"
    volumes:
      - ./config.toml:/etc/sirrmeshd/config.toml
      - maildata:/var/lib/sirrmeshd
    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/sirrmesh/SirrMesh.git
cd sirrmesh

# 빌드
go build -o sirrmeshd ./cmd/sirrmeshd

# 설치
sudo mv sirrmeshd /usr/local/bin/
sudo chmod +x /usr/local/bin/sirrmeshd

데이터베이스 설정

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는 추가 설치가 필요 없으며, SirrMesh가 자동으로 데이터베이스 파일을 생성합니다.

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
sirrmeshd 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 sirrmeshd

SMTP 연결 테스트

bash
telnet mail.example.com 25

IMAP 연결 테스트

bash
telnet mail.example.com 143

로그 보기

bash
sudo journalctl -u sirrmeshd -f

문제 해결

서비스가 시작되지 않는 경우

  1. 설정 파일 구문 확인:

    bash
    sirrmeshd config verify
  2. 로그 출력 확인:

    bash
    sudo journalctl -u sirrmeshd -n 50

포트가 이미 사용 중인 경우

포트 사용 현황 확인:

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

데이터베이스 연결 실패

데이터베이스 연결 확인:

bash
sirrmeshd db ping

다음 단계

Released under the GPL 3.0 License.