Today, I'm introducing Hanami. Hanami is a Blossom server with a file manager UI making administration simple. It has npub whitelisting, usage quotas, encrypted file uploads, tons of settings, the ability to connect to private Blossom instances I call "Peers" through Tailscale, FIPS, and more.

This is meant for self-hosting so Umbrel and Start9 packages are incoming, but the repo has binaries for Linux, MacOS, and Windows (only Linux tested) and a public Docker image if you want to go that route. Plenty of documentation for every use case.

GitHub
GitHub - Letdown2491/hanami
Contribute to Letdown2491/hanami development by creating an account on GitHub.
Replies (35)
How do I download it? Never used github before. Which folder is it in?
Check in the releases section on the sidebar
πππ CC
@hzrd149 #SovEng
Thank you, sir
Amazing. Can't wait to give this a try.
Powerful stuff !
Thank you, sir.
How is one expected to sign events? (I haven't looked at the documentation yet, admittedly...)
what do you mean?
Cool stuff! Will download it soon and try
Keep in mind: I have very little clue about administering this kind of thing.
Can users use an nsec bunker or remote singer? Or, does this require direct nsec input?
I was dying to run my own blossom server so I deployed it to my Kubernetes cluster.
Signed in using my browser extension; signup itself works but listing my uploads stalls with this message:
> Connecting to your Nostr signer⦠your drive unlocks once it is ready.
Doesnβt seem to recover from that.
i just found a small issue with signing in via nip-07 and I should be able to get it corrected today. just want to make sure you are using nip-07 and not nip-46 to sign in?
i never do direct nsec. browser extension or bunker signer only. the android app will be nip-55 to start then also bunker after.
(I'm not expecting you to debug Kubernetes based deployments for me, donβt worry. Iβm using your latest Docker image. Maybe you just know what could be causing this. Can share my config via gist, if you want.)
You, sir, are a rad dude for that thank you. I'll have to check it out later.
NIP-07 confirmed. :wisp_salute:
Love the frontend btw!
no worries at all...working on the fix now, it's a signer polling issue. give me a little bit π
awesome
if you want to try 0.12.3 that should handle most of the nip-07 issues. Let me know if you have any other issues, but i'm going to do a full audit only on the signer workflow in the next few days.
Deploying. Will let you know!
Any interest in example Kubernetes manifests once it works? Could contribute it via PR. Might help out someone.
absolutely, i'm always open to PRs!
Still seeing "Connecting to your Nostr
signer...". The /list storm from before is gone though, that works now, Iβd say.
Inferred from behavior and logs: the browser polls /app/signer-status constantly plus but never sends a POST. That's a full L7 capture from Cilium, so it's everything reaching the pod. Logs show βappdata: encrypt
hanami/prefs ... browser signer not connected" after 4 attempts.
Ruled out on my end: reverse-proxy trust, ingress timeouts, stale sessions (deleted session.json, revoked
and re-granted in nos2x), and extension supports nip44.
Cilium uses Envoy for ingress/gateway stuff (external traffic into the cluster), TLS is terminated upstream.
Happy to open a proper issue with full logs and traces if that helps.
good info! putting this on my list.
Appreciated man. Will drop you some zaps once my GrapheneOS background issue is resolved and my wallet works with NWC again.
no need...bug reports and PRs are just as good π
Incredible, this is the type of blossom server I've been dreaming of building.
If this isn't packaged for Umbrel then you will have a PR coming shortly
Traveling the next few days but yes when I get back. Thank you, sir
Before I dig deeper into this and maybe even prep a PR:
What's the intended behaviour when I upload an image using any nostr client with my selfhosted hanami blossom server being my preferred media server? Where would the uploaded image show up? Should it generate a thumbnail? Would it be stored in Shared unter Library or just in Servers > my blossom server? What about Kinds > Images?
Apart from uploading, I also tried copying some of my uploaded media (which hanami autodiscovered) from other blossom servers and now Servers > my blossom server shows a (17) behind it - but only 1 image is being shown with no thumbnail.
Using nos2x extension and granted all permissions.
From a client it would show under unindexed until you add to drive, or perform any actions. From hanami it would go directly into the drive. The issues you're running into might be directly related to kubernetes because everything happens locally first before mirroring events and blobs to external servers and relays.
It was my mistake. I have two ingress-paths in my cluster; one for internal services, one for external. My own relay runs on the same cluster as hanami and was only serving traffic to external requests while cluster-internal requests couldn't even resolve the hostname of my relay. Now it's all sorted out, uploads work fine, file management works great.
I'm gonna stick with hanami for my blossom needs. Once I've settled on a sane setup I'll PR my Kubernetes manifests.
heck yeah, looking forward to it.