Peergos está construyendo la próxima web: la web privada, donde los usuarios finales tienen el control. Imagine que las aplicaciones web son seguras de forma predeterminada y no pueden rastrearlo. Imagine poder controlar exactamente qué datos personales puede ver cada aplicación web. Imagínese no tener que volver a iniciar sesión en una aplicación nunca más. Eres dueño de tus datos y decides dónde se almacenan y quién puede verlos. En Peergos, creemos que la privacidad es un derecho humano fundamental y queremos que sea fácil para todos interactuar en línea de manera que se respete este derecho.
La base de Peergos es un sistema de archivos global cifrado de igual a igual con control de acceso detallado diseñado para ser resistente a la vigilancia del contenido de datos o gráficos de amistad. Tiene un mensajero seguro, un puente y un cliente de correo electrónico cifrado y una red social totalmente privada y segura, donde los usuarios tienen el control de quién ve qué (ejecutado criptográficamente). Nuestro lema en Peergos es "Controla tus datos, controla tu destino".
El nombre Peergos proviene de la palabra griega Πύργος (Pyrgos), que significa fortaleza o torre, pero fonéticamente se escribe con la agradable conexión de ser de igual a igual. Pronunciación: peer-goss (como en chisme).
Vea más capturas de pantalla en el repositorio web-ui https://github.com/Peergos/web-ui.
¿Quieres probarlo ahora? Aquí hay un enlace secreto de sólo lectura a una carpeta;
Ejecutamos un servidor en https://peergos.net/. Hay un número limitado de cuentas gratuitas disponibles. Puede actualizar a una cuenta paga para obtener más almacenamiento.
Puede leer más detalles sobre nuestras características y arquitectura en nuestro libro técnico.
Para ver los desarrollos recientes, lea las notas de la versión más recientes o consulte las versiones de nuestro repositorio de interfaz de usuario web.
Las diapositivas de una charla sobre Peergos están aquí.
Buceo profundo en IPFS Camp 2024
Buceo profundo en Devstaff Creta:
Descripción general en IPFS Thing:
Aplicaciones en Peergos:
Aplicaciones en profundidad:
Charla de arquitectura en IPFS Lab Day:
Introducción y actualización de 2020:
Introducción:
Si desea apoyar el desarrollo de Peergos, haga una
Donación recurrente inferior a 100 EUR por semana.
o un
donación mayor o única.
Cure53 realizó una auditoría de Peergos en junio de 2019. El informe final está aquí.
Hay una sala de chat pública para Peergos en Matrix.
1.0 Capas de arquitectura
Idioma 2.0
3.0 Nodos
4.0 Confianza
4.0 Iniciar sesión
5.0 cifrado
5.1 Cifrado poscuántico
6.0 Red de amigos
7.0 Compartir un archivo (con otro usuario, a través de un enlace secreto o públicamente)
Utilice este método para iniciar sesión en una cuenta de peergos en otra instancia sin depender de DNS o de las autoridades de certificación TLS.
Descargue un comunicado desde https://peergos.net/public/peergos/releases
Instale Java: necesitará Java >= 17 instalado.
Ejecute Peergos con:
java -jar Peergos.jar daemon
Todos los datos de peergos se almacenarán en ~/.peergos de forma predeterminada, que se puede anular con el entorno var o arg - PEERGOS_PATH.
Luego podrá acceder a la interfaz web e iniciar sesión a través de http://localhost:8000.
En este modo de operación, todas sus escrituras se envían directamente a su servidor doméstico. La instancia local almacena en caché todos los bloques a los que accede para un acceso posterior más rápido.
Utilice este método para ejecutar un nuevo servidor doméstico (que es mejor con una IP enrutable públicamente y siempre en la máquina) para crear o migrar cuentas.
Descargue un comunicado desde https://peergos.net/public/peergos/releases
Instale Java: necesitará Java >= 17 instalado.
Ejecute Peergos con:
java -jar Peergos.jar daemon -generate-token true
Asegúrese de poder escuchar en una dirección IP pública
Algunos hosts en la nube no agregan su IP pública a las interfaces de red de forma predeterminada. Para estos casos es posible que necesite ejecutar algo como
sudo ip address add MY.PUBLIC.IP dev eth0
Todos los datos de peergos se almacenarán en ~/.peergos de forma predeterminada, que se puede anular con el entorno var o arg - PEERGOS_PATH
Luego puede acceder a la interfaz web y registrarse a través de la dirección de host local impresa, que incluye un token de registro de un solo uso.
La configuración se almacena en $PEERGOS_PATH/config, por lo que para ejecuciones posteriores puede usar lo siguiente a menos que desee anular cualquier configuración
java -jar Peergos.jar daemon
Tenga en cuenta que cualquier servidor Peergos en el que se registre (su servidor doméstico) almacenará sus datos, por lo que si no tiene intención de dejar su servidor Peergos funcionando permanentemente, le recomendamos registrarse en https://peergos.net y luego puede iniciar sesión a través de una instancia local de Peergos y todos sus datos terminarán mágicamente en el servidor peergos.net. Peergos puede funcionar detrás de NAT y firewalls, pero recomendamos utilizar un servidor con una IP pública. Si desea exponer públicamente su interfaz web, deberá organizar un nombre de dominio y certificados TLS (recomendamos usar nginx y letsencrypt).
Si no configura un nombre de dominio y TLS, aún puede iniciar sesión en su cuenta desde otra instancia de Peergos, por ejemplo, una que ejecute localmente en su computadora portátil; las conexiones se enrutan de forma segura a través de transmisiones P2P TLS1.3 a su servidor doméstico. En este caso, cualquier escritura se envía a su servidor doméstico para que sus datos siempre persistan allí. Si expone su instancia a través de un nombre DNS y un certificado TLS, deberá agregar este parámetro:
-servidor público verdadero
Si también está utilizando un proxy inverso como nginx para terminar TLS, deberá indicarle a peergos qué dominio está utilizando con el siguiente argumento:
-dominio-público $TU_DOMINIO
Y el certificado TLS también deberá cubrir el subdominio comodín para que funcionen las aplicaciones (como el visor de PDF, el editor de texto, el calendario y las aplicaciones personalizadas de terceros). Por ejemplo, debería tener registros A que cubran $YOUR_DOMAIN y *.$YOUR_DOMAIN
Si está utilizando un proxy inverso como nginx para terminar TLS, aquí hay un buen ejemplo del archivo de configuración de nginx (reemplace $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;
}
}
Siga las instrucciones para el alojamiento propio, pero agregue los siguientes parámetros (ya sea en la línea de comando o en el archivo .peergos/config después de la primera ejecución):
-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 parece tener algunos problemas, por lo que con Minio se usa: -authed-s3-reads false -direct-s3-writes false
También deberá configurar cors.xml para el depósito de la siguiente manera:
<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>
Siga las instrucciones para el alojamiento propio, pero agregue los siguientes parámetros (ya sea en la línea de comando o en el archivo .peergos/config después de la primera ejecución):
-use-postgres true
-postgres.database $DATABASE
-postgres.host $HOST
-postgres.password $PASSWORD
-postgres.username $USERNAME
Hay una variedad de comandos disponibles desde una línea de comandos. Puede ejecutar -help para encontrar los comandos disponibles o detalles sobre cualquier comando o subcomando. La mayoría de los usuarios sólo deberían necesitar los comandos demonio y shell , y tal vez identidad o fusible . Puede utilizar el comando de migración para mover todos sus datos a un nuevo servidor (donde se ejecuta el comando).
>> 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
o
>> 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.
Para reflejar todos sus datos en otro servidor, primero ejecute el siguiente comando (en cualquier instancia):
java -jar Peergos.jar mirror init -nombre de usuario $nombre de usuario
Le pedirá su contraseña y luego imprimirá tres parámetros que deberá proporcionar al demonio espejo.
Luego ejecute daemon, en la instancia en la que desea reflejar sus datos, con los siguientes argumentos adicionales proporcionados por el comando init.
java -jar Peergos.jar demonio -mirror.nombre de usuario $nombre de usuario -mirror.bat $mirrorBat -login-keypair $loginKeypair
Esto luego reflejará continuamente los datos de ese usuario en esta instancia.
Para migrar a otro servidor, primero asegúrese de tener una cuota suficiente y luego ejecute el comando de migración en él.
java -jar Peergos.jar migrar
Le pedirá su nombre de usuario y contraseña, reflejará todos sus datos localmente y luego actualizará la PKI para convertirlo en su servidor doméstico.
Después de la migración, su identidad no cambia, todos los enlaces a sus datos continúan funcionando y usted conserva su gráfico social sin necesidad de decírselo a nadie.
Se pueden realizar varias operaciones utilizando el shell.
java -jar Peergos.jar shell
Para conectarse a un servidor, deberá proporcionar la dirección del servidor (incluido http/https), el nombre de usuario y la contraseña.
Enter Server address
> https://peergos.net
Enter username
> demo
Enter password for ' demo '
> **************************************
Generating keys
Logging in
Retrieving Friends
demo@https://peergos.net >
Para mostrar todos los comandos disponibles
demo@https://peergos.net > help
Sugerencia: El siguiente comando puede resultar útil para realizar una carga inicial para carpetas más grandes.
put local_path remote_path
Existe un cliente de sincronización bidireccional que le permitirá sincronizar un directorio nativo con un directorio de peergos (o varios pares de directorios). Para configurar esto, primero ejecute:
>> java -jar Peergos.jar sync init -peergos-url https://peergos.net
Y siga las indicaciones para ingresar su nombre de usuario, contraseña y el directorio de peergos con el que desea sincronizar. Esto generará algo como:
>> Run the sync dir command with the following args: -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs $LOCAL_DIR
Luego, para ejecutar el cliente de sincronización con:
>> java -jar Peergos.jar sync dir -peergos-url https://peergos.net -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs /path/to/local/dir
Puedes montar tu espacio Peergos con el siguiente comando
>> java -Djava.library.path=native-lib -jar Peergos.jar fuse -peergos-url https://peergos.net -username $username -password $password
Instalar osxfuse con
>> brew install --cask osxfuse
Instalar winfsp con
>> choco install winfsp
Puede ejecutar un puente webdav local que le permite acceder a sus archivos de Peergos con cualquier cliente compatible con webdav. Ejecute el siguiente comando (elija un nombre de usuario y contraseña de webdav arbitrarios):
>> 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
Requiere jdk17 y ant para construir. Utilice lo siguiente para instalar dependencias:
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
Tenga en cuenta que esto no incluye ninguna interfaz de usuario web, para la compilación completa, incluida la compilación de la interfaz web https://github.com/peergos/web-ui
ant dist
ant gwtc
Necesitas tener instalado ant-opcional:
sudo apt-get install ant-optional
No se necesita nada adicional para el paquete ant en macOS.
La ejecución de pruebas instalará y configurará la versión correcta de IPFS automáticamente, ejecutará el demonio y lo finalizará posteriormente.
ant test
El objetivo ant compile
solo compilará fuentes en las carpetas src/peergos/{client,server,shared}.