lwc:networking:social_networking:pds_blue_sky

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lwc:networking:social_networking:pds_blue_sky [2025/01/31 07:19] – created John Harrisonlwc:networking:social_networking:pds_blue_sky [2025/01/31 09:09] (current) John Harrison
Line 1: Line 1:
 ===== Setting up a local PDS Server ===== ===== Setting up a local PDS Server =====
-//Completed on Digital Ocean Ubuntu 22.04 droplet// +//Completed on Digital Ocean Ubuntu 22.04 droplet running nginx and letsencrypt.//
-==== Overview ==== +
-The +
  
-==== Assumptions ==== 
-  * NGINX, Letsencrypt installed, working, happy 
-  *  
 ==== Install PDS ==== ==== Install PDS ====
 [[https://github.com/bluesky-social/pds|The installer]] assumes ports 80 and 443 are available and launches a Docker instance of ''Caddy'' to serve. This will conflict with NGINX but the installer still gets us started: [[https://github.com/bluesky-social/pds|The installer]] assumes ports 80 and 443 are available and launches a Docker instance of ''Caddy'' to serve. This will conflict with NGINX but the installer still gets us started:
Line 17: Line 12:
 docker ps docker ps
 docker stop <instance> docker stop <instance>
-docker kill <instance>+docker rm <instance>
 </code> </code>
 To get things to work correctly we are going to need to replace ''compose.yaml'' with something that doesn't start ''Caddy''. Here's a modification of the one found [[https://cprimozic.net/notes/posts/notes-on-self-hosting-bluesky-pds-alongside-other-services/|here]]. For a standard install you'll put ''compose.yaml'' in ''/pds'' To get things to work correctly we are going to need to replace ''compose.yaml'' with something that doesn't start ''Caddy''. Here's a modification of the one found [[https://cprimozic.net/notes/posts/notes-on-self-hosting-bluesky-pds-alongside-other-services/|here]]. For a standard install you'll put ''compose.yaml'' in ''/pds''
Line 42: Line 37:
 </code> </code>
  should return something close to:''{"version":"0.4.74"}''  should return something close to:''{"version":"0.4.74"}''
 +=== Get email working for pdsadmin ===
 +  * I didn't have an email server already set up on the server that was available to pdsadmin so I set up an SMTP server on AWS using their SES.
 +  * Then I added these lines to ''/pds/pds.env''
 +<code>
 +PDS_EMAIL_SMTP_URL=smtps://<SES USER>:<SES PW>@email-smtp.us-east-2.amazonaws.com:465/ # change AWS email server as needed
 +PDS_EMAIL_FROM_ADDRESS=<YOUR EMAIL ADDRESS>
 +</code>
 +  * Restart with ''docker compose up -d''
 +  * Check the logs: ''sudo docker logs -f pds''
  
 ==== Get NGINX reverse proxy working ==== ==== Get NGINX reverse proxy working ====
Line 105: Line 109:
 </code> </code>
   * on the local PDS server get an invite code: ''pdsadmin create-invite-code''   * on the local PDS server get an invite code: ''pdsadmin create-invite-code''
-  * Now comes the magical ''migrate'' command. Here's an example ripped from [[https://hyprlab.co/migrate-your-bluesky-account/here]]:+  * Now comes the magical ''migrate'' command. Here'the format and an example unabashedly ripped from [[https://hyprlab.co/migrate-your-bluesky-account/|here]]:
 <code> <code>
 +# format
 +goat account migrate \
 +    --pds-host $NEWPDSHOST \
 +    --new-handle $NEWHANDLE \
 +    --new-password $NEWPASSWORD \
 +    --new-email $NEWEMAIL \
 +    --plc-token $NEWPLCTOKEN \
 +    --invite-code $INVITECODE
 +
 +# example
 goat account migrate \ goat account migrate \
     --pds-host https://blueskydemo.hyprlab.co \     --pds-host https://blueskydemo.hyprlab.co \
Line 120: Line 134:
 pdsadmin account delete $YOURDID pdsadmin account delete $YOURDID
 </code> </code>
 +==== Get bsky.app to recognize your local PDS ====
 +  * log out of Bluesky
 +  * log back in:
 +    * ''Sign in'' --> ''Other account''
 +    * under ''Hosting provider'' select ''Custom''
 +    *  Enter domain name for your PDS
 +At this point my profile showed "invalid handle." To fix:
 +  * In ''Settings'' go through the email verification process.
 +  * After verification is complete, you will have a new option: ''change handle'' in ''settings''
 +  * When choosing ''change handle'' you have the option ''I have my own domain.'' It's probably optional if you are already happy with the domain of your PDS but I didn't want the pds subdomain for my domain in my handle so I went through this process
 +  * Choose your new handle
  
 ==== References ==== ==== References ====
Line 125: Line 150:
   * [[https://cprimozic.net/notes/posts/notes-on-self-hosting-bluesky-pds-alongside-other-services/|Self-hosing Bluesky using NGINX as a proxy]]   * [[https://cprimozic.net/notes/posts/notes-on-self-hosting-bluesky-pds-alongside-other-services/|Self-hosing Bluesky using NGINX as a proxy]]
   * [[https://hyprlab.co/migrate-your-bluesky-account/|Migrate Bluesky to another PDS]]   * [[https://hyprlab.co/migrate-your-bluesky-account/|Migrate Bluesky to another PDS]]
 +  * [[https://medium.com/@MszPro/self-host-federated-bluesky-instance-pds-with-cloudflare-tunnel-6c56cbca8852|(where I learned how to get the logs for pds)]]
 +  * [[https://bmannconsulting.com/notes/migrating-pds-account-with-goat/|Migrating a PDS account with GOAT]]
 +  * [[https://rafaeleyng.github.io/self-hosting-a-bluesky-pds-and-using-your-domain-as-your-handle]]
  • lwc/networking/social_networking/pds_blue_sky.1738329598.txt.gz
  • Last modified: 2025/01/31 07:19
  • by John Harrison