Announcing Armada Stack

A full-stack implementation of the Concord Protocol that "just works"
Announcing Armada Stack

Armada Stack Promo

I’m pleased to announce the release of Armada Stack, an all-in-one solution created just for Armada. It’s built in Rust and provided as a single binary. It’s fast. It does everything.

It includes a Nostr relay backed by LMDB, optimized for Armada’s encryted traffic, and safeguarded with rate limits. It has LiveKit built in. It has encrypted media uploads built in. It has push notifications built in.

It has Tor built in and enabled by default, so your entire stack will be available as a .onion site.

Plus it manages its own SSL certificate, so you don’t even need a proxy in front of it. You will not suffer the horrors of HTTPS. All you have to do is point a domain at it, tell Armada the domain, and it will do the rest.

To install it, spin up a fresh VPS (Debian, Ubuntu, or Fedora recommended), then run the script:

curl -fsSL https://armada.buzz/install.sh | sudo sh

Enter your domain, and you’re good to go.

I’ve spent weeks refining this setup, but you are an early adopter. So if you experience any problems please let me know. Also, you may need to tinker with /etc/armada/armada.toml if you have your own proxy in front.

If that worked, then congrats! You’re now part of the Nostr network.

Your very own version of Armada is now stored on your own server. By default your version of the client will use your own relay and Blossom server, but i’tll keep using public relays too (for redundancy). You can configure that in armada.toml. I recommend configuring at least 3 relays (including your own), and 3 Blossom servers. You are also free to be isolationist and configure only your own relay.

Here’s what you get:

Nostr Relay

The built-in Nostr relay accepts only Concord-related kinds and does strict validation of all event kinds it supports. We try to reject as many non-encrypted events as possible except for the basics like kind 0 and 3. This is to prevent abuse and make self-hosting such a relay viable.

The relay stores events in an optimized binary format to conserve disk space. It’s heavily inspired by strfry and was developed alongside the new Ditto Relay.

Encrypted Uploads

All files are encrypted client-side by Armada. The server only sees opaque blobs. Armada’s Blossom server specifcally only accepts encrypted files. How does it know? It does a sniff test - if it looks like a jpeg or an mp4, it’s out. Only random-looking data is allowed. So you don’t have to worry about a DMCA takedown notice or other liability. You’re just serving encrypted garbage and you don’t know what any of it is.

Video and Voice

Armada Stack ships with LiveKit built in. There is not much more to say about it. When you start a call, it will go through your own server.

Tor

You get an onion! You get an onion! You get an onion! That’s right, it’s 2026 and you can just do things. You get Tor Arti baked in, which makes your entire stack (web UI, relay, Blossom, voice) available on a single .onion address. A key is generated for you automatically and stored in /var/lib/armada. Users of Tor Browser and Brave will see an onion button in their address bar they can click to access the site over Tor.

Push Notifications

A push gateway is built in, allowing users of your Armada to get Web Push notifications.

Automatic SSL

The server is built on Hyper in Rust, which performs even faster than Nginx in my benchmarks. So I made it serve on port 443 and handle automatic cert renewal. It does what Caddy does without needing Caddy while being significantly faster. If you want to serve multiple domains from the same host you’ll want to disable this. But if your server is dedicated to Armada, it will make setup extremely easy.

Privacy

Cookies are never used. IP addresses are never logged. Even if they were, there is no authentication, so nothing links your profile to your traffic. Use Tor for ultimate privacy - but even without it you get a lot of the benefits.

Automatic Updates

The script sets up a Debian repo or RedHat repo on your system depending on your distro. You can then apt upgrade or dnf upgrade to get the latest Armada Stack.

The frontend auto-updates when we deploy a new nsite on Nostr. You can disable that in armada.conf.

Manual Install

If you’d prefer to not run the script (or you use an unsupported distro), you can follow the install guide here to set things up manually: https://gitworkshop.dev/soapbox.pub/armada-stack/tree/main/INSTALL.md

Binary releases are available here: https://gitworkshop.dev/soapbox.pub/armada-stack/releases

Source code here: https://gitworkshop.dev/soapbox.pub/armada-stack


Write a comment