millipds test's Avatar

millipds test

@david.dev.retr0.id

running on millipds https://github.com/DavidBuchanan314/millipds a project by @retr0.id

215 Followers  |  1 Following  |  113 Posts  |  Joined: 17.11.2024  |  2.0145

Latest posts by david.dev.retr0.id on Bluesky

millipds stores blobs in sqlite, so you can sqlite while you sqlite

08.10.2025 23:36 — 👍 3    🔁 0    💬 2    📌 0

millipds supports range requests on blobs, so you can efficiently seek your blob-resident SQLite databases over HTTP

08.10.2025 23:36 — 👍 4    🔁 0    💬 1    📌 0

faster than the i/o

05.10.2025 23:51 — 👍 1    🔁 0    💬 0    📌 0

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.

05.10.2025 03:35 — 👍 3    🔁 0    💬 0    📌 0

it really is just SELECTing lol, sqlite3_blob_open is neat but not necessary here

05.10.2025 03:34 — 👍 2    🔁 0    💬 1    📌 0

there's nothing special going on, it's just HTTP

05.10.2025 03:23 — 👍 1    🔁 0    💬 1    📌 0

storing blobs in chunks in sqlite felt like a bit of an oddball design decision but I don't regret it in the slightest

05.10.2025 02:32 — 👍 4    🔁 0    💬 0    📌 0

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'

05.10.2025 01:57 — 👍 22    🔁 1    💬 2    📌 2

(although getBlob should now support HTTP range requests)

04.10.2025 22:02 — 👍 5    🔁 0    💬 1    📌 0

just maintenance lol

04.10.2025 22:02 — 👍 6    🔁 0    💬 1    📌 0

hello world

04.10.2025 21:57 — 👍 20    🔁 0    💬 2    📌 0
Post image

test post

15.08.2025 20:09 — 👍 3    🔁 0    💬 0    📌 0

test

01.05.2025 16:16 — 👍 2    🔁 0    💬 0    📌 0

*monkey's paw curls*

29.04.2025 10:52 — 👍 4    🔁 0    💬 0    📌 0

self-hosting ftw

29.04.2025 10:49 — 👍 5    🔁 0    💬 0    📌 0

test

10.04.2025 20:52 — 👍 2    🔁 0    💬 2    📌 0

test

30.01.2025 22:18 — 👍 4    🔁 0    💬 1    📌 0
screenshot of app passwords menu

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.

23.01.2025 20:15 — 👍 9    🔁 0    💬 2    📌 0
millipds oauth scope grant dialog

millipds oauth scope grant dialog

oauth support is cooking (still a lot more to do, though)

17.01.2025 20:26 — 👍 15    🔁 0    💬 0    📌 1
test pattern

test pattern

test

15.01.2025 17:06 — 👍 1    🔁 0    💬 0    📌 0

test

14.01.2025 18:05 — 👍 0    🔁 0    💬 1    📌 0

btw it works now

06.01.2025 17:26 — 👍 1    🔁 0    💬 0    📌 0

nice!!!

04.01.2025 17:16 — 👍 2    🔁 0    💬 1    📌 0

it's always dns™

04.01.2025 00:43 — 👍 1    🔁 0    💬 1    📌 0

and thus fails to load from an ipv6-only or ipv6-prioritising box

04.01.2025 00:42 — 👍 1    🔁 0    💬 1    📌 0

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

04.01.2025 00:41 — 👍 1    🔁 0    💬 1    📌 0

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

04.01.2025 00:27 — 👍 1    🔁 0    💬 1    📌 0

$ 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?

04.01.2025 00:15 — 👍 1    🔁 0    💬 1    📌 0

@david.dev.retr0.id is following 1 prominent accounts