คู่มือ
โฮสต์เองด้วย Docker
รันรุ่นคอมมูนิตี้บนโครงสร้างพื้นฐานของคุณเอง
รุ่นคอมมูนิตี้ (AGPL-3.0) เป็นแพลตฟอร์มแชทที่สมบูรณ์ซึ่งคุณสามารถรันได้ทุกที่ที่ Docker ทำงาน ส่วนเสริมสำหรับองค์กรอยู่ในรีโพซิทอรีส่วนตัวแยกต่างหากที่ป้องกันด้วยคีย์ลิขสิทธิ์
ข้อกำหนดเบื้องต้น
- Docker 24+ และ docker compose v2
- อย่างน้อย 2 vCPU, RAM 4 GB (แนะนำ 8 GB)
- โดเมนที่ชี้ไปยังเซิร์ฟเวอร์ของคุณ (สำหรับ TLS)
การติดตั้ง
git clone https://github.com/singlink/singlink
cd singlink
cp .env.example .env
# edit .env: AUTH_SECRET, DATABASE_URL, REDIS_URL, S3_*
docker compose up -dโดยค่าเริ่มต้น คำสั่งนี้จะเริ่ม Postgres (พร้อม pgvector), Redis, MinIO, web, ws และ worker รัน docker compose ps เพื่อยืนยันว่าคอนเทนเนอร์ทั้งห้าอยู่ในสถานะปกติ
การตั้งค่าเริ่มต้น
docker compose exec web pnpm db:migrate deploy
docker compose exec web pnpm db:seed # optional demo tenantรีเวิร์สพร็อกซี
วาง nginx (หรือ Caddy) ไว้ด้านหน้า ทั้ง /api/* และ /v1/ws จำเป็นต้อง ไปยังออริจินเดียวกันเพื่อแชร์ cookie จุดสิ้นสุด WS ต้องการเฮดเดอร์ upgrade:
location /v1/ws {
proxy_pass http://ws:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400s;
}การสำรองข้อมูล
- Postgres —
pg_dumpทุกวัน; ครอบคลุมทุกอย่าง ยกเว้นไฟล์แนบ S3 - S3 / MinIO — ใช้การกำหนดเวอร์ชันของบักเก็ตหรือ
rclone syncไปยัง ภูมิภาคอื่น - Redis — ชั่วคราว (คิว) ไม่จำเป็นต้องสำรองข้อมูล; งานจะถูกเล่นซ้ำเมื่อรีสตาร์ท
การอัปเกรด
git fetch && git checkout v0.x.y
docker compose pull
docker compose up -d
docker compose exec web pnpm db:migrate deployการย้ายข้อมูลเข้ากันได้แบบไปข้างหน้า เราจะไม่ทำให้อินสแตนซ์ที่กำลังทำงานอยู่เสียหายด้วยการเปลี่ยนแปลง schema ที่ไม่เข้ากันโดยไม่มีการขึ้นเวอร์ชันหลัก