Client side atproto account migrator in your web browser, along with services for backups and adversarial migrations.

Merge remote-tracking branch 'remote/main'

Changed files
+137 -4
public
+2 -2
README.md
··· 2 2 3 3 ![moo](./public/moo.webp) 4 4 5 - Use at your own risk, I will not host till I have a bit more validation and retry logic in place. 6 - AND it will still be very much so, use at your own Risk. 5 + A no frills client side PDS account migrator for ATProto. For more info check out 6 + [pdsmoover.com](https://pdsmoover.com)
+4 -2
index.html
··· 110 110 this.plcStatus = 'PLC operation signed successfully! Your account has been MOOved to the new PDS.'; 111 111 // this.askForPlcToken = false; 112 112 } catch (error) { 113 + this.error = error.message; 113 114 console.error(error); 114 115 } 115 116 } ··· 124 125 <div class="cow-image"> 125 126 <img src="/moo.webp" alt="Cartoon milk cow" style="max-width: 100%; max-height: 100%; object-fit: contain;"> 126 127 </div> 127 - 128 + <a href="/info.html">Idk if I trust a cow to move my atproto account to a new PDS</a> 128 129 <form x-show="!askForPlcToken" id="moover-form" @submit.prevent="await handleSubmit()"> 129 130 <!-- First section: Login credentials --> 130 131 <div class="section"> ··· 227 228 <a href="https://github.com/bluesky-social/pds/blob/main/ACCOUNT_MIGRATION.md#%EF%B8%8F-warning-%EF%B8%8F-%EF%B8%8F">here</a>) 228 229 and that the creator or host of this migration tool is not liable and will not be to help you in the 229 230 event something goes 230 - wrong. 231 + wrong. I also have read over the <a href="/info.html">extended information from PDS MOOver about account 232 + migrations.</a> 231 233 </label> 232 234 <input x-model="confirmation" type="checkbox" id="confirmation" name="confirmation" required> 233 235 </div>
+130
public/info.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8"/> 5 + <link rel="icon" type="image/webp" href="/moo.webp"/> 6 + <meta property="og:description" content="ATProto account migration tool"/> 7 + <meta property="og:image" content="/moo.webp"> 8 + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/> 9 + <title>PDS MOOver Info</title> 10 + <link rel="stylesheet" href="/style.css"> 11 + <script src="https://unpkg.com/alpinejs" defer></script> 12 + 13 + </head> 14 + <body> 15 + <div class="container"> 16 + <h1>PDS MOOver</h1> 17 + <div class="cow-image"> 18 + <img src="/moo.webp" alt="Cartoon milk cow" style="max-width: 100%; max-height: 100%; object-fit: contain;"> 19 + </div> 20 + <div class="section" id="top"> 21 + <p> This page is to help you decide if you want to use PDS MOOver to move your ATProto(Bluesky) account to a new 22 + PDS. 23 + One way or the other. TLDR (You should still read the whole thing), at least read and follow the <a 24 + href="#precautions">precautions section</a>.</p> 25 + 26 + 27 + <section class="section" style="text-align:left"> 28 + <h2>Alpha</h2> 29 + <p>PDS MOOver is a no frills' PDS account migration tool. Meaning you will find few bells and whistles to 30 + simplify the process and hopefully allow more successful account migrations for most users. The creator 31 + or host of this tool will not be able to help you recover your account if something goes wrong. So be 32 + advised you and your PDS admin may be on your own besides helpful answers and understand the risk you 33 + take in doing an account movement. The tool has been tested, and it has worked well, but it is still 34 + important to understand this. If you follow <a 35 + href="#precautions">precautions section</a> this will also greatly increase the odds of 36 + recovering from any issues. You will still need to have some know how, but it is very possible with a 37 + backup rotation key and backup of your account. I also recommend trying out an alt before you do your 38 + main account so you know what to expect.</p> 39 + </section> 40 + 41 + 42 + <nav aria-label="Table of contents" class="section" style="text-align:left"> 43 + <h3>Table of contents</h3> 44 + <ol> 45 + <li><a href="#precautions">Precautions</a></li> 46 + <li><a href="#help">!!!!!HELP!!!!!</a></li> 47 + <li><a href="#why">Why doesn't PDS MOOver have xyz?</a></li> 48 + <li><a href="#done">Alright account migrated, now what?</a></li> 49 + <li><a href="#slow">Why is it so SLOW?</a></li> 50 + <li><a href="#open-source">Can I check out the code anywhere?</a></li> 51 + </ol> 52 + </nav> 53 + 54 + <section id="precautions" class="section" style="text-align:left"> 55 + <h2>Precautions</h2> 56 + <p>Before you even run PDS MOOver I STRONGLY suggest you add a rotation key and have a back up of your repo 57 + and blobs. With both of these you are not guarantee a full recovery if something goes wrong. But it will 58 + greatly increase your odds.</p> 59 + <h3>Rotation Key Backup</h3> 60 + <p>I recommend using <a href="https://atpairport.com/ticket-booth">atpairport.com</a> to add a new rotation 61 + key to your PLC. or you can follow <a href="https://whtwnd.com/bnewbold.net/3lj7jmt2ct72r">this blog 62 + post</a> to do it with goat. PDS MOOver will not use this rotation key at this time, but if 63 + something happens, it helps to have this in the meantime. 64 + <p> 65 + <h3>Repo & Blob backup</h3> 66 + 67 + <p>I also recommend taking a back up of your account with <a href="https://boat.kelinci.net/">boat</a>. You 68 + want to <a href="https://boat.kelinci.net/repo-export">"Export repository"</a> and <a 69 + href="https://boat.kelinci.net/blob-export">"Export 70 + blobs"</a>. Both just take your 71 + current handle and download those exports to your computer. These are your posts, pictures, and videos. 72 + </p> 73 + </section> 74 + 75 + <section id="help" class="section" style="text-align:left"> 76 + <h2>!!!!!HELP!!!!!</h2> 77 + <p>If you're having issues with PDS MOOver first of all, I'm very sorry. I have tested this to the best of 78 + my 79 + ability, but PDS migrations do come with risks. I would recommend getting with the owner of the PDS and 80 + seeing where the account stands with tools like <a href="https://pdsls.dev">pdsls</a>.</p> 81 + 82 + <p> The tool is designed to be able to be re ran IF you set the Advance Options flags.For example, lets say 83 + if it created the account, repo is there but some blobs are missing. You can uncheck everything but 84 + "Migrate Missing Blobs", "Migrate Prefs", and "Migrate PLC record" and it will pick up after the account 85 + repo migration. It is odd in the fact that all the fields are required. That's just to cut down on logic 86 + to hopefully cut down on bugs. If you don't ever see the "Please enter your PLC Token" you can just 87 + forget about it and call it a day if it's too much. Your old account is still active and working.</p> 88 + </section> 89 + 90 + <section id="why" class="section" style="text-align:left"> 91 + <h2>Why doesn't PDS MOOver have xyz?</h2> 92 + <p>PDS MOOver was designed to pretty much be the goat account migration with a UI. Like in this <a 93 + href="https://whtwnd.com/bnewbold.net/3l5ii332pf32u"> post</a>. Keeping it simple and hard fails if 94 + anything 95 + goes wrong 96 + to 97 + hopefully cover most use cases. Rule of thumb if reading the goat migration blog post makes you nervous, 98 + you may not want to move to a new PDS with PDS MOOver till it has been battle tested.</p> 99 + </section> 100 + 101 + <section id="done" class="section" style="text-align:left"> 102 + <h2>Alright account migrated, now what?</h2> 103 + <p>Welcome to your new PDS! I recommend now re running the steps in <a 104 + href="#precautions">precautions section</a> along with keeping regular backups of your account. With 105 + the rotation key and backups you can almost always recover even if your new PDS disappears overnight. It 106 + may take a bit of know how, but it is very possible.</p> 107 + </section> 108 + 109 + <section id="slow" class="section" style="text-align:left"> 110 + <h2>Why is it so SLOW?</h2> 111 + <p>Everything happens client side, and the blob uploads take a while. Nothing runs in parallel. Blob uploads 112 + happen one at a time; once one is done, the next goes. This is done just to keep it as simple as 113 + possible and to hopefully limit the chance of failures on uploads. My personal account takes about 114 + 20-30ish mins to move with 1,700ish blobs at 800mb on a 1gig internet connection.</p> 115 + </section> 116 + 117 + <section id="open-source" class="section" style="text-align:left"> 118 + <h2>Alright account migrated, now what?</h2> 119 + <p>Yep! PDS MOOver is 100% open source and can find the code on <a 120 + href="https://tangled.sh/@baileytownsend.dev/pds-moover">tangled.sh</a>. Also, if you're a 121 + developer, 122 + and you want to fork the code for a new UI. PDS MOOver's logic is all in one js file. Just take it and 123 + its dependencies and have at it.</p> 124 + </section> 125 + </div> 126 + 127 + </div> 128 + 129 + </body> 130 + </html>
+1
public/style.css
··· 17 17 font-weight: 500; 18 18 color: #646cff; 19 19 text-decoration: inherit; 20 + text-decoration: underline; 20 21 } 21 22 22 23 a:hover {