Skip to content

دليل التثبيت ​

سيساعدك هذا الدليل على تثبيت خادم بريد SirrMesh على منصات مختلفة.

متطلبات النظام ​

الحد الأدنى من المتطلبات ​

  • CPU: نواة واحدة
  • RAM: 512MB
  • التخزين: 10GB مساحة متاحة
  • OS: Linux (Ubuntu 20.04+، Debian 11+، CentOS 8+)

المتطلبات الموصى بها ​

  • CPU: نواتان أو أكثر
  • RAM: 2GB أو أكثر
  • التخزين: 50GB SSD
  • الشبكة: عنوان 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.