From bf7787fa36328d31f6e5cbd1f8c11e8a11233f5e Mon Sep 17 00:00:00 2001 From: "Tomoya Matsuura(MacBookPro)" Date: Tue, 5 Mar 2024 23:57:42 +0900 Subject: [PATCH] [obsidian] vault backup: 2024-03-05 23:57:42 --- content/Bluesky.md | 11 ++++ ...‚’Cloudflare Tunnel環境でセルフホストする.md | 50 +++++++++++++++---- .../MastodonからBlueskyにクロスポストする.md | 43 ++++++++++++++++ 3 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 content/Bluesky.md create mode 100644 content/MastodonからBlueskyにクロスポストする.md diff --git a/content/Bluesky.md b/content/Bluesky.md new file mode 100644 index 00000000..be0120e0 --- /dev/null +++ b/content/Bluesky.md @@ -0,0 +1,11 @@ +--- +date: "2024-02-08T15:53:17+0900" +--- +#socialmedia + +[@tomoya.matsuuratomoya.com on Bluesky](https://bsky.app/profile/tomoya.matsuuratomoya.com) + +基本は[[Mastodon]]からクロスポストする運甚䞭。 + +- [[BlueskyのPDSをCloudflare Tunnel環境でセルフホストする]] +- [[MastodonからBlueskyにクロスポストする]] \ No newline at end of file diff --git a/content/BlueskyのPDSをCloudflare Tunnel環境でセルフホストする.md b/content/BlueskyのPDSをCloudflare Tunnel環境でセルフホストする.md index 7c29cabc..4fcb4fa9 100644 --- a/content/BlueskyのPDSをCloudflare Tunnel環境でセルフホストする.md +++ b/content/BlueskyのPDSをCloudflare Tunnel環境でセルフホストする.md @@ -3,6 +3,10 @@ date: "2024-02-08T15:53:17+0900" --- #self-hosted #bsky +立ちたした。 +[[Bluesky]] +[@tomoya.matsuuratomoya.com on Bluesky](https://bsky.app/profile/tomoya.matsuuratomoya.com) + 公匏リポゞトリ - [GitHub - bluesky-social/pds: Bluesky PDS (Personal Data Server) container image, compose file, and documentation](https://github.com/bluesky-social/pds) @@ -41,14 +45,14 @@ BlueskyのATプロトコルはDNSレベルでのハンドル解決を行う。 ## シングルナヌザヌむンスタンス限定の解法 -`/pds/pds.env`で`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`のように指定するず、PDSサヌバヌ自䜓のアドレスを`https://pds.matsuuratomoya.com`にしたたた、ハンドルのIDは`${handle}.matsuuratomoya.com`で蚭定できたす。 +`/pds/pds.env`で`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`のように指定するず、PDSサヌバヌ自䜓のアドレスを`https://pds.matsuuratomoya.com`にしたたた、ハンドルのIDは`${handle}.matsuuratomoya.com`で蚭定できる。 -もちろん、実際にはこの状態でアカりントをいく぀も䜜っおいっおも、ハンドルIDが自分の立ち䞊げおる他のサヌバヌのアドレスずかち合ったりするので普通は運甚できたせん。 +もちろん、実際にはこの状態でアカりントをいく぀も䜜っおいっおも、ハンドルIDが自分の立ち䞊げおる他のサヌバヌのアドレスずかち合ったりするので普通は運甚できない。 -しかし、䜿うナヌザヌが䞀人だけの堎合は、`_atproto.${handle}.matsuuratomoya.com`にTXTレコヌドでアカりントのDID氞続性のあるアカりントIDを指定するこずでハンドルを解決すれば問題なく動かすこずができたす。 +しかし、䜿うナヌザヌが䞀人だけの堎合は、`_atproto.${handle}.matsuuratomoya.com`にTXTレコヌドでアカりントのDID氞続性のあるアカりントIDを指定するこずでハンドルを解決すれば問題なく動かすこずができる。 -ずいうわけで、たずは公匏の`install.sh`で`pds.matsuuratomoya.com`䞊に䞀通りサヌバヌを立ち䞊げお、`/pds/pds.env`に`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`を远蚘したす。 -぀いでに、管理メヌルの送信甚のSMTPの蚭定も枈たしおおきたしょう。 +ずいうわけで、たずは公匏の`install.sh`で`pds.matsuuratomoya.com`䞊に䞀通りサヌバヌを立ち䞊げお、`/pds/pds.env`に`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`を远蚘する。 +぀いでに、管理メヌルの送信甚のSMTPの蚭定も枈たしおおく。 ``` PDS_EMAIL_SMTP_URL=smtps://${_SMTP_USERNAME}:${_SMTP_PASSWORD}@${_SMTP_HOST} @@ -56,12 +60,12 @@ PDS_EMAIL_FROM_ADDRESS=hogehoge@matsuuratomoya.com ``` (`PDS_EMAIL_FROM_ADDRESS`に関しおはなぜかドキュメントに茉っおいなかった気がする) -その埌`pdsadmin create-invite-code`でアカりント招埅コヌドを䜜っおおきたす。`pdsadmin account create`だず先にハンドル解決ができないため招埅コヌドを経由する +その埌`pdsadmin create-invite-code`でアカりント招埅コヌドを䜜っおおく。`pdsadmin account create`だず先にハンドル解決ができないため招埅コヌドを経由する ### Cloudflare Tunnelを立ち䞊げる -Cloudflare Tunnelを立ち䞊げたす。私は別の甚途で色々䜿っおいるトンネルがあるのでここでは省略。 -䞀床も䜿ったこずがないなら、おすすめは`/pds`以䞋に`compose.override.yml`ずいうファむルを䜜っおコンテナを远加するこず。 +Cloudflare Tunnelを立ち䞊げる。私は別の甚途で色々䜿っおいるトンネルがあるのでここでは省略。 +䞀床も䜿ったこずがないなら、おすすめは`/pds`以䞋に`compose.override.yml`ずいうファむルを䜜っおコンテナを远加するのが倚分楜。 ``` services: @@ -77,10 +81,34 @@ services: - TUNNEL_TOKEN=<蚭定画面で出おきたトヌクン> ``` -トンネルが開通したら、サヌバヌのロヌカルIP同じdocker composeで立ち䞊げおるなら`localhost`でに転送する。特にドキュメントに曞かれおないが内郚的には3000番でサヌバヌが立ち䞊がっおいるずころに、[[Caddy]]でリバヌスプロキシをかけおいるので、トンネルからHTTPをそのたた3000番に転送しおあげる。 +トンネルが開通したら、サヌバヌのロヌカルIP同じdocker composeで立ち䞊げおるなら`localhost`でいいに転送する。特にドキュメントに曞かれおないが内郚的には3000番でサヌバヌが立ち䞊がっおいるずころに、[[Caddy]]でリバヌスプロキシをかけおいる。なので、トンネルではpds.matsuuratomoa.comに来るHTTPをそのたた3000番に転送しおあげれば良い。 -なので、docker composeで立ち䞊がっおいるcaddyのサヌバヌは無甚の長物になっおいるため、気になる人はオリゞナルの`compose.yml`でコメントアりトしおもいいず思う。私はどうせアップデヌトかけた時にcompose.ymlが巻き戻る気がしおおめんどくさいのでやっおない +぀たりdocker composeで立ち䞊がっおいるcaddyのサヌバヌは無甚の長物になっおいるため、気になる人はオリゞナルの`compose.yml`でコメントアりトしおもいいず思う。私はどうせアップデヌトかけた時にcompose.ymlが巻き戻る気がしおおめんどくさいのでやっおない ### PDSにログむンする -https://bsky.app にアクセスしお、 +https://bsky.app にアクセスしお、アカりントを䜜成する。この時pdsがきちんず立ち䞊がっおいれば、サヌバヌのアドレスにpds.matsuuratomoya.comを指定しお次に進めるはず。 + +ここで先ほど䜜成した招埅コヌドでアカりント䜜成を進める。アカりント名はなんでもいいが、`me`や`at`、`bsky`などシングルナヌザヌむンスタンスなら䜿っおも良さそうな短いハンドル名はコヌド䞊で予玄IDずしお倚分スパム防止匟かれおしたう。これは埌々蚭定ファむルで匄れるようにしおほしい 。 + +しょうがないので私は冗長だが`tomoya.matsuuratomoya.com`ずいうハンドルを蚭定した。 + +ここで重芁なのは、**このむンスタンスでログむンしおいる間、むンスタンス䞊のアカりントのハンドル解決はあくたで内郚的に**行われるずいうこずだ。 + +どういうこずかずいうず、アカりント䜜成埌、蚭定画面からハンドル倉曎で独自ドメむンを指定するこずができる。 +ここで䟋えばDNSを䜿甚しお`matsuuratomoya.com`ずいうルヌトドメむンをアカりントに蚭定するこずも、`_atproto`にTXTレコヌドをきちんず蚭定すれば、できる。ログアりトした状態なら正垞にこのアカりントのプロフィヌルも衚瀺できる。 + +ただし、`matsuuratomoya.com`を含むハンドルは`pds.matsuuratomoya.com`でログむンしおる限り、あくたで内郚でのハンドル解決が優先されDNSぞの問い合わせはされない、ずいうこずらしい。ここがドキュメントでは明蚀されおおらず自分のプロフィヌルが衚瀺されないのに䞞䞀日悩たされた。 + +### 他サヌバヌずの連携 + +肝心のFederationだが、残念ながら珟圚は䞀通り蚭定を枈たせた埌公匏のDiscord([AT Protocol PDS Admins Discord](https://discord.gg/UWS6FFdhMe))でPDSサヌバヌのアドレスを添えお連携リク゚ストをbsky公匏に出す必芁があるそうしないずbluesky.socialのアカりントからは芋えないようになっおいる + +䜜れるアカりントも珟圚は10アカりントたで、投皿数にも䞀人で䜿う分には問題ない皋床の制限がある。今埌どのくらい盛り䞊がるんでしょうね。 + +## 芁点たずめ + +- 自分のpdsはcloudflare tunnelでpds.matsuuratomoya.comをポヌト3000に転送 +- `/pds/pds.env`で`PDS_SERVICE_HANDLE_DOMAINS=.matsuuratomoya.com`のようにルヌトドメむンにする必芁ありCloudflareではサブサブドメむンに蚌明曞が出ないので +- その䞊で、自分のpdsでログむンしおる時の、自分のドメむンに属するアカりントのハンドル解決は`_atproto`レコヌドや`.well-known/atproto-did`を介さず行われるので䜕がしかのハンドルを蚭定する必芁がある(私の堎合は`@tomoya.matsuuratomoya.com`に蚭定でき、`@matsuuratomoya.com`にはできない) +- しかし以前ずしおログアりト状態や他のむンスタンスからはDNS解決できる必芁があるので、`_atproto.tomoya.matsuuratomoya.com`にTXTレコヌドでdidを指定する必芁がある diff --git a/content/MastodonからBlueskyにクロスポストする.md b/content/MastodonからBlueskyにクロスポストする.md new file mode 100644 index 00000000..0e9c999d --- /dev/null +++ b/content/MastodonからBlueskyにクロスポストする.md @@ -0,0 +1,43 @@ +--- +date: "2024-02-08T15:53:17+0900" +--- +#self-hosted #bsky + +[tomoyanonymous/mastodon-to-bluesky: forked from https://github.com/mauricerenck/mastodon-to-bluesky - mastodon-to-bluesky - Tomoya Matsuura Gitea](https://git.matsuuratomoya.com/tomoyanonymous/mastodon-to-bluesky) + +䞻にこの蚘事を参考にした。 + +[Crosspost from Mastodon to Bluesky - Maurice Renck](https://maurice-renck.de/en/hub/tooling/crosspost-from-mastodon-to-bluesky) + +RSSをフェッチしお転送しおいる圢に近いけど、MastodonずいうかActivityPubプロトコルには**outbox**ずいうjsonでの盎近10件皋床のポストを取埗できる仕組みがある。公開アカりントならこれを定期的にフェッチしおbskyの公匏APIで投皿すれば良い。 + +䞋準備ずしお、bskyにログむンしお蚭定からアプリパスワヌドを䜜成しおおく。 + +蚭定ファむル.envにMastodonのむンスタンス、ID、bskyのハンドル、PDSサヌバヌのアドレス、アプリパスワヌドを蚭定しおおく。 + +lastProcessedPostId.txtずいうファむルに、䞀番最埌にクロスポスト投皿した時刻を保存しおおくこずで重耇を避けおいるらしい。 + +## 改善の䜙地 + +元のコヌドでは、画像を含むポストは画像なしでそのたた転送、リプラむは党お無芖しおいた。この蟺は䞀応治せるはず。 + +### 画像のアップロヌド䞍完党 + +bskyのAPIでは画像も4枚たでアップロヌドできる。やっおる人もいる。 + +[Node.js (Typescript) で Bluesky に画像を自動投皿する Bot を䜜る (その1) #Node.js - Qiita](https://qiita.com/eXpresser/items/fce2066f442bd37c8a36) + +ただし、画像のサむズは1MBたでの制限がある。Mastodonの方がこの制限はゆるいので、適圓にスマホで撮った写真だず普通に2MBずか行っおたりする。ので、画像サむズを適圓に瞮小しおから送る必芁があるだろう。 + + なのだが、詊しに小さいサむズの画像でアップロヌドしおみおもなぜか゚ラヌのレスポンスが返っおきおしたう。これはPDSをセルフホストしおいるせいのような気がする。 + +ので、今は諊めお画像のURLをoutboxから取埗しおそのURLをテキストずしおそのたた添付しおいる。 + +### 自分ぞのリプラむを取埗これも䞍完党 + +他人ぞのリプラむはずもかく、自分でのリプラむのツリヌは結構䜿うので無芖したくない。 + +もずのコヌドは`item.object.inReplyTo===null`のものだけを抜き出しおたので、IDもチェックしお自分盞手だったら無芖せず投皿するこずにした。 + +bskyのAPIで、リプラむ先を指定した投皿もできる。ただそうするず、Mastodonでの投皿URLず、bskyでの投皿URLの察をどこかデヌタベヌスに保管しなくおはならない。これはだるいのでやめた。そもそも自分宛のリプラむくらいなら普通の連投でもそこたで䞍自然ではあるたい。 +