All Projects → everruler12 → Roam2github

everruler12 / Roam2github

Licence: mit
Automatic backups from Roam Research into your private GitHub repo

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Roam2github

Phpbu
PHP Backup Utility - Creates and encrypts database and file backups, syncs your backups to other servers or cloud services and assists you monitor your backup process
Stars: ✭ 1,147 (+1107.37%)
Mutual labels:  backup
Pgdump Aws Lambda
Lambda function for executing pg_dump and streaming the output to s3.
Stars: ✭ 80 (-15.79%)
Mutual labels:  backup
Content Lambda Boto3
Automating AWS with Lambda, Python, and Boto3
Stars: ✭ 91 (-4.21%)
Mutual labels:  backup
Cv4pve Barc
Backup And Restore Ceph for Proxmox VE
Stars: ✭ 74 (-22.11%)
Mutual labels:  backup
Minecraft Wrapper
A simple & intuitive Minecraft Server wrapper. Supports IRC, backups, a plugin system, and more.
Stars: ✭ 77 (-18.95%)
Mutual labels:  backup
Rexport
Reddit takeout: export your account data as JSON: comments, submissions, upvotes etc. 🦖
Stars: ✭ 87 (-8.42%)
Mutual labels:  backup
Bash Snippets
A collection of small bash scripts for heavy terminal users
Stars: ✭ 8,558 (+8908.42%)
Mutual labels:  backup
Gitbackup
Tool to backup your GitHub and GitLab repositories
Stars: ✭ 94 (-1.05%)
Mutual labels:  backup
Agent
The best way to backup and restore your database
Stars: ✭ 80 (-15.79%)
Mutual labels:  backup
Xsrv
[mirror] Install and manage self-hosted services/applications, on your own server(s) - ansible collection and utilities
Stars: ✭ 89 (-6.32%)
Mutual labels:  backup
Docker Openldap Backup
A docker image to run OpenLDAP, and make periodic backups 🐳
Stars: ✭ 75 (-21.05%)
Mutual labels:  backup
Bareos Webui
Bareos Web User Interface
Stars: ✭ 78 (-17.89%)
Mutual labels:  backup
Docker Crashplan
CrashPlan docker container
Stars: ✭ 88 (-7.37%)
Mutual labels:  backup
Pinboard Notes Backup
Back up the notes you’ve saved to Pinboard
Stars: ✭ 69 (-27.37%)
Mutual labels:  backup
Snebu
Simple Network Encrypting Backup Utility
Stars: ✭ 92 (-3.16%)
Mutual labels:  backup
Backup
MySQL Database backup package for Laravel
Stars: ✭ 66 (-30.53%)
Mutual labels:  backup
Ydcmd
Консольный клиент Linux/FreeBSD для работы с Яндекс.Диск (Yandex.Disk) посредством REST API
Stars: ✭ 87 (-8.42%)
Mutual labels:  backup
Bups
Simple GUI for Bup, a very efficient backup system.
Stars: ✭ 94 (-1.05%)
Mutual labels:  backup
Laravel Backup
A easy-to-use backup manager for Laravel
Stars: ✭ 93 (-2.11%)
Mutual labels:  backup
Xenon
Create backups of your discord server
Stars: ✭ 90 (-5.26%)
Mutual labels:  backup

Roam2Github

Click here to view guide on setting up free, unlimited, automatic Roam backups

Click here for instructions with step-by-step screenshots, created by flyq (not unlimited version)

Click here for extra settings


This project was inspired by https://github.com/MatthieuBizien/roam-to-git

Roam-to-git has offered me great peace of mind knowing my Roam data is safe. However, my backups regularly failed with unknown errors multiple times a week. People were emailing me with the same issues, and I couldn't help. Then it got to the point on 2021-01-28 where all my backups were failing. Roam-to-git's creator didn't seem active with addressing the issues, and I don't know enough Python fix his code. So I decided to write my own backup solution from scratch using Node— with clearer logging to make troubleshooting easier.

Differences from roam-to-git

  • Uses Node (rather than Python)
  • Supports EDN in addition to JSON and Markdown (not formatted markdown though)
  • Multiple graph backups in the same repo
  • Better error debugging and active support from the developer (Erik Newhard @everruler12) to get your backups running smoothly and error-free

Future Plans

  • [ ] New, full guide with step-by-step screen recordings
  • [ ] Update code to run asynchronously, instead of linearly, to cut down on run time
  • [ ] Use fipp for faster EDN formatting
  • [x] EDN support (2021-01-31)
  • [x] Multi graph support (2021-02-01)
  • [x] Markdown support (2021-02-04)
  • [x] Allow setup of public repo for running Actions and committing to private repo for backup, in order to bypass minute limit for private GitHub Actions (2021-02-18)

EDN Backups are live!

The backup has a check to make sure the formatted EDN (which only adds extra linebreaks and indentation) can be parsed back to match exactly with the original before saving it. It will exit with an error if it can't, so you can rest assured that the formatting doesn't mess with the file integrity. I also tested that the formatted EDN can be used to successfully restore graphs.

2021-01-31 It took all day to figure out how to use ClojureScript to prettify EDN. It was a daunting task, never having dealt with Clojure before, much less compiling it into JavaScript. But I did it! This is necessary because the exported EDN data from Roam is all in one line, meaning GitHub would have to save the entire file each time, instead of just the new lines. This would eat up the storage pretty quickly if run every hour, as unchanged notes would be duplicated each time. And you wouldn't be able to see line-by-line changes in the git history.

Multi Graph Backups in Same Repo

You can now backup multiple graphs without having to create a new GitHub repo for each one. Just add them to your R2G_GRAPH Secret in separate lines, or separated by commas.

Markdown support added

2021-02-04 Markdown is now supported. Worked all day to get filename sanitization working. My backup script can even export markdown from the official Roam help database and Roam book clubs error-free! I have added several measures to prevent errors:

  • / slashes are replaced with full-width versions
  • illegal filename characters are replaced with
  • Page titles longer than 255 characters are automatically truncated (though they lose the .md extension)
  • no subdirectories
  • no blank files
  • The logs will list the files that have been renamed or overwritten. The logs no longer display file names, as this would be a privacy concern for the new way to run Actions publicly.

Unfortunate side-effect with markdown backups: files with duplicate names are overwritten (like [[test]] and [[Test]]). (This was also present in roam-to-git)

Separate backup save location and backup script actions

It is possible now to run the script actions from a public repo, to not be limited by 2000 minutes/month, and save the backup to a private repo. Note that Secret names have changed with this update. (The guides at the top have been updated with the new Secret names and main.yml. The old version is still up, but will no longer be updated.)

Support / Donations

If you experience any issues or errors with my backup script, let me know! Either post as a GitHub issue here, or send me a message at my support email:

[email protected]

You can also check here: Common error causes and their solutions


Some very generous people have been asking how to donate. If you like my work, I won't refuse your support!

PayPal: https://paypal.me/eriknewhard

Bitcoin (BTC) address: bc1qsa3l8lraa3rjj6wyc7zdlv5z2xnlunppavtxw0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].