What are some features you'd want for your selfhosted #Blossom server?
A blossom app for my umbrel that I can put behind a cloudflare worker URL and post to! Also I would like to whitelist npubs so no one spams it ofc (not sure how blossom works)
I know I want a self hosted blossom server, but don’t know enough about what exactly it does to ask for features.
Well, the server will be the thing that accepts uploads and gets the images from wherever they are actually stored (either on disk, in a cloud storage, etc). But maybe the thing you want most atm is a tutorial for how to set up a selfhosted Blossom server? What I'm really asking would be what people want it to do besides supporting the Blossom protocol. E.g. npub blacklist/whitelist, rate limiting, filetype filters, account system & payments, etc.
npub whitelist, secure, low maintenance, preferably written in rust, should work behind a reverse proxy such as nginx, no big dependencies such as postgres/mysql
Got a VERY alpha software Blossom server impl going on here, written in rust: https://github.com/0xtrr/cherry-server. It probably has a bunch of bugs and is not tested well enough so nobody should use it yet. It currently has pubkey and mimetype filters and works behind nginx. Code is a mess and I've probably pulled in more deps than needed. Depends on a sqlite3 DB to keep track of file references and blob descriptors.
thank u !!! sounds great, a sqlite3 dependency is fine, it's not one of the "big databases" that need to run system-wide. i'll take a look at it tomorrow, i'm currently using a patched version of https://github.com/servuscms/servus for media.x0f.org, which works, but it's clearly not meant for this.
Happy to get more dev eyes on cherry-server! I'll happily accept patches or GitHub issues. I'm running Hzrd149's blossom-server software which has worked perfectly fine (written in TypeScript though): https://github.com/hzrd149/blossom-server. Not going to migrate over to cherry-server as my main until I'm sure I've gotten rid of most of the bugs.
i've just migrated mine (which only had a few blobs on it anyway) to cherry-server, seems to work great ! already filed some PRs for small things i came across
Nothing's like testing in production, right? Awesome, I'll check out the PRs soon!
hahahha, for now i'm the only user anyway so i'm fine with the risk 😅 i also appreciate that it's very little code, and the option to make the `list` endpoint authenticated is a nice touch, so i'm already more confident in it than i was with servus
If you need to test Blossom endpoints, I built a small CLI tool to generate auth events btw https://github.com/0xtrr/blossom-auth
What's a blossom server?
Good question! Blossom is simply put a protocol for storing and retrieving files. I guess you could think of it like imgur for all kinds of files mixed with some nostr functionality. If you're interested in the technical details, you can find the protocol documents here: https://github.com/hzrd149/blossom
Cool thanks!