Raspberry Pi 4 สามารถใช้เป็นโฮมเซิร์ฟเวอร์ Matrix ขนาดเล็กที่ใช้งานได้จริงสำหรับบ้าน กลุ่มส่วนตัว หรือห้องปฏิบัติการ และ Conduit ได้รับการออกแบบโดยคำนึงถึงฮาร์ดแวร์ที่มีน้ำหนักเบาเป็นหลัก Matrix เป็นโปรโตคอลแบบเปิดสำหรับการสื่อสารแบบกระจายศูนย์: ผู้ใช้ของคุณเชื่อมต่อกับโฮมเซิร์ฟเวอร์ ซึ่งจัดเก็บข้อมูลบัญชีและข้อมูลห้องของพวกเขา ในขณะที่ การเชื่อม โยงเครือข่าย ช่วยให้โฮมเซิร์ฟเวอร์นั้นสามารถแลกเปลี่ยนเหตุการณ์กับเซิร์ฟเวอร์ Matrix อื่นๆ ได้
คู่มือนี้ใช้ Conduit ใน Docker โดยมี NGINX อยู่ด้านหน้าเพื่อรองรับ HTTPS วิธีนี้จะช่วยแยกบริการ Matrix ออกจากระบบบน Raspberry Pi ในขณะที่เปิดเผยเฉพาะพอร์ตเว็บสาธารณะเท่านั้น คำแนะนำเหล่านี้ได้รับการตรวจสอบแล้วจากเอกสารของ Conduit, Matrix, Raspberry Pi, Docker และ NGINX ที่มีอยู่ในเดือนตุลาคม 2026 ข้อจำกัดที่สำคัญประการหนึ่งคือ Conduit ยังคงระบุว่าตัวเองอยู่ในช่วงเบต้า ดังนั้นจึงเหมาะสำหรับผู้ใช้ที่ยอมรับว่าคุณสมบัติบางอย่างของ Matrix และเวอร์ชันห้องเก่าๆ อาจทำงานได้ไม่ตรงตามที่ควรจะเป็นในระบบ Synapse ที่พัฒนาเต็มที่แล้ว โปรดตรวจสอบโครงการ Conduit อย่างเป็นทางการ ก่อนนำไปใช้กับบริการที่สำคัญ
Raspberry Pi 4 สามารถใช้งานเป็นโฮมเซิร์ฟเวอร์ Conduit Matrix ขนาดเล็กได้ เมื่อใช้งานร่วมกับอุปกรณ์จัดเก็บข้อมูล แหล่งจ่ายไฟ และเครือข่ายที่เชื่อถือได้
1. ทำความเข้าใจขั้นตอนการติดตั้งก่อนทำการติดตั้งใดๆ
ขั้นตอนการทำงานโดยสมบูรณ์นั้นตรงไปตรงมา: ไคลเอนต์ Matrix เช่น Element เชื่อมต่อเข้ากับhttps://matrix.example.com; NGINX ทำการยุติ TLS และส่งต่อคำขอไปยัง Conduit บน Raspberry Pi; Conduit จัดเก็บฐานข้อมูลไว้ในพื้นที่จัดเก็บข้อมูลถาวรของ Docker หากเปิดใช้งานการเชื่อมต่อแบบเฟเดอเรชัน โฮมเซิร์ฟเวอร์อื่นๆ จะสามารถเข้าถึงปลายทาง HTTPS สาธารณะเดียวกันได้
คุณจะต้องมี Raspberry Pi 4, แหล่งจ่ายไฟที่เชื่อถือได้, การ์ด microSD หรือ SSD และระบบปฏิบัติการ 64 บิต ควรใช้ SSD สำหรับเซิร์ฟเวอร์ที่คุณคาดว่าจะใช้งานเป็นเวลานาน เนื่องจาก Matrix จะเขียนข้อมูลฐานข้อมูลและข้อมูลมีเดียอย่างต่อเนื่อง นอกจากนี้ คุณยังต้องมีชื่อโดเมนหากเซิร์ฟเวอร์ต้องสามารถเข้าถึงได้จากอินเทอร์เน็ตสาธารณะ
ณ วันที่ 15 กันยายน 2026 ระบบปฏิบัติการ Raspberry Pi OS 64 บิตรุ่นปัจจุบันใช้ Debian 13 “Trixie” เป็นพื้นฐาน และมี Raspberry Pi OS Lite สำหรับ Pi 4 ให้ใช้งานแล้ว ดูรายละเอียดได้ที่หน้าดาวน์โหลด Raspberry Pi OS อย่างเป็นทางการ สำหรับเซิร์ฟเวอร์นี้ Lite เหมาะสมกว่าเพราะช่วยหลีกเลี่ยงสภาพแวดล้อมเดสก์ท็อปที่ไม่จำเป็น
เลือกชื่อเซิร์ฟเวอร์ Matrix อย่างระมัดระวัง
ในคู่มือนี้ ชื่อเซิร์ฟเวอร์คือmatrix.example.com. รหัสผู้ใช้ Matrix ที่ได้จะมีลักษณะเป็น@alice:matrix.example.com. โปรดพิจารณาชื่อนี้เป็นชื่อประจำตัวระยะยาว รหัส Matrix และข้อมูลอ้างอิงของสหพันธ์จะรวมชื่อเซิร์ฟเวอร์ไว้ด้วย ดังนั้นการเปลี่ยนชื่อในภายหลังจึงไม่เหมือนกับการเปลี่ยนชื่อเว็บโฮสต์ทั่วไป
2. ติดตั้ง Raspberry Pi OS และอัปเดต Pi
เขียนระบบปฏิบัติการ Raspberry Pi OS Lite 64 บิตลงในการ์ดหรือ SSD โดยใช้ Raspberry Pi Imager เปิดใช้งาน SSH ระหว่างการสร้างอิมเมจหากต้องการติดตั้งแบบไม่มีหน้าจอ และบูต Pi ตรวจสอบให้แน่ใจว่าคุณใช้ระบบ ARM 64 บิต:
uname -m
cat /etc/os-release
uname -mโดยปกติแล้วควรรายงานผลaarch64จากนั้นติดตั้งการอัปเดตล่าสุด:
sudo apt update
sudo apt full-upgrade -y
sudo reboot
อัปเดต Raspberry Pi OS ก่อนติดตั้ง Docker และ Conduit เพื่อให้เซิร์ฟเวอร์เริ่มต้นจากแพ็กเกจระบบปัจจุบัน
3. ติดตั้ง Docker Engine และ Compose
เอกสารของ Docker ระบุว่า ผู้ใช้ Raspberry Pi OS 64 บิต ควรใช้แพ็กเกจ Debian ARM64 ที่รองรับ แทนที่จะใช้แพ็กเกจ Raspberry Pi OS 32 บิตแบบเก่า ขั้นตอนที่เป็นทางการอยู่ที่หน้า Docker Engine for Debian การตั้งค่าที่เก็บข้อมูลต่อไปนี้เป็นไปตามแนวทางนั้น:
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run --rm hello-world
หากคำสั่งสุดท้ายแสดงข้อความยืนยัน "hello-world" ของ Docker แสดงว่ารันไทม์คอนเทนเนอร์ทำงานได้แล้ว คุณสามารถใช้งานต่อไปได้sudo dockerตามส่วนที่เหลือของคู่มือ การเพิ่มบัญชีของคุณลงในdockerกลุ่มนั้นเป็นทางเลือก แต่โปรดจำไว้ว่าการเป็นสมาชิกกลุ่ม Docker จะให้สิทธิ์ในการควบคุมระดับรูทของโฮสต์อย่างมีประสิทธิภาพ
4. สร้างการกำหนดค่าท่อร้อยสายไฟ
Conduit สามารถกำหนดค่าได้โดยใช้ไฟล์ TOML หรือตัวแปรสภาพแวดล้อม เอกสารอ้างอิงการกำหนดค่า Conduit อย่างเป็นทางการระบุว่า server_name , database_backend, และdatabase_pathเป็นฟิลด์ที่จำเป็น และแนะนำให้ใช้ RocksDB
สร้างไดเร็กทอรีสำหรับทำงาน:
sudo mkdir -p /opt/conduit
sudo chown "$USER":"$USER" /opt/conduit
cd /opt/conduit
nano conduit.toml
ใช้การตั้งค่าเริ่มต้นนี้ แล้วแทนที่ชื่อโฮสต์และโทเค็นการลงทะเบียน:
[global]
server_name = "matrix.example.com"
database_backend = "rocksdb"
database_path = "/var/lib/matrix-conduit/"
address = "0.0.0.0"
port = 6167
allow_registration = true
registration_token = "replace-with-a-long-random-secret"
allow_federation = true
trusted_servers = ["matrix.org"]
ทำไมต้อง0.0.0.0ที่นี่? ภายในคอนเทนเนอร์ Conduit ต้องรับฟังการเชื่อมต่อบนอินเทอร์เฟซของคอนเทนเนอร์เพื่อให้ Docker สามารถเข้าถึงได้ พอร์ตฝั่งโฮสต์จะยังคงถูกผูกไว้กับเท่านั้น127.0.0.1ดังนั้นพอร์ต 6167 จึงไม่ได้ถูกเปิดเผยสู่ภายนอกโดยตรง
การกำหนดค่า Conduit ขั้นต่ำจะกำหนดข้อมูลประจำตัวของเซิร์ฟเวอร์ Matrix, พื้นที่จัดเก็บข้อมูล RocksDB, พอร์ตบริการภายใน และพฤติกรรมการลงทะเบียนและการเชื่อมโยงเครือข่าย
5. เรียกใช้งาน Conduit ด้วย Docker Compose
สร้าง/opt/conduit/docker-compose.yml:
services:
conduit:
image: registry.gitlab.com/famedly/conduit/matrix-conduit:latest
container_name: matrix-conduit
restart: unless-stopped
ports:
- "127.0.0.1:6167:6167"
volumes:
- ./conduit.toml:/etc/conduit.toml:ro
- conduit-data:/var/lib/matrix-conduit/
environment:
CONDUIT_CONFIG: /etc/conduit.toml
volumes:
conduit-data:
อิมเมจ GitLab Registry ที่เสถียรคืออิมเมจที่แนะนำในเอกสารอย่างเป็นทางการของ Conduit Docker หลีกเลี่ยงการคัดลอกแท็กอิมเมจเก่าจากบทช่วยสอนที่ไม่น่าเชื่อถือ ให้ใช้รีจิสทรีอย่างเป็นทางการและตรวจสอบบันทึกการเผยแพร่ก่อนอัปเกรด
Docker Compose รวบรวมคำจำกัดความของคอนเทนเนอร์ Conduit พื้นที่จัดเก็บข้อมูลถาวร และการเชื่อมต่อเครือข่ายไว้ในไฟล์เดียวที่สามารถสร้างซ้ำได้
เริ่มการให้บริการและตรวจสอบการทำงาน:
cd /opt/conduit
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps
sudo docker compose logs --tail=100 conduit
คุณต้องการให้คอนเทนเนอร์อยู่ในUpสถานะทำงานอย่างต่อเนื่องโดยไม่เกิดการรีสตาร์ทซ้ำๆ ก่อนที่จะกำหนดค่า NGINX โปรดตรวจสอบ API ในเครื่องก่อน:
curl http://127.0.0.1:6167/_matrix/client/versions
คอนเทนเนอร์ Conduit ที่กำลังทำงานอยู่ ควรคงสถานะทำงานอยู่และเผยแพร่พอร์ตภายในไปยังอินเทอร์เฟซ loopback ของ Raspberry Pi เท่านั้น
6. ตั้งค่า DNS ให้ชี้ไปยัง Raspberry Pi และวาง NGINX ไว้ด้านหน้า Conduit
สร้างAเรคอร์ดที่matrix.example.comชี้ไปยังที่อยู่ IPv4 สาธารณะของคุณ หากคุณเผยแพร่เรAAAAคอร์ดแล้ว โปรดตรวจสอบให้แน่ใจว่า IPv6 สามารถเข้าถึง Raspberry Pi ได้จริง เรคอร์ด IPv6 ที่เสียหายอาจทำให้ไคลเอ็นต์ล้มเหลวได้ แม้ว่า IPv4 จะใช้งานได้ก็ตาม
บนเราเตอร์บ้านทั่วไป ให้ทำการส่งต่อพอร์ต TCP 80 และ 443 ไปยัง Raspberry Pi หากผู้ให้บริการอินเทอร์เน็ตของคุณใช้ Carrier-Grade NAT (CGNAT) การส่งต่อพอร์ตขาเข้าแบบปกติอาจใช้ไม่ได้ผล ในกรณีนั้น คุณจำเป็นต้องใช้ที่อยู่ IP สาธารณะ, VPS/Reverse Tunnel หรือการจัดการโฮสติ้งแบบอื่น
ติดตั้ง NGINX:
sudo apt install -y nginx
สร้าง/etc/nginx/sites-available/matrix:
server {
listen 80;
server_name matrix.example.com;
client_max_body_size 20M;
location / {
proxy_pass http://127.0.0.1:6167;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
เอกสารคู่มือการใช้งาน reverse-proxy อย่างเป็นทางการ ของ NGINX proxy_passและส่วนหัวที่ส่งต่อที่ใช้ในที่นี้
sudo ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/matrix
sudo nginx -t
sudo systemctl reload nginx
NGINX เป็นเลเยอร์ที่เชื่อมต่อกับภายนอก: มันทำหน้าที่ยุติการเชื่อมต่อ HTTPS และส่งต่อคำขอของ Matrix ไปยัง Conduit ปลายทางที่รู้จักกันดีของ Matrix สามารถถูกส่งผ่านพร็อกซีไปยัง Conduit หรือให้บริการโดยตรงก็ได้
7. เปิดใช้งาน HTTPS และการค้นหาด้วย Matrix
Matrix ต้องการ HTTPS ที่ถูกต้องสำหรับการใช้งานสาธารณะทั่วไป ขอใบรับรองหลังจากที่ DNS สามารถระบุไปยัง Raspberry Pi และสามารถเข้าถึงพอร์ต 80 ได้แล้ว Debian Trixie มีแพ็กเกจ Certbot ให้ใช้งาน และโครงการ Certbot ยังเผยแพร่คำแนะนำเฉพาะแพลตฟอร์มในปัจจุบันที่certbot.eff.org ด้วย
วิธีการใช้งาน Debian/NGINX ทั่วไปมีดังนี้:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d matrix.example.com
หลังจาก Certbot อัปเดตโฮสต์เสมือน NGINX แล้ว ให้ทดสอบการกำหนดค่าอีกครั้ง:
sudo nginx -t
sudo systemctl reload nginx
เนื่องจากคู่มือนี้ใช้ชื่อโฮสต์เดียวกันสำหรับชื่อเซิร์ฟเวอร์ Matrix และเอนด์พอยต์สาธารณะ Conduit จึงสามารถตอบสนองเส้นทางการค้นหาของ Matrix ผ่านทางรีเวิร์สพร็อกซีได้ ข้อกำหนดของ Matrix กำหนดเอนด์พอยต์เหล่านี้ ไว้/.well-knownเพื่อให้ไคลเอ็นต์และเซิร์ฟเวอร์อื่นๆ สามารถค้นหา URL โฮมเซิร์ฟเวอร์ที่ถูกต้องได้ โปรดดูข้อกำหนดไคลเอ็นต์-เซิร์ฟเวอร์ของ Matrix
8. สร้างบัญชีผู้ใช้แรก จากนั้นยืนยันเซิร์ฟเวอร์
เอกสาร Docker ของ Conduit ระบุว่าบัญชีแรกที่สร้างขึ้นบนโฮมเซิร์ฟเวอร์ใหม่จะกลายเป็นผู้ดูแลระบบ เปิดโปรแกรม Matrix client ที่รองรับโทเค็นการลงทะเบียน เลือกโฮมเซิร์ฟเวอร์ที่กำหนดเอง แล้วป้อนคำสั่งต่อไปนี้:
https://matrix.example.com
ลงทะเบียนบัญชีแรกโดยใช้โทเค็นจากconduit.toml[ที่อยู่อีเมล] ทำเช่นนี้หลังจากเปิดใช้งานบริการแล้ว หากคุณไม่ต้องการให้มีการลงทะเบียนเพิ่มเติม ให้แก้ไขการกำหนดค่าเพื่อตั้งค่า [ที่อยู่allow_registration = falseอีเมล] แล้วรีสตาร์ทคอนเทนเนอร์:
cd /opt/conduit
sudo docker compose restart conduit
ในโปรแกรมไคลเอ็นต์ Matrix เช่น Element ให้เลือก URL โฮมเซิร์ฟเวอร์ที่กำหนดเองแทนเซิร์ฟเวอร์สาธารณะเริ่มต้น ก่อนลงทะเบียนหรือเข้าสู่ระบบ
ตอนนี้ให้ทำการตรวจสอบสามครั้งจากเครื่องใดก็ได้ที่สามารถเชื่อมต่อกับโดเมนได้:
curl https://matrix.example.com/_matrix/client/versions
curl https://matrix.example.com/.well-known/matrix/client
curl https://matrix.example.com/.well-known/matrix/server
คำขอแรกควรส่งคืนข้อมูล JSON ที่อธิบายเวอร์ชัน API ไคลเอ็นต์ Matrix ที่รองรับ คำขอที่รู้จักกันดีควรส่งคืนข้อมูลการค้นหา JSON ที่ถูกต้อง สำหรับการเชื่อมต่อแบบเฟเดอเรชัน ให้ใช้Matrix Federation Tester และลองเข้าร่วมห้องแบบเฟเดอเรชันจากบัญชีใหม่ด้วย
การตอบสนอง JSON ที่ประสบความสำเร็จจากเวอร์ชัน Matrix และ URL ที่รู้จักกันดีนั้นมีประโยชน์ในการตรวจสอบขั้นสุดท้ายสำหรับการกำหนดเส้นทางและการค้นหา HTTPS
ข้อผิดพลาดทั่วไปที่ทำให้เซิร์ฟเวอร์ Raspberry Pi Matrix ใช้งานไม่ได้
การใช้ระบบปฏิบัติการ 32 บิตโดยไม่จำเป็น: สำหรับ Raspberry Pi 4 ให้ใช้ Raspberry Pi OS 64 บิต และแพ็กเกจ Debian ARM64 ที่ Docker รองรับ
การเปิดใช้งาน Conduit โดยตรง: ให้คงพอร์ต 6167 ไว้127.0.0.1บนโฮสต์ และเปิดใช้งาน HTTPS ผ่าน NGINX
การปล่อยให้การลงทะเบียนเปิดอยู่โดยไม่มีการป้องกัน: ควรใช้โทเค็นการลงทะเบียนที่มีความปลอดภัยสูงในระหว่างการตั้งค่าเริ่มต้น จากนั้นปิดใช้งานการลงทะเบียนหากคุณไม่ต้องการใช้งานอีกต่อไป
การเผยแพร่ DNS ที่ไม่ถูกต้อง: ทั้งระเบียน IPv4 และ IPv6 ต้องนำไปสู่ปลายทางที่ใช้งานได้ หากคุณเผยแพร่ทั้งสองประเภท
การลืมกฎเราเตอร์หรือไฟร์วอลล์: คอนเทนเนอร์ที่ถูกต้องไม่สามารถชดเชยการบล็อกพอร์ต TCP 80/443 ขาเข้าได้
สมมติว่าการส่งข้อความและการโทรด้วยเสียงเป็นสิ่งเดียวกัน: การส่งข้อความผ่าน Matrix สามารถใช้งานได้ในขณะที่การโทรล้มเหลว เอกสารของ Conduit ระบุว่าการสื่อสารด้วยเสียงจำเป็นต้องใช้เซิร์ฟเวอร์ TURN เช่น Coturn
การข้ามขั้นตอนการสำรองข้อมูล: คำถามที่พบบ่อยของ Conduit แนะนำให้หยุด Conduit ก่อนทำการคัดลอกฐานข้อมูลไปยังระบบไฟล์ตามปกติ เว้นแต่คุณจะใช้ฟังก์ชันสร้างสแนปช็อตของระบบไฟล์ที่เหมาะสม สำรองข้อมูลวอลุ่ม Docker และการกำหนดค่าของคุณก่อนทำการอัปเกรด
ลักษณะของการติดตั้งที่ประสบความสำเร็จเป็นอย่างไร
คุณจะเสร็จสิ้นเมื่อเงื่อนไขทั้งหมดนี้เป็นจริง: คอนเทนเนอร์ Conduit ยังคงทำงานต่อไปหลังจากรีบูต; https://matrix.example.com/_matrix/client/versionsส่งคืนข้อมูลในรูปแบบ JSON; ไคลเอนต์ Matrix สามารถลงทะเบียนหรือเข้าสู่ระบบกับโฮมเซิร์ฟเวอร์ที่กำหนดเองของคุณได้; บัญชีสามารถสร้างห้องและส่งข้อความได้; และหากเปิดใช้งานการเชื่อมโยงเครือข่าย (federation) ตัวทดสอบการเชื่อมโยงเครือข่ายสามารถเข้าถึงเซิร์ฟเวอร์ได้ และผู้ใช้สามารถสื่อสารกับบัญชีบนโฮมเซิร์ฟเวอร์อื่นได้
สำหรับการใช้งาน Raspberry Pi ขนาดเล็ก นี่เป็นเพียงพื้นฐานที่สะอาดตา ไม่ใช่จุดสิ้นสุดของการบริหารจัดการ ควรตรวจสอบพื้นที่จัดเก็บข้อมูลที่ว่างอยู่ อัปเดต Raspberry Pi OS และ Docker อย่างสม่ำเสมอ สำรองข้อมูลฐานข้อมูล และอ่านเอกสารอย่างเป็นทางการของ Conduit ก่อนที่จะเปิดใช้งานคุณสมบัติเพิ่มเติม Conduit ยังคงเป็นตัวเลือกที่เบาและน่าสนใจสำหรับฮาร์ดแวร์ระดับ Pi แต่สถานะเบต้าของมันเป็นข้อพิจารณาในการใช้งานจริงมากกว่าแค่หมายเหตุเล็กๆ น้อยๆ