v0.12.0 adalah perubahan besar yang dapat menyebabkan gangguan. Jika Anda memiliki instance SyncParty yang dikerahkan dengan data yang Anda minati, pastikan untuk menyalin file berikut ke direktori lain sebelum menarik versi baru:
server/db
(database)server/uploads
(semua file yang diunggah)server/persistence.json
(posisi bermain saat ini untuk setiap item, untuk setiap pengguna) Setelah menarik versi saat ini, buat direktori data
di tingkat 1.
Setelah pengaturan (lihat di bawah), salin kembali kedua file serta folder uploads
ke data
. Jika Anda menjalankan npm run prod:deploy
sekarang, aplikasi akan bekerja sama seperti sebelumnya. Semoga saja?
Tonton video atau dengarkan musik secara serempak dengan teman-teman Anda. Bayangkan sebuah ruang tamu virtual di sebuah flat bersama di kota yang sangat sejuk.
Video demo: https://www.youtube.com/watch?v=6t5-cAwSfjk
.mp4
, .mp3
, .m4a
, .flac
dll.)Karena aplikasi ini dihosting sendiri, data Anda & teman Anda tetap bersifat pribadi dan server Anda aman. Proyek ini sepenuhnya open source dan tidak melibatkan pelacakan. Namun, jika Anda menonton konten di YouTube atau situs serupa, pelacakan pihak ketiga yang biasa akan terjadi.
npm ci
.env.example
ke .env
baru.env
:NODE_ENV=production
3000
dan 4000
berfungsi dengan baik; mereka juga digunakan dalam contoh nginx di bawah.authbind
untuk menjalankan pm2 tanpa root; lihat 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
Jika Anda menemukan bug atau ingin berkontribusi, jangan ragu untuk membuat masalah.
npm ci
.env.example
ke .env
baru.env
:NODE_ENV=development
(default)3000
dan 4000
adalah default.npm run dev:server
npm run dev:client
https://localhost:3000
SyncParty ditulis dalam TypeScript, menggunakan Modul ES.
Server dibangun dengan Express, Sequelize, sqlite, express-session. Otentikasi berbasis cookie: Passport.js.
Kliennya adalah aplikasi React di TypeScript.
Komunikasi realtime diwujudkan dengan Socket.io. Obrolan video melalui PeerJS.
Aplikasi klien yang dibangun dikirimkan melalui server aplikasi. Jika Anda menjalankan npm run prod:deploy
, file yang dibuat akan disalin ke direktori public
folder build. index.html
disajikan secara statis untuk menanggapi semua permintaan, kecuali permintaan yang dialihkan ke /api/...
. Proksi terbalik seperti nginx diperlukan untuk menggunakan HTTPS. Anda dapat menemukan contoh konfigurasi di atas.
Aplikasi harus dibuat sebelum Anda dapat membuat pengguna.
npm run dev:server
npm run prod:server:build
atau menjalankan npm run prod:deploy
setidaknya sekaliAnda dapat menjalankan perintah berikut dengan spasi sebelumnya , mencegah kata sandi ditulis ke dalam riwayat bash Anda. [TODO CLI yang lebih baik]
[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>