Skip to content

HORNET-Storage/HORNETS-Nostr-Relay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 (When Needing to Pull Latest)

After cloning the repository,

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

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.


🚀 Building Relay with Panel (Hot Reload Dev Mode If Modifying Panel In /panel-source)

After cloning the repository,

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

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.

⚠️ When Troubleshooting:

Make sure the port in the .env.development file for the relay's base URL matches the port that the relay is using inside of the config.yaml file.

Web panel is always served on that port +2, so if the relay is running on 9000 then the .env.development base url needs to point to 9002.


🚀 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.

About

Nostr Relay with Dashboard🌐 Choose Paid, Public or Invite-Only Mode👥 Self-Host Your Posts and Code📂

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7

Languages