SimpleLogin
นี่คือคอนฟิกูเรชัน docker-compose สำหรับ SimpleLogin ที่โฮสต์ด้วยตนเอง
ข้อกำหนดเบื้องต้น
- เซิร์ฟเวอร์ Linux (จะเป็น VM หรือเซิร์ฟเวอร์เฉพาะก็ได้) เอกสารนี้จะแสดงวิธีตั้งค่าสำหรับ Ubuntu 18.04 LTS แต่สามารถนำไปประยุกต์ใช้กับดิสทริบิวชัน Linux อื่น ๆ ที่ได้รับความนิยมได้ ส่วนใหญ่ของคอมโพเนนต์จะทำงานในรูปแบบคอนเทนเนอร์ Docker และเนื่องจาก Docker อาจใช้งานทรัพยากรค่อนข้างมาก จึงแนะนำให้มี RAM อย่างน้อย 2 GB เซิร์ฟเวอร์ต้องเปิดพอร์ต 25 (อีเมล), 80, 443 (สำหรับเว็บแอป), 22 (สำหรับ ssh เข้าระบบ)
- โดเมนที่คุณสามารถกำหนดค่า DNS ได้ อาจเป็นซับโดเมนก็ได้ ในส่วนที่เหลือของเอกสารนี้ สมมติว่าเป็น
mydomain.comสำหรับอีเมล และapp.mydomain.comสำหรับ SimpleLogin webapp กรุณาแทนค่าดังกล่าวด้วยชื่อโดเมนและซับโดเมนของคุณทุกครั้งที่ปรากฏในเอกสาร เคล็ดลับที่เราใช้คือดาวน์โหลดไฟล์ README นี้ลงในคอมพิวเตอร์ของคุณแล้วแทนที่mydomain.comและapp.mydomain.comทั้งหมดด้วยโดเมนของคุณ
bash (หรือเชลล์ที่เข้ากันได้กับ bash เช่น zsh) หากคุณใช้เชลล์อื่น เช่น fish กรุณาปรับคำสั่งให้เหมาะสม- แพ็คเกจยูทิลิตี้บางตัวที่ใช้ตรวจสอบการตั้งค่า ติดตั้งได้โดย:
sudo apt update \
&& sudo apt install -y net-tools dnsutilsการตั้งค่า DNS
_ดูรายละเอียดเพิ่มเติมได้ที่ เอกสารอ้างอิง_
โปรดทราบ ว่าการเปลี่ยนแปลง DNS อาจใช้เวลาสูงสุดถึง 24 ชั่วโมงในการกระจายข้อมูล อย่างไรก็ตาม ในทางปฏิบัติมักจะเร็วมาก (~1 นาทีในกรณีทดสอบของเรา) ในการตั้งค่า DNS เรามักใช้โดเมนที่ลงท้ายด้วยจุด (.) เพื่อบังคับให้ใช้โดเมนแบบสัมบูรณ์คุณจะต้องตั้งค่าบันทึก DNS ต่อไปนี้:
- A: แมปโดเมนของคุณกับที่อยู่ IPv4 ของเซิร์ฟเวอร์
- AAAA: แมปโดเมนของคุณกับที่อยู่ IPv6 ของเซิร์ฟเวอร์
- MX: กำหนดเส้นทางอีเมลขาเข้าไปยังเมลเซิร์ฟเวอร์ของคุณ (รวมถึง
*ไวลด์การ์ด) - PTR: แมปที่อยู่ IP ของเซิร์ฟเวอร์กลับไปยังชื่อโดเมนของคุณ
- DKIM: ลงลายมือชื่อดิจิทัลในอีเมลขาออกเพื่อยืนยันความถูกต้อง
- DMARC: กำหนดวิธีที่ผู้รับอีเมลควรจัดการกับข้อความที่ไม่ผ่านการตรวจสอบ
- SPF: อนุญาตให้เซิร์ฟเวอร์เมลที่ระบุส่งอีเมลจากโดเมนของคุณ
- CAA: ระบุว่า CA ใดได้รับอนุญาตให้ออกใบรับรอง SSL ให้กับโดเมนของคุณ
- MTA-STS: บังคับให้มีการเชื่อมต่อที่ปลอดภัยและเข้ารหัสระหว่างเมลเซิร์ฟเวอร์
- TLS-RPT: รายงานข้อผิดพลาดการเชื่อมต่อ TLS เพื่อเพิ่มความปลอดภัยในการส่งอีเมล
Docker
หากคุณยังไม่ได้ติดตั้ง Docker บนเซิร์ฟเวอร์ของคุณ โปรดทำตามขั้นตอนใน Docker CE for Ubuntu เพื่อติดตั้ง Docker
คุณยังสามารถติดตั้ง Docker ได้โดยใช้สคริปต์ docker-install ซึ่งเป็น
curl -fsSL https://get.docker.com | shเปิดใช้งาน IPv6 สำหรับ เครือข่ายบริดจ์เริ่มต้น
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64",
"experimental": true,
"ip6tables": true
}
ขั้นตอนนี้จะแนะนำวิธีการรันทั้งสแตกโดยใช้ Docker containers
ซึ่งประกอบด้วย:- traefik
- SimpleLogin app containers
- postfix
- โคลน repository นี้ไปที่
/opt/simplelogin - คัดลอก
.env.exampleไปเป็น.envและตั้งค่าตัวแปรให้เหมาะสม - ตั้งค่าตัวแปร
DOMAINเป็นโดเมนของคุณ - ตั้งค่าตัวแปร
SUBDOMAINเป็นซับโดเมนของคุณ โดยค่าเริ่มต้นคือapp - ตั้งค่าตัวแปร
POSTGRES_USERให้ตรงกับข้อมูลผู้ใช้ postgres (หากเริ่มใหม่ ให้ใช้simplelogin) - ตั้งค่าตัวแปร
POSTGRES_PASSWORDให้ตรงกับรหัสผ่าน postgres (หากเริ่มใหม่ ให้กำหนดเป็นคีย์สุ่ม) - ตั้งค่าตัวแปร
FLASK_SECRETเป็นรหัสลับใดๆ ก็ได้
Postgres SQL
repository นี้จะรัน postgres SQL ใน Docker container
คำเตือน: repository เวอร์ชันก่อนหน้านี้ใช้เวอร์ชัน 12.1
โปรดดู เอกสารอ้างอิง สำหรับรายละเอียดเพิ่มเติมและ
คำแนะนำในการอัปเกรด
การรันแอปพลิเคชัน
รันแอปพลิเคชันด้วยคำสั่งดังต่อไปนี้:
docker compose up --detach --remove-orphans --build && docker compose logs -f
คุณอาจต้องการตั้งค่า Certificate Authority Authorization (CAA) ในขั้นตอนนี้ขั้นตอนถัดไป
หากทุกขั้นตอนข้างต้นสำเร็จ ให้เปิด
โดยปกติแล้วบัญชีใหม่จะไม่ใช่บัญชีแบบพรีเมียม ดังนั้นจะไม่สามารถมีนามแฝงได้ไม่จำกัด หากต้องการเปลี่ยนบัญชีของคุณเป็นพรีเมียม โปรดไปที่ฐานข้อมูล ตาราง "users" และตั้งค่าคอลัมน์ "lifetime" เป็น "1" หรือ "TRUE":
docker compose exec -it postgres psql -U myuser simplelogin
UPDATE users SET lifetime = TRUE;
\q
เมื่อคุณสร้างบัญชีเข้าสู่ระบบที่ต้องการทั้งหมดแล้ว ให้เพิ่มบรรทัดเหล่านี้ลงใน .env เพื่อปิดการลงทะเบียนเพิ่มเติม:
DISABLE_REGISTRATION=1
DISABLE_ONBOARDING=true
จากนั้น เพื่อเริ่มต้นเว็บแอปใหม่ ให้ใช้คำสั่ง: docker compose restart appเบ็ดเตล็ด
การตั้งค่า Postfix - Spamhaus
โครงการ Spamhaus ดูแลรายชื่อ IP ที่เป็นแหล่งของสแปมอย่างเชื่อถือได้ คุณสามารถตรวจสอบว่า IP ที่กำหนดอยู่ในรายชื่อนี้หรือไม่โดยส่งคำขอไปยังโครงสร้าง DNS
เนื่องจาก Spamhaus บล็อกคำขอจาก DNS-Resolver สาธารณะ (เปิด) (ดู:
วางคีย์นี้เป็น SPAMHAUS_DQS_KEY ในไฟล์ .env ของคุณ
หากไม่มี DQS-key คอนเทนเนอร์ postfix ของคุณจะตรวจสอบว่ามิเรอร์สาธารณะของ Spamhaus ยอมรับคำขอหรือไม่และจะใช้มิเรอร์เหล่านั้นแทน หาก Spamhaus ปฏิเสธคำขอจากคอนเทนเนอร์ postfix ของคุณไปยังมิเรอร์สาธารณะ ระบบจะถูกปิดใช้งานทั้งหมด
การตั้งค่า Postfix - Virtual aliases
การตั้งค่า postfix รองรับ virtual aliases โดยใช้ไฟล์ postfix/conf.d/virtual และ postfix/conf.d/virtual-regexp
ไฟล์เหล่านี้จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อเริ่มต้นขึ้นตามไฟล์ต้นแบบ postfix/templates/virtual.tpl
และ postfix/templates/virtual-regexp.tpl
การตั้งค่าเริ่มต้นเป็นดังนี้:
#### virtual.tpl
ไฟล์ virtual รองรับการตั้งค่า postfix virtual_alias_maps
ไฟล์นี้มีการกำหนด rule ที่แมป unknown@mydomain.com ไปยัง contact@mydomain.com เพื่อแสดงตัวอย่างการรับ
อีเมลจากที่อยู่เฉพาะที่ไม่ตรงกับ alias ที่มีอยู่ ไปยัง alias ที่มีอยู่
``postfix-conf
unknown@mydomain.com contact@mydomain.com
#### virtual-regexp.tpl
ไฟล์ virtual-regexp รองรับการตั้งค่า virtual_alias_maps ของ postfix
มันมีการกำหนดกฎที่เขียนใหม่อีเมลที่ถูกส่งถึงซับโดเมนใด ๆ ที่ไม่มี alias ที่มีอยู่
ไปยัง alias ใหม่ที่อยู่ในไดเรกทอรีซึ่งชื่อถูกนำมาจากซับโดเมนนั้น
alias ดังกล่าวอาจถูกสร้างขึ้นทันทีหากยังไม่มีอยู่
postfix-conf
/^([^@]+)@([^.]+)\.mydomain.com/ $2/$1@mydomain.com
`
ตัวอย่างเช่น อีเมลที่ส่งไปยัง someone@directory.mydomain.com จะถูกเปลี่ยนเส้นทางไปยัง directory/someone@mydomain.com` โดย postfix
วิธีอัปเกรดจาก 3.4.0
_ส่วนนี้ถูกย้ายไปยัง เอกสารอ้างอิง_
วิธีอัปเกรดจากการตั้งค่าแบบ NGinx ก่อนหน้า
_ส่วนนี้ถูกย้ายไปยัง เอกสารอ้างอิง_
--- Tranlated By Open Ai Tx | Last indexed: 2026-03-15 ---