دليل التثبيت
سيساعدك هذا الدليل على تثبيت خادم بريد 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/sirrmeshd2. إنشاء مستخدم نظام
bash
sudo useradd -r -s /bin/false -d /var/lib/sirrmeshd sirrchat
sudo mkdir -p /var/lib/sirrmeshd
sudo chown sirrchat:sirrchat /var/lib/sirrmeshd3. إنشاء ملف التكوين
bash
sudo mkdir -p /etc/sirrmeshd
sudo sirrmeshd config init > /etc/sirrmeshd/config.tomlتحرير ملف التكوين:
bash
sudo nano /etc/sirrmeshd/config.toml4. تكوين خدمة 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;
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 لا يتطلب تثبيتًا إضافيًا، سيقوم 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: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 sirrmeshdاختبار اتصال SMTP
bash
telnet mail.example.com 25اختبار اتصال IMAP
bash
telnet mail.example.com 143عرض السجلات
bash
sudo journalctl -u sirrmeshd -fاستكشاف الأخطاء وإصلاحها
الخدمة لن تبدأ
التحقق من بناء جملة ملف التكوين:
bashsirrmeshd config verifyالتحقق من إخراج السجل:
bashsudo journalctl -u sirrmeshd -n 50
المنفذ قيد الاستخدام بالفعل
التحقق من استخدام المنفذ:
bash
sudo netstat -tulpn | grep -E ':(25|587|143|993)'فشل الاتصال بقاعدة البيانات
التحقق من اتصال قاعدة البيانات:
bash
sirrmeshd db ping