v0.12.0은 대규모의 주요 변경 사항입니다. 관심 있는 데이터와 함께 배포된 SyncParty 인스턴스가 있는 경우 새 버전을 가져오기 전에 다음 파일을 다른 디렉터리에 복사 하세요.
server/db
(데이터베이스)server/uploads
(업로드된 모든 파일)server/persistence.json
(각 사용자의 각 항목에 대한 현재 재생 위치) 현재 버전을 가져온 후 첫 번째 수준에 data
디렉터리를 만듭니다.
설정 후(아래 참조) 두 파일과 uploads
폴더를 다시 data
에 복사합니다. 지금 npm run prod:deploy
실행하면 앱이 이전과 동일하게 작동해야 합니다. 손가락이 교차?
친구들과 동시에 비디오를 보거나 음악을 듣습니다. 정말 멋진 도시에 있는 공유 아파트의 가상 거실을 상상해 보세요.
데모 비디오: https://www.youtube.com/watch?v=6t5-cAwSfjk
.mp4
, .mp3
, .m4a
, .flac
등)이 애플리케이션은 자체 호스팅되므로 귀하와 귀하의 친구의 데이터는 귀하의 서버가 안전하게 보호되는 것처럼 비공개로 유지됩니다. 이 프로젝트는 완전히 오픈 소스이며 추적이 필요하지 않습니다. 그러나 YouTube 또는 유사한 사이트에서 콘텐츠를 시청하는 경우 제3자의 일반적인 추적이 발생합니다.
npm ci
.env.example
새 .env
로 복사합니다..env
파일을 구성합니다.NODE_ENV=production
3000
과 4000
잘 작동합니다. 아래 nginx 예제에서도 사용됩니다.authbind
와 같은 도구를 사용할 수 있습니다. https://pm2.keymetrics.io/docs/usage/species/#listening-on-port-80-wo-root를 참조하세요.npm 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는 ES 모듈을 사용하여 TypeScript로 작성되었습니다.
서버는 Express, Sequelize, sqlite, express-session으로 구축되었습니다. 쿠키 기반 인증: Passport.js.
클라이언트는 TypeScript의 React 애플리케이션입니다.
Socket.io를 통해 실시간 통신이 구현됩니다. PeerJS를 통한 영상 채팅.
빌드된 클라이언트 애플리케이션은 앱 서버를 통해 전달됩니다. npm run prod:deploy
실행하면 빌드된 파일이 빌드 폴더의 public
디렉터리에 복사됩니다. index.html
은 /api/...
로 라우팅되는 요청을 제외한 모든 요청에 응답하기 위해 정적으로 제공됩니다. HTTPS를 사용하려면 nginx와 같은 역방향 프록시가 필요합니다. 위에서 예시 구성을 찾을 수 있습니다.
사용자를 생성하려면 먼저 앱을 구축해야 합니다.
npm run dev:server
실행하세요.npm run prod:server:build
또는 npm run prod:deploy
한 번 이상 실행공백을 앞에 두고 다음 명령을 실행하면 암호가 bash 기록에 기록되는 것을 방지할 수 있습니다. [더 나은 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>