Peergos construit le prochain Web : le Web privé, où les utilisateurs finaux ont le contrôle. Imaginez que les applications Web soient sécurisées par défaut et incapables de vous suivre. Imaginez pouvoir contrôler exactement les données personnelles que chaque application Web peut voir. Imaginez ne plus jamais avoir à vous connecter à une application. Vous êtes propriétaire de vos données et décidez où elles sont stockées et qui peut les voir. Chez Peergos, nous pensons que la vie privée est un droit humain fondamental et nous voulons permettre à chacun d'interagir facilement en ligne d'une manière qui respecte ce droit.
La base de Peergos est un système de fichiers global crypté peer-to-peer avec un contrôle d'accès précis conçu pour résister à la surveillance du contenu des données ou des graphiques d'amitié. Il dispose d'une messagerie sécurisée, d'un client et d'un pont de messagerie cryptés, ainsi que d'un réseau social totalement privé et sécurisé, où les utilisateurs contrôlent qui voit quoi (exécuté de manière cryptographique). Notre devise chez Peergos est : « Contrôlez vos données, contrôlez votre destin ».
Le nom Peergos vient du mot grec Πύργος (Pyrgos), qui signifie forteresse ou tour, mais orthographié phonétiquement avec le lien agréable avec le fait d'être d'égal à égal. Prononciation : peer-goss (comme dans potins).
Voir plus de captures d'écran dans le référentiel web-ui https://github.com/Peergos/web-ui.
Vous voulez l'essayer maintenant ? Voici un lien secret en lecture seule vers un dossier ;
Nous exploitons un serveur sur https://peergos.net/. Il existe un nombre limité de comptes gratuits disponibles. Vous pouvez passer à un compte payant pour obtenir plus de stockage.
Vous pouvez lire plus de détails sur nos fonctionnalités et notre architecture dans notre livre technique.
Pour voir les développements récents, lisez les dernières notes de version ou consultez nos versions de dépôt Web-UI.
Les slides d'une conférence présentant Peergos sont ici
Plongée en profondeur au camp IPFS 2024
Plongée profonde chez Devstaff Crète :
Aperçu sur IPFS Thing :
Applications sur Peergos :
Analyse approfondie des applications :
Conférence sur l'architecture à l'IPFS Lab Day :
Introduction et mise à jour 2020 :
Introduction:
Si vous souhaitez soutenir le développement de Peergos, veuillez faire un
don récurrent inférieur à 100 EUR par semaine
ou un
don plus important ou unique.
Cure53 a mené un audit de Peergos en juin 2019. Le rapport final est ici.
Il existe un salon de discussion public pour les Peergos sur Matrix.
1.0 Couches d'architecture
Langue 2.0
3.0 Nœuds
4.0 Confiance
4.0 Connexion
5.0 Chiffrement
5.1 Chiffrement post-quantique
Réseau d'amis 6.0
7.0 Partage d'un fichier (avec un autre utilisateur, via un lien secret ou publiquement)
Utilisez cette méthode pour vous connecter à un compte peergos sur une autre instance sans recourir au DNS ou aux autorités de certification TLS.
Téléchargez une version depuis https://peergos.net/public/peergos/releases
Installer Java - Vous aurez besoin de Java >= 17 installé.
Exécutez Peergos avec :
java -jar Peergos.jar daemon
Toutes les données peergos seront stockées par défaut dans ~/.peergos, qui peuvent être remplacées par l'environnement var ou arg - PEERGOS_PATH.
Vous pouvez ensuite accéder à l'interface Web et vous connecter via http://localhost:8000.
Dans ce mode de fonctionnement, toutes vos écritures sont directement transmises par proxy à votre serveur domestique. L'instance locale met en cache tous les blocs auxquels vous accédez pour un accès ultérieur plus rapide.
Utilisez cette méthode pour exécuter un nouveau serveur domestique (ce qui est préférable avec une adresse IP routable publiquement et toujours sur la machine) afin de créer des comptes ou de migrer des comptes.
Téléchargez une version depuis https://peergos.net/public/peergos/releases
Installer Java - Vous aurez besoin de Java >= 17 installé.
Exécutez Peergos avec :
java -jar Peergos.jar daemon -generate-token true
Assurez-vous que vous pouvez écouter sur une adresse IP publique
Certains hébergeurs cloud n'ajoutent pas votre adresse IP publique aux interfaces réseau par défaut. Dans ces cas, vous devrez peut-être exécuter quelque chose comme
sudo ip address add MY.PUBLIC.IP dev eth0
Toutes les données peergos seront stockées par défaut dans ~/.peergos, qui peuvent être remplacées par l'environnement var ou arg - PEERGOS_PATH
Vous pouvez ensuite accéder à l'interface Web et vous inscrire via l'adresse localhost imprimée, qui comprend un jeton d'inscription à usage unique.
La configuration est stockée dans $PEERGOS_PATH/config, donc pour les exécutions ultérieures, vous pouvez simplement utiliser ce qui suit, sauf si vous souhaitez remplacer une configuration
java -jar Peergos.jar daemon
Notez que quel que soit le serveur Peergos via lequel vous vous inscrivez (votre serveur domestique), vos données seront stockées. Par conséquent, si vous n'avez pas l'intention de laisser votre serveur Peergos fonctionner en permanence, nous vous recommandons de vous inscrire sur https://peergos.net, puis vous pouvez vous connecter via une instance Peergos locale et toutes vos données finiront comme par magie sur le serveur peergos.net. Les Peergos peuvent fonctionner derrière des NAT et des pare-feu, mais nous vous recommandons d'utiliser un serveur avec une adresse IP publique. Si vous souhaitez exposer publiquement votre interface Web, vous devrez disposer d'un nom de domaine et de certificats TLS (nous vous recommandons d'utiliser nginx et Letsencrypt).
Si vous ne configurez pas de nom de domaine et TLS, vous pouvez toujours vous connecter à votre compte à partir d'une autre instance Peergos, par exemple celle que vous exécutez localement sur votre ordinateur portable - les connexions sont acheminées en toute sécurité via des flux P2P TLS1.3 vers votre serveur domestique. Dans ce cas, toutes les écritures sont transmises par proxy à votre serveur domestique afin que vos données y soient toujours conservées. Si vous exposez votre instance via un nom DNS et un certificat TLS, vous devrez ajouter ce paramètre :
-serveur-public vrai
Si vous utilisez également un proxy inverse comme nginx pour mettre fin à TLS, vous devrez indiquer à peergos quel domaine vous utilisez avec l'argument suivant :
-domaine public $VOTRE_DOMAIN
Et le certificat TLS devra également couvrir le sous-domaine générique pour que les applications (telles que la visionneuse PDF, l'éditeur de texte, le calendrier et les applications tierces personnalisées) fonctionnent. Par exemple, il doit contenir des enregistrements A couvrant $YOUR_DOMAIN et *.$YOUR_DOMAIN.
Si vous utilisez un proxy inverse comme nginx pour mettre fin à TLS, voici un bon exemple du fichier de configuration nginx (remplacez $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;
}
}
Suivez les instructions pour l'auto-hébergement mais ajoutez les paramètres suivants (soit sur la ligne de commande, soit dans le fichier .peergos/config après la première exécution) :
-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
NB Minio semble avoir quelques problèmes, donc avec Minio, utilisez : -authed-s3-reads false -direct-s3-writes false
Vous devrez également définir le fichier cors.xml du bucket comme suit :
<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>
Suivez les instructions pour l'auto-hébergement mais ajoutez les paramètres suivants (soit sur la ligne de commande, soit dans le fichier .peergos/config après la première exécution) :
-use-postgres true
-postgres.database $DATABASE
-postgres.host $HOST
-postgres.password $PASSWORD
-postgres.username $USERNAME
Il existe une gamme de commandes disponibles à partir d’une ligne de commande. Vous pouvez exécuter -help pour trouver les commandes disponibles ou les détails sur n'importe quelle commande ou sous-commande. La plupart des utilisateurs ne devraient avoir besoin que des commandes démon et shell , et peut-être d'identity ou fuse . Vous pouvez utiliser la commande migrate pour déplacer toutes vos données vers un nouveau serveur (où la commande est exécutée).
>> 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
ou
>> 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.
Pour mettre en miroir toutes vos données sur un autre serveur, exécutez d'abord la commande suivante (sur n'importe quelle instance) :
java -jar Peergos.jar miroir init -nom d'utilisateur $nom d'utilisateur
Il vous demandera votre mot de passe, puis imprimera trois paramètres que vous devez fournir au démon miroir.
Exécutez ensuite le démon, sur l'instance sur laquelle vous souhaitez mettre en miroir vos données, avec les arguments supplémentaires suivants fournis par la commande init.
java -jar Démon Peergos.jar -mirror.username $username -mirror.bat $mirrorBat -login-keypair $loginKeypair
Cela reflétera alors en permanence les données de cet utilisateur sur cette instance.
Pour migrer vers un autre serveur, assurez-vous d’abord que vous disposez d’un quota suffisant, puis exécutez la commande migrate dessus.
java -jar Peergos.jar migrer
Il vous demandera votre nom d'utilisateur et votre mot de passe, reflétera toutes vos données localement, puis mettra à jour la PKI pour en faire votre serveur domestique.
Après la migration, votre identité reste inchangée, tous les liens vers vos données continuent de fonctionner et vous conservez votre graphe social sans avoir besoin d'en parler à personne.
Diverses opérations peuvent être effectuées à l'aide du shell.
java -jar Peergos.jar shell
Pour vous connecter à un serveur, vous devrez fournir l'adresse du serveur (y compris http/https), le nom d'utilisateur et le mot de passe.
Enter Server address
> https://peergos.net
Enter username
> demo
Enter password for ' demo '
> **************************************
Generating keys
Logging in
Retrieving Friends
demo@https://peergos.net >
Pour afficher toutes les commandes disponibles
demo@https://peergos.net > help
Astuce : La commande suivante peut être utile pour effectuer un téléchargement initial de dossiers plus volumineux.
put local_path remote_path
Il existe un client de synchronisation bidirectionnel qui vous permettra de synchroniser un répertoire natif avec un répertoire peergos (ou plusieurs paires de répertoires). Pour configurer cela lors de la première exécution :
>> java -jar Peergos.jar sync init -peergos-url https://peergos.net
Et suivez les invites pour saisir votre nom d'utilisateur, votre mot de passe et le répertoire peergos avec lequel vous souhaitez vous synchroniser. Cela produira quelque chose comme :
>> Run the sync dir command with the following args: -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs $LOCAL_DIR
Ensuite, pour exécuter le client de synchronisation avec :
>> java -jar Peergos.jar sync dir -peergos-url https://peergos.net -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs /path/to/local/dir
Vous pouvez monter votre espace Peergos avec la commande suivante
>> java -Djava.library.path=native-lib -jar Peergos.jar fuse -peergos-url https://peergos.net -username $username -password $password
Installez osxfuse avec
>> brew install --cask osxfuse
Installez Winfsp avec
>> choco install winfsp
Vous pouvez exécuter un pont webdav local qui vous permet d'accéder à vos fichiers Peergos avec n'importe quel client compatible webdav. Exécutez la commande suivante (choisissez un nom d'utilisateur et un mot de passe webdav arbitraires) :
>> 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
Nécessite jdk17 et ant pour construire. Utilisez ce qui suit pour installer les dépendances :
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
Notez que cela n'inclut aucune interface utilisateur Web, pour la version complète, y compris la version de l'interface Web https://github.com/peergos/web-ui
ant dist
ant gwtc
Vous devez avoir installé Ant-Optional :
sudo apt-get install ant-optional
Rien de supplémentaire n'est nécessaire pour le package ant sur macOS.
L'exécution de tests installera et configurera automatiquement la version correcte d'IPFS, exécutera le démon et le terminera ensuite.
ant test
La cible ant compile
ne compilera que les sources dans les dossiers src/peergos/{client,server,shared}.