Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm a huge fan of Pocketbase. Backing up the sqlite though had me more stressed than I'd prefer, and I wanted a plug-and-play way to sqlite3_rsync a backup while Pocketbase was running: so I've been working on this: https://sqlrsync.com. MVP works. Billing isn't being checked yet (be gentle but it's Cloudflare Durable Objects underneath so it should be local, fast, and resilient.) Would love feedback from anyone open to trying it.


Love seeing the love for SQLite. Personally, I've had a great experience with litestream, which will continuously replicate any changes. Are you using https://sqlite.org/rsync.html?


Litestream is excellent however I wanted something that I could spin up faster without as much finickyneess as setting g up and securing new S3 credentials, and ideally a way to broadcast out updates.

For example I have a sqlite db in my userdir on most servers I (personally) ssh into with "things I'd like to remember" (using dnote for spaced reptition). When I make a change to that file using "dnote", sqlrsync waits until changes stop, performs the sqlite3_rsync, and Cloudflare sends a websocket message to subscribers of that file (me on other servers) to pull down updates when they can.

I'd also like to add "dead man's alarms", etc. So it's bells and whistles around an easier-to-use sqlite.org/rsync.


Sorry if my question is misguided: did you try SQLite3's native online backup API? I would not use raw file access knowing they have that.


I'm aware of it but was wanted to create something that I can just quickly point at a running system and make a backup. This is a narrower use case and I accept that it's not for everyone.


I understand but in this case the quicker solution has potentially fatal flaws.

With time I have learned to speed-run less things because I've been bitten by the quick and dirty solution probably at least 100 times.


What are the differences between sqlrsync and litestream?


There’s a high level comparison here [1] but it doesn’t go into much detail about the architecture decisions. TLDR; litestream is continuous, sqlitersync is run as a command.


Here's the page threecheese meant to link: https://sqlrsync.com/help/alternatives

This is the very high level architecture: https://sqlrsync.com/help/architecture

Source code to the client which explains the code running on your system and how I use safe(r) sqlite3 APIs to copy a running database: https://github.com/sqlrsync/client


Thank you :) so embarrassing




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: