v0.12.0 ist eine gewaltige bahnbrechende Änderung. Wenn Sie eine Instanz von SyncParty mit Daten bereitgestellt haben, die Ihnen wichtig sind, stellen Sie bitte sicher, dass Sie die folgenden Dateien in ein anderes Verzeichnis kopieren, bevor Sie die neue Version abrufen:
server/db
(die Datenbank)server/uploads
(alle hochgeladenen Dateien)server/persistence.json
(aktuelle Spielposition für jedes Element, für jeden Benutzer) Erstellen Sie nach dem Abrufen der aktuellen Version ein data
auf der 1. Ebene.
Kopieren Sie nach der Einrichtung (siehe unten) beide Dateien sowie den uploads
Ordner zurück in data
. Wenn Sie npm run prod:deploy
now ausführen, sollte die App genauso funktionieren wie zuvor. Daumen drücken?
Schauen Sie sich Videos an oder hören Sie Musik synchron mit Ihren Freunden. Stellen Sie sich ein virtuelles Wohnzimmer einer WG in einer schrecklich coolen Stadt vor.
Demovideo: https://www.youtube.com/watch?v=6t5-cAwSfjk
.mp4
, .mp3
, .m4a
, .flac
usw.)Da diese Anwendung selbst gehostet wird, bleiben Ihre Daten und die Ihrer Freunde genauso privat wie Ihr Server sicher ist. Dieses Projekt ist vollständig Open Source und es ist kein Tracking erforderlich. Wenn Sie sich jedoch Inhalte auf YouTube oder ähnlichen Websites ansehen, erfolgt die übliche Nachverfolgung durch Dritte.
npm ci
.env.example
in eine neue .env
.env
Datei:NODE_ENV=production
3000
und 4000
funktionieren einwandfrei; Sie werden auch im folgenden Nginx-Beispiel verwendet.authbind
verwenden, um pm2 ohne Root auszuführen. siehe 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
Wenn Sie einen Fehler entdecken oder einen Beitrag leisten möchten, können Sie gerne ein Problem erstellen.
npm ci
.env.example
in eine neue .env
.env
Datei:NODE_ENV=development
(Standard)3000
und 4000
sind Standard.npm run dev:server
npm run dev:client
https://localhost:3000
zugänglichSyncParty ist in TypeScript unter Verwendung von ES-Modulen geschrieben.
Der Server ist mit Express, Sequelize, SQLite und Express-Session aufgebaut. Cookie-basierte Authentifizierung: Passport.js.
Der Client ist eine React-Anwendung in TypeScript.
Echtzeitkommunikation wird mit Socket.io realisiert. Video-Chat über PeerJS.
Die erstellte Clientanwendung wird über den App-Server bereitgestellt. Wenn Sie npm run prod:deploy
ausführen, werden die erstellten Dateien in das public
Verzeichnis des Build-Ordners kopiert. Eine index.html
wird statisch bereitgestellt, um auf alle Anfragen zu antworten, mit Ausnahme derjenigen, die an /api/...
weitergeleitet werden. Für die Verwendung von HTTPS ist ein Reverse-Proxy wie Nginx erforderlich. Eine Beispielkonfiguration finden Sie oben.
Die App muss erstellt werden, bevor Sie Benutzer erstellen können.
npm run dev:server
npm run prod:server:build
oder npm run prod:deploy
mindestens einmal ausführen lassenSie können die folgenden Befehle mit einem vorangestellten Leerzeichen ausführen und so verhindern, dass die Passwörter in Ihren Bash-Verlauf geschrieben werden. [TODO bessere 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>