v0.12.0 เป็นการเปลี่ยนแปลงครั้งใหญ่ หากคุณมีอินสแตนซ์ของ SyncParty ที่ปรับใช้กับข้อมูลที่คุณสนใจ โปรดตรวจสอบให้แน่ใจว่าได้ คัดลอกไฟล์ต่อไปนี้ ไปยังไดเร็กทอรีอื่น ก่อนที่ จะดึงเวอร์ชันใหม่:
server/db
(ฐานข้อมูล)server/uploads
(ไฟล์ที่อัปโหลดทั้งหมด)server/persistence.json
(ตำแหน่งการเล่นปัจจุบันสำหรับแต่ละรายการ สำหรับผู้ใช้แต่ละคน) หลังจากดึงเวอร์ชันปัจจุบันแล้ว ให้สร้างไดเร็กทอรี data
ในระดับที่ 1
หลังจากตั้งค่า (ดูด้านล่าง) ให้คัดลอกทั้งสองไฟล์และโฟลเดอร์ uploads
กลับเข้าไปใน data
หากคุณรัน npm run prod:deploy
ตอนนี้ แอปควรจะทำงานเหมือนเดิม ไขว้นิ้วเหรอ?
ดูวิดีโอหรือฟังเพลงไปพร้อมกับเพื่อนของคุณ ลองนึกภาพห้องนั่งเล่นเสมือนจริงของแฟลตรวมในเมืองที่เจ๋งสุดๆ
วิดีโอสาธิต: https://www.youtube.com/watch?v=6t5-cAwSfjk
.mp4
, .mp3
, .m4a
, .flac
ฯลฯ)เนื่องจากแอปพลิเคชันนี้โฮสต์ในตัวเอง ข้อมูลของคุณและเพื่อนของคุณจึงยังคงเป็นส่วนตัวเนื่องจากเซิร์ฟเวอร์ของคุณปลอดภัย โครงการนี้เป็นโอเพ่นซอร์สโดยสมบูรณ์และไม่มีการติดตามที่เกี่ยวข้อง อย่างไรก็ตาม หากคุณกำลังดูเนื้อหาบน YouTube หรือไซต์ที่คล้ายกัน การติดตามตามปกติของบุคคลที่สามจะเกิดขึ้น
npm ci
.env.example
ไปยัง .env
ใหม่.env
:NODE_ENV=production
3000
และ 4000
ทำงานได้ดี นอกจากนี้ยังใช้ในตัวอย่าง nginx ด้านล่างด้วยauthbind
เพื่อรัน pm2 โดยไม่ต้องรูท ดูhttps://pm2.keymetrics.io/docs/usage/specials/#listening-on-port-80-wo-rootnpm run prod:deploy
server_name syncparty.YOURSITE.xyz;
location / {
proxy_pass http://localhost:3000;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /socket.io/ {
proxy_pass http://localhost:4000/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
location /peerjs/ {
proxy_pass http://localhost:3000/peerjs/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
client_max_body_size 2048M;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/syncparty.YOURSITE.xyz/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/syncparty.YOURSITE.xyz/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
หากคุณพบจุดบกพร่องหรือต้องการมีส่วนร่วม อย่าลังเลที่จะสร้างปัญหาขึ้นมา
npm ci
.env.example
ไปยัง .env
ใหม่.env
:NODE_ENV=development
(ค่าเริ่มต้น)3000
และ 4000
เป็นค่าเริ่มต้นnpm run dev:server
npm run dev:client
https://localhost:3000
SyncParty เขียนด้วย TypeScript โดยใช้ ES Modules
เซิร์ฟเวอร์ถูกสร้างขึ้นด้วย Express, Sequelize, sqlite, express-session การรับรองความถูกต้องตามคุกกี้: Passport.js
ไคลเอนต์เป็นแอปพลิเคชัน React ใน TypeScript
การสื่อสารแบบเรียลไทม์เกิดขึ้นได้ด้วย Socket.io วิดีโอแชทผ่าน PeerJS
แอปพลิเคชันไคลเอ็นต์ที่สร้างขึ้นจะถูกส่งผ่านเซิร์ฟเวอร์แอป หากคุณรัน npm run prod:deploy
ไฟล์ที่สร้างขึ้นจะถูกคัดลอกไปยัง dir public
ของโฟลเดอร์ build index.html
จะให้บริการแบบคงที่เพื่อตอบสนองคำขอทั้งหมด ยกเว้นคำขอที่ส่งไปยัง /api/...
จำเป็นต้องใช้พร็อกซีย้อนกลับเช่น nginx เพื่อใช้ HTTPS คุณสามารถดูตัวอย่างการกำหนดค่าด้านบน
ต้องสร้างแอปก่อนจึงจะสามารถสร้างผู้ใช้ได้
npm run dev:server
npm run prod:server:build
หรือมีการรัน npm run prod:deploy
อย่างน้อยหนึ่งครั้งคุณสามารถเรียกใช้คำสั่งต่อไปนี้โดยเว้น วรรคนำหน้า เพื่อป้องกันไม่ให้รหัสผ่านถูกเขียนลงในประวัติทุบตีของคุณ [ต้องทำ CLI ให้ดีขึ้น]
[SPACE] npm run cli create-user <USERNAME> <PASSWORD> admin
[SPACE] npm run cli create-user <USERNAME> <PASSWORD>
[SPACE TO BYPASS BASH HISTORY] npm run cli
+
create-user <USERNAME> <PASSWORD> [admin]
list-users
delete-user <USERNAME>
delete-all-users
change-password <USERNAME> <NEW PASSWORD>