Peergos baut das nächste Web auf – das private Web, bei dem Endbenutzer die Kontrolle haben. Stellen Sie sich vor, dass Web-Apps standardmäßig sicher sind und Sie nicht verfolgen können. Stellen Sie sich vor, Sie könnten genau steuern, welche persönlichen Daten jede Web-App sehen kann. Stellen Sie sich vor, Sie müssten sich nie wieder bei einer App anmelden. Sie besitzen Ihre Daten und entscheiden, wo sie gespeichert werden und wer sie sehen kann. Wir bei Peergos glauben, dass Privatsphäre ein grundlegendes Menschenrecht ist, und wir möchten es jedem leicht machen, online auf eine Weise zu interagieren, die dieses Recht respektiert.
Die Grundlage von Peergos ist ein Peer-to-Peer-verschlüsseltes globales Dateisystem mit fein abgestufter Zugriffskontrolle, das so konzipiert ist, dass es der Überwachung von Dateninhalten oder Freundschaftsdiagrammen standhält. Es verfügt über einen sicheren Messenger, einen verschlüsselten E-Mail-Client und eine verschlüsselte E-Mail-Bridge sowie ein völlig privates und sicheres soziales Netzwerk, in dem Benutzer die Kontrolle darüber haben, wer was sieht (kryptografisch ausgeführt). Unser Motto bei Peergos lautet: „Kontrollieren Sie Ihre Daten, kontrollieren Sie Ihr Schicksal.“
Der Name Peergos kommt vom griechischen Wort Πύργος (Pyrgos), was „Festung“ oder „Turm“ bedeutet, aber phonetisch geschrieben mit der schönen Verbindung zu Peer-to-Peer. Aussprache: peer-goss (wie in gossip).
Weitere Screenshots finden Sie im Web-UI-Repository https://github.com/Peergos/web-ui.
Möchten Sie es jetzt ausprobieren? Hier ist ein schreibgeschützter geheimer Link zu einem Ordner.
Wir betreiben einen Server unter https://peergos.net/. Es steht eine begrenzte Anzahl kostenloser Konten zur Verfügung. Sie können ein Upgrade auf ein kostenpflichtiges Konto durchführen, um mehr Speicherplatz zu erhalten.
Weitere Einzelheiten zu unseren Funktionen und unserer Architektur finden Sie in unserem Technikbuch.
Um aktuelle Entwicklungen zu sehen, lesen Sie die neuesten Versionshinweise oder sehen Sie sich unsere Web-UI-Repo-Releases an.
Die Folien eines Vortrags zur Einführung von Peergos finden Sie hier
Tiefer Einblick im IPFS Camp 2024
Tiefer Einblick bei Devstaff Kreta:
Übersicht bei IPFS Thing:
Bewerbungen auf Peergos:
Tiefer Einblick in die Anwendungen:
Architekturvortrag beim IPFS Lab Day:
Einführung und Update 2020:
Einführung:
Wenn Sie die Entwicklung von Peergos unterstützen möchten, melden Sie sich bitte an
wiederkehrende Spende unter 100 EUR pro Woche
oder ein
größere oder einmalige Spende.
Cure53 führte im Juni 2019 ein Audit von Peergos durch. Der Abschlussbericht ist hier.
Auf Matrix gibt es einen öffentlichen Chatraum für Peergos.
1.0 Schichten der Architektur
2.0 Sprache
3.0 Knoten
4,0 Vertrauen
4.0 Einloggen
5.0-Verschlüsselung
5.1 Post-Quanten-Verschlüsselung
6,0 Freundesnetzwerk
7.0 Teilen einer Datei (mit einem anderen Benutzer, über einen geheimen Link oder öffentlich)
Verwenden Sie diese Methode, um sich bei einem Peergos-Konto auf einer anderen Instanz anzumelden, ohne auf DNS oder die TLS-Zertifizierungsstellen angewiesen zu sein.
Laden Sie eine Veröffentlichung von https://peergos.net/public/peergos/releases herunter
Java installieren – Sie müssen Java >= 17 installiert haben.
Führen Sie Peergos aus mit:
java -jar Peergos.jar daemon
Alle Peergos-Daten werden standardmäßig in ~/.peergos gespeichert, was mit der Umgebungsvariable oder dem Argument PEERGOS_PATH überschrieben werden kann.
Anschließend können Sie über http://localhost:8000 auf die Weboberfläche zugreifen und sich anmelden.
In diesem Betriebsmodus werden alle Ihre Schreibvorgänge direkt an Ihren Heimserver weitergeleitet. Die lokale Instanz speichert alle Blöcke, auf die Sie zugreifen, im Cache, um einen schnelleren späteren Zugriff zu ermöglichen.
Verwenden Sie diese Methode, um einen neuen Heimserver (am besten mit einer öffentlich routbaren IP und immer auf dem Computer) zu betreiben, auf dem Sie Konten erstellen oder dorthin migrieren können.
Laden Sie eine Veröffentlichung von https://peergos.net/public/peergos/releases herunter
Java installieren – Sie müssen Java >= 17 installiert haben.
Führen Sie Peergos aus mit:
java -jar Peergos.jar daemon -generate-token true
Stellen Sie sicher, dass Sie eine öffentliche IP-Adresse abhören können
Einige Cloud-Hosts fügen Ihre öffentliche IP-Adresse nicht standardmäßig zu den Netzwerkschnittstellen hinzu. In diesen Fällen müssen Sie möglicherweise etwas wie ausführen
sudo ip address add MY.PUBLIC.IP dev eth0
Alle Peergos-Daten werden standardmäßig in ~/.peergos gespeichert, was mit der Umgebungsvariable oder dem Argument PEERGOS_PATH überschrieben werden kann
Anschließend können Sie über die aufgedruckte Localhost-Adresse auf die Weboberfläche zugreifen und sich anmelden. Dazu gehört auch ein einmaliges Anmeldetoken.
Die Konfiguration wird in $PEERGOS_PATH/config gespeichert, sodass Sie für nachfolgende Ausführungen einfach Folgendes verwenden können, es sei denn, Sie möchten eine Konfiguration überschreiben
java -jar Peergos.jar daemon
Beachten Sie, dass der Peergos-Server, über den Sie sich anmelden (Ihr Heimserver), Ihre Daten speichert. Wenn Sie also nicht vorhaben, Ihren Peergos-Server dauerhaft laufen zu lassen, empfehlen wir Ihnen, sich auf https://peergos.net anzumelden und dann Sie können sich über eine lokale Peergos-Instanz anmelden und alle Ihre Daten landen auf magische Weise auf dem peergos.net-Server. Peergos können hinter NATs und Firewalls arbeiten, wir empfehlen jedoch die Verwendung eines Servers mit einer öffentlichen IP. Wenn Sie Ihre Weboberfläche öffentlich zugänglich machen möchten, müssen Sie einen Domänennamen und TLS-Zertifikate einrichten (wir empfehlen die Verwendung von Nginx und Letsencrypt).
Wenn Sie keinen Domänennamen und kein TLS einrichten, können Sie sich dennoch von einer anderen Peergos-Instanz aus bei Ihrem Konto anmelden, z. B. einer, die Sie lokal auf Ihrem Laptop ausführen. Verbindungen werden sicher über P2P-TLS1.3-Streams an Ihren Heimserver weitergeleitet. In diesem Fall werden alle Schreibvorgänge per Proxy an Ihren Heimserver weitergeleitet, sodass Ihre Daten immer dort gespeichert bleiben. Wenn Sie Ihre Instanz über einen DNS-Namen und ein TLS-Zertifikat verfügbar machen, müssen Sie diesen Parameter hinzufügen:
-public-server true
Wenn Sie auch einen Reverse-Proxy wie Nginx verwenden, um TLS zu beenden, müssen Sie Peergos mit dem folgenden Argument mitteilen, welche Domain Sie verwenden:
-public-domain $YOUR_DOMAIN
Und das TLS-Zertifikat muss auch die Wildcard-Subdomäne abdecken, damit die Anwendungen (wie der PDF-Viewer, der Texteditor, der Kalender und benutzerdefinierte Apps von Drittanbietern) funktionieren. Beispielsweise sollte es A-Datensätze haben, die $YOUR_DOMAIN und *.$YOUR_DOMAIN abdecken
Wenn Sie einen Reverse-Proxy wie Nginx verwenden, um TLS zu beenden, finden Sie hier ein gutes Beispiel der Nginx-Konfigurationsdatei (ersetzen Sie $YOUR_DOMAIN_NAME):
# Peergos server config
server {
listen 80 default_server;
listen [::]:80 default_server;
location ^~ /.well-known {
allow all;
proxy_pass http://127.0.0.1:8888;
}
# redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
return 301 https://$host$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:!TLS_AES_128_GCM_SHA256;
ssl_certificate /etc/letsencrypt/live/$YOUR_DOMAIN_NAME/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$YOUR_DOMAIN_NAME/privkey.pem;
add_header Strict-Transport-Security "max-age=31536000" always;
server_name $YOUR_DOMAIN_NAME;
client_max_body_size 2M;
location / {
proxy_pass http://localhost:8000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
allow all;
}
# pass through for letsencrypt
location ^~ /.well-known {
allow all;
proxy_pass http://127.0.0.1:8888;
}
}
Befolgen Sie die Anweisungen zum Selbsthosting, fügen Sie jedoch die folgenden Parameter hinzu (entweder in der Befehlszeile oder in der Datei .peergos/config nach der ersten Ausführung):
-use-s3 true
-authed-s3-reads true
-direct-s3-writes true
-s3.accessKey $ACCESS_KEY
-s3.bucket $BUCKET
-s3.region $REGION
-s3.region.endpoint $ENDPOINT (e.g. us-east-1.linodeobjects.com)
-s3.secretKey #SECRET_KEY
Hinweis: Minio scheint einige Probleme zu haben. Verwenden Sie daher bei Minio Folgendes: -authed-s3-reads false -direct-s3-writes false
Sie müssen außerdem die Datei cors.xml für den Bucket wie folgt festlegen:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>https://$YOUR_DOMAIN</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>ETag</ExposeHeader>
<ExposeHeader>Content-Length</ExposeHeader>
<MaxAgeSeconds>3600</MaxAgeSeconds>
</CORSRule>
</CORSConfiguration>
Befolgen Sie die Anweisungen zum Selbsthosting, fügen Sie jedoch die folgenden Parameter hinzu (entweder in der Befehlszeile oder in der Datei .peergos/config nach der ersten Ausführung):
-use-postgres true
-postgres.database $DATABASE
-postgres.host $HOST
-postgres.password $PASSWORD
-postgres.username $USERNAME
Es gibt eine Reihe von Befehlen, die über eine Befehlszeile verfügbar sind. Sie können -help ausführen, um die verfügbaren Befehle oder Details zu jedem Befehl oder Unterbefehl zu finden. Die meisten Benutzer sollten nur die Daemon- und Shell -Befehle und möglicherweise Identity oder Fuse benötigen. Sie können den Befehl „migrate“ verwenden, um alle Ihre Daten auf einen neuen Server zu verschieben (wo der Befehl ausgeführt wird).
>> java -Djava.library.path=native-lib -jar Peergos.jar -help
Main: Run a Peergos command
Sub commands:
daemon: The user facing Peergos server
shell: An interactive command-line-interface to a Peergos server
fuse: Mount a Peergos user's filesystem natively
quota: Manage quota of users on this server
server-msg: Send and receive messages to/from users of this server
gateway: Serve websites directly from Peergos
migrate: Move a Peergos account to this server
identity: Create or verify an identity proof
ipfs: Install, configure and start IPFS daemon
pki: Start the Peergos PKI Server that has already been bootstrapped
pki-init: Bootstrap and start the Peergos PKI Server
oder
>> java -Djava.library.path=native-lib -jar Peergos.jar identity -help
identity: Create or verify an identity proof
Sub commands:
link: Link your Peergos identity to an account on another service.
verify: Verify an identity link post from another service.
Um alle Ihre Daten auf einem anderen Server zu spiegeln, führen Sie zunächst den folgenden Befehl aus (auf einer beliebigen Instanz):
java -jar Peergos.jar Mirror Init -Benutzername $Benutzername
Es fragt nach Ihrem Passwort und gibt dann drei Parameter aus, die Sie dem Spiegeldämon zur Verfügung stellen müssen.
Führen Sie dann den Daemon auf der Instanz aus, die Sie Ihre Daten spiegeln möchten, mit den folgenden zusätzlichen Argumenten, die vom Befehl init bereitgestellt werden.
java -jar Peergos.jar Daemon -mirror.username $username -mirror.bat $mirrorBat -login-keypair $loginKeypair
Dadurch werden die Daten dieses Benutzers dann kontinuierlich auf dieser Instanz gespiegelt.
Um auf einen anderen Server zu migrieren, stellen Sie zunächst sicher, dass Sie über ein ausreichendes Kontingent verfügen, und führen Sie dann den Migrationsbefehl darauf aus.
java -jar Peergos.jar migrieren
Sie werden nach Ihrem Benutzernamen und Passwort gefragt, alle Ihre Daten lokal gespiegelt und dann die PKI aktualisiert, um diesen zu Ihrem Heimserver zu machen.
Nach der Migration bleibt Ihre Identität unverändert, alle Links zu Ihren Daten funktionieren weiterhin und Sie behalten Ihren Social Graph, ohne dass Sie es jemandem mitteilen müssen.
Mit der Shell können verschiedene Vorgänge ausgeführt werden.
java -jar Peergos.jar shell
Um eine Verbindung zu einem Server herzustellen, müssen Sie die Serveradresse (einschließlich http/https), den Benutzernamen und das Passwort angeben.
Enter Server address
> https://peergos.net
Enter username
> demo
Enter password for ' demo '
> **************************************
Generating keys
Logging in
Retrieving Friends
demo@https://peergos.net >
Um alle verfügbaren Befehle anzuzeigen
demo@https://peergos.net > help
Hinweis: Der folgende Befehl kann hilfreich sein, um einen ersten Upload für größere Ordner durchzuführen.
put local_path remote_path
Es gibt einen bidirektionalen Synchronisierungsclient, mit dem Sie ein natives Verzeichnis mit einem Peergos-Verzeichnis (oder mehreren Verzeichnispaaren) synchronisieren können. So richten Sie dies zunächst ein:
>> java -jar Peergos.jar sync init -peergos-url https://peergos.net
Befolgen Sie die Anweisungen, um Ihren Benutzernamen, Ihr Passwort und das Peergos-Verzeichnis einzugeben, mit dem Sie synchronisieren möchten. Dies wird etwa Folgendes ausgeben:
>> Run the sync dir command with the following args: -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs $LOCAL_DIR
Führen Sie dann den Synchronisierungsclient aus mit:
>> java -jar Peergos.jar sync dir -peergos-url https://peergos.net -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs /path/to/local/dir
Sie können Ihren Peergos-Bereich mit dem folgenden Befehl bereitstellen
>> java -Djava.library.path=native-lib -jar Peergos.jar fuse -peergos-url https://peergos.net -username $username -password $password
Installieren Sie osxfuse mit
>> brew install --cask osxfuse
Installieren Sie winfsp mit
>> choco install winfsp
Sie können eine lokale Webdav-Brücke betreiben, die Ihnen den Zugriff auf Ihre Peergos-Dateien mit jedem Webdav-kompatiblen Client ermöglicht. Führen Sie den folgenden Befehl aus (wählen Sie einen beliebigen Webdav-Benutzernamen und ein beliebiges Passwort):
>> java -Djava.library.path=native-lib -jar Peergos.jar webdav -peergos-url https://peergos.net -username $username -PEERGOS_PASSWORD $password -webdav.username $webdav-username -PEERGOS_WEBDAV_PASSWORD $webdav-password
Erfordert jdk17 und ant zum Erstellen. Verwenden Sie Folgendes, um Abhängigkeiten zu installieren:
sudo apt-get install ant
sudo apt-get install openjdk-17-jdk
brew install ant # installs openjdk as a dependency
ant -version
Apache Ant(TM) version 1.10.8 compiled on May 10 2020
Beachten Sie, dass dies keine Web-Benutzeroberfläche für den vollständigen Build einschließlich des Web-Interface-Builds https://github.com/peergos/web-ui umfasst
ant dist
ant gwtc
Sie müssen ant-optional installiert haben:
sudo apt-get install ant-optional
Für das Ant-Paket unter macOS ist nichts Zusätzliches erforderlich.
Durch das Ausführen von Tests wird automatisch die richtige Version von IPFS installiert und konfiguriert, der Daemon ausgeführt und anschließend beendet.
ant test
Das ant compile
Kompilierungsziel kompiliert nur Quellen in den Ordnern src/peergos/{client,server,shared}.