v0.12.0 は大規模な破壊的変更です。重要なデータを含む SyncParty のインスタンスがデプロイされている場合は、新しいバージョンを取得する前に、必ず次のファイルを別のディレクトリにコピーしてください。
server/db
(データベース)server/uploads
(アップロードされたすべてのファイル)server/persistence.json
(各アイテム、各ユーザーの現在の再生位置)現在のバージョンをプルした後、第 1 レベルにdata
ディレクトリを作成します。
セットアップ後 (以下を参照)、両方のファイルと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
などのツールを使用するとよいでしょう。 https://pm2.keymetrics.io/docs/usage/specials/#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 で構築されています。 Cookie ベースの認証: 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
少なくとも 1 回実行している先頭にスペースを付けて次のコマンドを実行すると、パスワードが bash 履歴に書き込まれるのを防ぐことができます。 [TODO を改善した 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>