hornet-storage

module
v0.0.0-...-9146c5d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2026 License: MIT

README ΒΆ

nostr Badge Go Badge

H.O.R.N.E.T Storage Nostr Relay 🐝

Unleashing the power of Nostr with a configurable all-in-one relay supporting unchunked files as Blossom Blobs, chunked files as Scionic Merkle Trees, and various social media features as Nostr kind numbers.

Choose Kind Numbers and File Extensions

Relay operators can select which file types and nostr features to enable in the H.O.R.N.E.T Storage Relay Panel with elegant GUI toggles, displayed alongside diagrams and graphs to visualize the amount of data hosted over time.

17 Supported Nostr Features (NIPs)

βœ… - Implemented: Features that are currently available and fully operational. ⚠️ - In-Progress: Features that are currently under development and not yet released.

NIP Number NIP Description Kind Number Description
NIP-01 Basic Nostr Protocol kind0 β†’ User Metadata βœ…

kind1 β†’ Short Text Post [Immutable] βœ…
NIP-02 Following List kind3 β†’ List of Users You Follow βœ…
NIP-05 Mapping Nostr Address to DNS No Specific Kinds Listed βœ…
NIP-09 Delete Note kind5 β†’ Delete Request βœ…
NIP-11 Relay Info Document No Specific Kinds Listed βœ…
NIP-18 Reposts kind6 β†’ Repost of Kind1 Notes βœ…

kind16 β†’ Repost of All Other Kind Notes βœ…
NIP-23 Formatted Articles kind30023 β†’ Markdown Post [Updatable] βœ…
NIP-25 Reactions kind7 β†’ Like, Heart, or Custom Reaction βœ…
NIP-45 Counting Followers & more... No Specific Kinds Listed βœ…
NIP-50 Search Capability No Specific Kinds Listed βœ…
NIP-51 Custom Lists kind10000 β†’ Mute List βœ…

kind10001 β†’ Pinned Note βœ…

kindxxxx β†’ Private Follow List [Encrypted] ⚠️

kindxxxx β†’ Private Bookmark [Encrypted] ⚠️

kind30000 β†’ Public Follow List [Unencrypted] βœ…
NIP-56 Reporting kind1984 β†’ Report a User, Post, or Relay βœ…
NIP-57 Lightning Zaps kind9735 β†’ Lightning Zap Receipt βœ…
NIP-58 Badges kind8 β†’ Badge Award βœ…

kind30008 β†’ Profile Badge βœ…

kind30009 β†’ Badge Definition βœ…
NIP-65 Propagate Tiny Relay Lists kind10002 β†’ Tiny Relay List [Outbox Model] βœ…
NIP-84 Highlights kind9802 β†’ Snippet of a Post or Article βœ…
NIP-116 Event Paths kind30079 β†’ Paths Instead of Kind Numbers βœ…

βš™οΈ Developer Requirements & Build Instructions

πŸ“¦ System Requirements

To build and run HORNETS-Nostr-Relay from source, ensure the following tools are installed:

βœ… Go 1.22+ Official Go programming language environment. Download from: https://golang.org/dl/

βœ… GCC (GNU Compiler Collection) Required for building C-based dependencies via cgo.


If On Linux or Debian Then Run:
sudo apt update
sudo apt install build-essential
If On macOS Then Run:
xcode-select --install
If On Windows Then Run:

Recommended: MSYS2

pacman -S base-devel gcc

Alternatively: MinGW-w64


πŸš€ QUICK SETUP: Building Relay with Panel (Production Mode)

After cloning the repository,

git clone https://github.com/HORNET-Storage/HORNETS-Nostr-Relay.git
cd HORNETS-Nostr-Relay

Optional: To change the server port, copy and edit config.example.yaml before building:

cp config.example.yaml config.yaml
# Edit config.yaml and change the port value under server:
On Linux or macOS:

Run this script found in the main directory:

./build-panel.sh
On Windows:

Run this script found in the main directory:

.\build-panel.bat

The compiled binary (hornet-storage or hornet-storage.exe) will be created in the project root directory.

πŸ“Œ Port Info: The web panel runs on base port +2. The default base port is 11000, so the panel will be at http://localhost:11002. (Base port can be changed by renaming config.example.yaml to config.yaml before building, or by editing the auto-generated config.yaml after the first build.)


πŸš€ Building Relay with Panel (Hot Reload Dev Mode)

Use this mode when modifying the panel source code in /panel-source.

After cloning the repository,

git clone https://github.com/HORNET-Storage/HORNETS-Nostr-Relay.git
cd HORNETS-Nostr-Relay

Optional: To change the server port, copy and edit config.example.yaml before building:

cp config.example.yaml config.yaml
# Edit config.yaml and change the port value under server:
On Linux or macOS:

Run this script found in the main directory:

./build-panel-devmode.sh
On Windows:

Run this script found in the main directory:

.\build-panel-devmode.bat

The compiled binary (hornet-storage or hornet-storage.exe) will be created in the project root directory.

πŸ“Œ Port Info: In dev mode, the React dev server runs on base port +3. The default base port is 11000, so access the panel at http://localhost:11003. (Base port can be changed by renaming config.example.yaml to config.yaml before building, or by editing the auto-generated config.yaml after the first build.)


πŸš€ Building Relay without Panel

After cloning the repository,

git clone https://github.com/HORNET-Storage/HORNETS-Nostr-Relay.git
cd HORNETS-Nostr-Relay
If On Linux or macOS Then Run:

Run this script found in the main directory:

./build.sh
If On Windows Then Run:

Run this script found in the main directory:

.\build.bat

The compiled binary (hornet-storage or hornet-storage.exe) will be created in the project root directory.


πŸ”‘ Configuration Setup

On first run the relay will automatically generate a config.yaml with a default configuration and a new private key which makes getting started nice and easy.

There are also example configs included for specific situations. The config.example.dev has all content moderation disabled and allows all kinds and users with no restrictions.

You can copy and rename manually or use the following if you wish to use any of the example configurations.

Bash
cp config.example.dev.yaml config.yaml
Powershell
copy config.example.dev.yaml config.yaml

If copying an example config make sure to update the private key.

Set the private_key field to a valid Nostr private key in either nsec bech32 format or hexadecimal format. This key identifies your relay on the Nostr network and is required for operation.

Additional Services

The relay is designed to run with optional services along side it and those can be found here:

Super Neutrino Wallet

  • Paid relay features using a bitcoin wallet

NestShield

  • Content moderation using python

Ollama

  • More advanced and resource intensive content moderation

Disclaimer

WARNING: Relay is still being developed and is not ready for production use yet. More details will be provided soon.

Directories ΒΆ

Path Synopsis
lib
types
Analytics and statistics types
Analytics and statistics types
web
services
server/demo command
server/port command
test
get_devices command
test_apns command
testing
helpers
Package helpers provides utilities for integration testing the HORNETS relay
Package helpers provides utilities for integration testing the HORNETS relay

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL