# Simple Bluesky Backup Script A script that downloads a Bluesky profile (repo and blobs) as well as all profiles referenced by (i.e. followed, liked, mentioned, replied to, blocked, listed, etc) that profile. Only supports did:plc for now. To backup one or more profiles and all related profiles: ```sh $ deno run --allow-all bskybackup.deno.js did:plc:u4gngygg2w5egsigxu5g7byu # (you can put more than one did:plc separated by spaces) ``` This will preserve all content they interacted with, such as posts they liked, replied to, quoted or reposted. To backup a profile, all related profiles AND all profiles related to related profiles: ```sh $ deno run --allow-all bskybackup.deno.js did:plc:u4gngygg2w5egsigxu5g7byu --depth=2 ``` This will additionally save all profiles related to the profiles related to them, so you will have a copy of everything their friends liked and reposted as well. This may be a LOT of data! Running the script again will refresh the repositories and download new blobs. Existing blobs are not re-downloaded. Run the script regularly to keep the backups up to date. ## Example SystemD systemd timer is better than cron because it won't start it again if it's still running. /etc/systemd/system/bskybackup.service ```systemd [Unit] Description=Bluesky Backup script After=network-online.target [Service] WorkingDirectory=/zpool1/FileStorage/srv/bskybackup/ User=bskybackup ExecStart=deno run --allow-all bskybackup.deno.js did:plc:u4gngygg2w5egsigxu5g7byu Type=exec ``` /etc/systemd/system/bskybackup.timer ```systemd [Unit] Description=Daily Bluesky backup [Timer] OnCalendar=00:05:00 [Install] WantedBy=timers.target ```