Peergos は次の Web、つまりエンド ユーザーが制御できるプライベート Web を構築しています。 Web アプリがデフォルトで安全であり、ユーザーを追跡できないことを想像してください。各 Web アプリが参照できる個人データを正確に制御できることを想像してみてください。二度とアプリにログインする必要がなくなることを想像してみてください。データを所有するのはあなたであり、データをどこに保存するか、誰が閲覧できるかを決定します。 Peergos では、プライバシーは基本的な人権であると信じており、誰もがこの権利を尊重した方法でオンラインで簡単にやり取りできるようにしたいと考えています。
Peergos の基盤は、データ コンテンツや友人関係グラフの監視に耐えるように設計された、きめ細かいアクセス制御を備えたピアツーピア暗号化グローバル ファイル システムです。これには、安全なメッセンジャー、暗号化された電子メール クライアントとブリッジ、および完全にプライベートで安全なソーシャル ネットワークがあり、誰が何を閲覧するかをユーザーが制御できます (暗号化されて実行されます)。 Peergos のモットーは、「データを制御し、運命を制御する」です。
Peergos という名前はギリシャ語の Πύργος (Pyrgos) に由来しており、要塞や塔を意味しますが、発音的にはピアツーピアであることとの素敵なつながりを表しています。発音: ピアゴス (ゴシップのような)。
Web-ui リポジトリ https://github.com/Peergos/web-ui でその他のスクリーンショットを参照してください。
今すぐ試してみませんか?これは、フォルダーへの読み取り専用のシークレット リンクです。
https://peergos.net/ でサーバーを実行しています。利用できる無料アカウントの数には限りがあります。有料アカウントにアップグレードして、より多くのストレージを取得できます。
当社の機能とアーキテクチャの詳細については、当社の技術書をご覧ください。
最近の開発状況を確認するには、最新のリリース ノートを読むか、Web-UI リポジトリ リリースを参照してください。
Peergos を紹介する講演のスライドはここにあります
IPFSキャンプ2024の詳細
Devstaff クレタ島の詳細:
IPFS の概要:
Peergos 上のアプリケーション:
アプリケーションの詳細:
IPFS Lab Day でのアーキテクチャに関する講演:
概要と 2020 年の最新情報:
導入:
Peergos の開発をサポートしたい場合は、
1週間あたり100ユーロ未満の定期的な寄付
または
より大きな寄付や 1 回限りの寄付。
Cure53 は 2019 年 6 月に Peergos の監査を実施しました。最終レポートはここにあります。
Matrix には Peergos の公開チャット ルームがあります。
1.0 アーキテクチャの層
2.0 言語
3.0 ノード
4.0 信頼
4.0 ログイン
5.0 暗号化
5.1 ポスト量子暗号化
6.0 友達ネットワーク
7.0 ファイルの共有 (別のユーザーと、秘密のリンクを介して、または公開で)
DNS や TLS 認証局に依存せずに、別のインスタンスの Peergos アカウントにログインするには、この方法を使用します。
https://peergos.net/public/peergos/releases からリリースをダウンロードします。
Java のインストール - Java 17 以上がインストールされている必要があります。
以下を使用して Peergos を実行します。
java -jar Peergos.jar daemon
すべてのpeergosデータはデフォルトで~/.peergosに保存されますが、これは環境変数または引数 - PEERGOS_PATHで上書きできます。
その後、Web インターフェイスにアクセスし、http://localhost:8000 経由でログインできます。
この操作モードでは、すべての書き込みがホーム サーバーに直接プロキシされます。ローカル インスタンスは、アクセスするブロックをキャッシュして、その後のアクセスを高速化します。
この方法を使用して、アカウントを作成したり、アカウントを移行したりする新しいホームサーバー (パブリックにルーティング可能な IP を使用し、常にマシン上にある場合に最適です) を実行します。
https://peergos.net/public/peergos/releases からリリースをダウンロードします。
Java のインストール - Java 17 以上がインストールされている必要があります。
以下を使用して Peergos を実行します。
java -jar Peergos.jar daemon -generate-token true
パブリック IP アドレスでリッスンできることを確認する
一部のクラウド ホストは、デフォルトではパブリック IP をネットワーク インターフェイスに追加しません。これらの場合、次のようなものを実行する必要があるかもしれません
sudo ip address add MY.PUBLIC.IP dev eth0
すべての Peergo データはデフォルトで ~/.peergos に保存されます。これは環境変数または引数 - PEERGOS_PATH で上書きできます。
その後、Web インターフェイスにアクセスし、印刷されたローカルホスト アドレスを介してサインアップできます。これには、使い捨てサインアップ トークンが含まれています。
設定は $PEERGOS_PATH/config に保存されるため、以降の実行では、設定をオーバーライドしない限り、次のものを使用できます。
java -jar Peergos.jar daemon
どの Peergos サーバー (ホーム サーバー) 経由でサインアップしても、データは保存されることに注意してください。そのため、Peergos サーバーを永続的に実行したままにするつもりがない場合は、https://peergos.net にサインアップしてから、ローカルの Peergos インスタンスを介してログインすると、すべてのデータが魔法のように peergos.net サーバー上に保存されます。 Peergos は NAT やファイアウォールの背後で動作できますが、パブリック IP を持つサーバーを使用することをお勧めします。 Web インターフェイスを公開したい場合は、ドメイン名と TLS 証明書を手配する必要があります (nginx と letsencrypt を使用することをお勧めします)。
ドメイン名と TLS を設定しない場合でも、別の Peergos インスタンス (ラップトップ上でローカルに実行しているインスタンスなど) からアカウントにログインできます。接続は、P2P TLS1.3 ストリーム経由でホーム サーバーに安全にルーティングされます。この場合、書き込みはすべてホームサーバーにプロキシされるため、データは常にそこに保持されます。 DNS 名と TLS 証明書を介してインスタンスを公開する場合は、次のパラメータを追加する必要があります。
-public-server true
TLS を終了するために nginx などのリバース プロキシも使用している場合は、次の引数を使用してどのドメインを使用しているかを Peergos に伝える必要があります。
-パブリックドメイン $YOUR_DOMAIN
また、TLS 証明書は、アプリケーション (PDF ビューア、テキスト エディタ、カレンダー、カスタム サードパーティ アプリなど) が機能するためにワイルドカード サブドメインもカバーする必要があります。たとえば、$YOUR_DOMAIN と *.$YOUR_DOMAIN をカバーする A レコードが必要です。
nginx などのリバース プロキシを使用して TLS を終了している場合、nginx 構成ファイルの良い例を次に示します ($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;
}
}
セルフホスティングの手順に従いますが、次のパラメーターを追加します (コマンド ライン上、または最初の実行後の .peergos/config ファイル内)。
-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
注意 Minio にはいくつかの問題があるようです。そのため、Minio では次のようにしてください: -authed-s3-reads false -direct-s3-writes false
バケットの cors.xml を次のように設定する必要もあります。
<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>
セルフホスティングの手順に従いますが、次のパラメーターを追加します (コマンド ライン上、または最初の実行後の .peergos/config ファイル内)。
-use-postgres true
-postgres.database $DATABASE
-postgres.host $HOST
-postgres.password $PASSWORD
-postgres.username $USERNAME
コマンド ラインからはさまざまなコマンドを使用できます。 -help を実行すると、使用可能なコマンドや、コマンドやサブコマンドの詳細を確認できます。ほとんどのユーザーは、デーモンコマンドとシェルコマンド、および場合によっては、 identityまたはFuse コマンドのみを必要とします。移行コマンドを使用すると、すべてのデータを新しいサーバー (コマンドが実行されるサーバー) に移動できます。
>> 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
または
>> 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.
すべてのデータを別のサーバーにミラーリングするには、まず次のコマンドを (任意のインスタンス上で) 実行します。
java -jar Peergos.jar ミラー初期化 -username $username
パスワードを要求され、ミラー デーモンに提供する必要がある 3 つのパラメータが出力されます。
次に、init コマンドで提供される次の追加の引数を使用して、データをミラーリングするインスタンス上でデーモンを実行します。
java -jar Peergos.jar デーモン -mirror.username $username -mirror.bat $mirrorBat -login-keypair $loginKeypair
これにより、そのユーザーのデータがこのインスタンスに継続的にミラーリングされます。
別のサーバーに移行するには、まずそのサーバーに十分なクォータがあることを確認してから、そのサーバー上で移行コマンドを実行します。
java -jar Peergos.jar 移行
ユーザー名とパスワードを要求し、すべてのデータをローカルにミラーリングし、PKI を更新してこれをホーム サーバーにします。
移行後も、あなたのアイデンティティは変更されず、データへのすべてのリンクは引き続き機能し、誰にも伝えることなくソーシャル グラフを維持できます。
シェルを使用してさまざまな操作を行うことができます。
java -jar Peergos.jar shell
サーバーに接続するには、サーバー アドレス (http/https を含む)、ユーザー名、およびパスワードを入力する必要があります。
Enter Server address
> https://peergos.net
Enter username
> demo
Enter password for ' demo '
> **************************************
Generating keys
Logging in
Retrieving Friends
demo@https://peergos.net >
使用可能なすべてのコマンドを表示するには
demo@https://peergos.net > help
ヒント: 次のコマンドは、大きなフォルダーの初期アップロードを行う場合に役立つ場合があります。
put local_path remote_path
ネイティブ ディレクトリをpeergos ディレクトリ (またはいくつかのディレクトリのペア) と同期できる双方向同期クライアントがあります。これを最初に実行するには、次の手順を実行します。
>> java -jar Peergos.jar sync init -peergos-url https://peergos.net
そして、プロンプトに従って、ユーザー名、パスワード、同期するpeergosディレクトリを入力します。これにより、次のようなものが出力されます。
>> Run the sync dir command with the following args: -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs $LOCAL_DIR
次に、次のようにして同期クライアントを実行します。
>> java -jar Peergos.jar sync dir -peergos-url https://peergos.net -links secret/z59vuwzfFDomTEuyeEw7rkofcd2vt5EnVffmAy5fnQe9V9MG36ZiBVY/3615659421#QUq6mf4gz8uk -local-dirs /path/to/local/dir
次のコマンドを使用して Peergos スペースをマウントできます。
>> java -Djava.library.path=native-lib -jar Peergos.jar fuse -peergos-url https://peergos.net -username $username -password $password
osxfuseをインストールします
>> brew install --cask osxfuse
winfspをインストールするには
>> choco install winfsp
ローカル webdav ブリッジを実行すると、webdav 互換クライアントで Peergos ファイルにアクセスできるようになります。次のコマンドを実行します (任意の webdav ユーザー名とパスワードを選択します)。
>> 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
ビルドするには jdk17 と ant が必要です。以下を使用して依存関係をインストールします。
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
これには Web UI が含まれていないことに注意してください。Web インターフェイス ビルドを含む完全なビルドの場合は https://github.com/peergos/web-ui
ant dist
ant gwtc
ant-optional をインストールする必要があります。
sudo apt-get install ant-optional
macOS 上の Ant パッケージには追加するものは何もありません。
テストを実行すると、正しいバージョンの IPFS が自動的にインストールおよび構成され、デーモンが実行され、その後デーモンが終了します。
ant test
ant compile
ターゲットは、src/peergos/{client,server,shared} フォルダー内のソースのみをコンパイルします。