millipds stores blobs in sqlite, so you can sqlite while you sqlite
millipds stores blobs in sqlite, so you can sqlite while you sqlite
millipds supports range requests on blobs, so you can efficiently seek your blob-resident SQLite databases over HTTP
faster than the i/o
sqlite blobs are limited to 2GiB and I didn't want that limitation, which meant chunking things across multiple blobs. With smallish chunks (I chose 64k for now) you don't gain much from using the blob streaming api - might as well load the whole chunk at once.
it really is just SELECTing lol, sqlite3_blob_open is neat but not necessary here
there's nothing special going on, it's just HTTP
storing blobs in chunks in sqlite felt like a bit of an oddball design decision but I don't regret it in the slightest
stream high quality video straight out of sqlite:
mpv 'https://pds.dev.retr0.id/xrpc/com.atproto.sync.getBlob?did=did:plc:t423oqsrtl5gtgdfxvye5gco&cid=bafkreieb7c45qi6qgebqi276y3m35w5vbmy57afpsoussgj7qtzkm3kd3q'
(although getBlob should now support HTTP range requests)
just maintenance lol
hello world
test post
test
*monkey's paw curls*
self-hosting ftw
test
test
screenshot of app passwords menu
millipds does not support "app passwords", but it does implement the app password management APIs (or rather, will do soon). Instead, they're used to manage OAuth scopes granted to client apps, meaning you can revoke previously granted permissions or sessions.
millipds oauth scope grant dialog
oauth support is cooking (still a lot more to do, though)
test pattern
test
test
btw it works now
nice!!!
it's always dnsโข
and thus fails to load from an ipv6-only or ipv6-prioritising box
oh your ipv6 DNS records seem a little fucked
millipds.braxuss.eu. 3267 IN AAAA fe80::f816:3eff:fe23:8b4f
that's a link-local address
I assume you created the "millipds.braxuss.eu" dns record recently? it might not've propagated by the time the relay tried to request it, and like you say, cached the error response
$ curl --json '{"hostname": "https://millipds.braxuss.eu"}' "https://bsky.network/xrpc/com.atproto.sync.requestCrawl"
{"error":"requested host (millipds.braxuss.eu) failed to respond to describe request"}
hmm, weird - millipds.braxuss.eu/xrpc/com.atp... seems to work fine - anything in the logs?