pyramid serves as a wondrous furnace of communityzenship for your Nostr experience, enabling users to build and nurture vibrant communities through a hierarchical relay system. With powerful subrelay features, extensive optional configurations, and easy theming options, pyramid makes it effortless to create and manage personalized Nostr environments tailored to your personal or community's needs.
type this in a blank server you just rented:
curl -s https://raw.githubusercontent.com/fiatjaf/pyramid/refs/heads/master/easy.sh | bash
- easy install
- a single-line install setup and no need to fiddle with configuration files
- if you can buy VPS access you can setup one of these
- lean resource usage, because this is not javascript, cheap servers will go very far
- hierarchical membership system
- members can invite other members, up to a configurable number of invites
- every member is responsible by all its children and descendants, and can decide to kick them out anytime
- a log of invites and drops is kept for rebuilding state and clarifying confusions
- a member can be invited by more than one parent at the same time, safeguarding them from despotic future drops
- a self-organizing system that can scale relay membership to thousands
- anyone can leave anytime, breaking their links in the ladder
- adding and dropping can be done through the web UI or using standard relay management tools
- two-step standardized invite codes interface combined with event-based join requests also works
- custom-featured multi-relays
- each relay listens in its own HTTP path and can be treated as completely independent
- some are useful for members, others are useful for externals, others are like services an inner group of a community can provide to its external members
- storage is shared in a single memory-mapped file for very fast access and automatic disk-saving deduplication, but indexes are independent so there is no risk of mixing events
- main: the basic pyramid relay functionality
- listens at the top-level path
- only members can publish
- also accepts zaps issued by relay members even though these are signed by zapper services
- internal: a relay private to members of the hierarchy, both for reading and for writing
- favorites: notes from external users manually curated by relay members through republishing chosen events
- inbox: a safe inbox with protection against hellthreads and spam, with
- filtering out anyone outside the extended (2-level) social graph of relay members
- custom bans invalidate specific users and their social graph
- optional proof-of-work requirements
- popular: notes from external users automatically curated by relay members based on reactions and interactions
- uppermost: only the notes most loved by a higher percentage of relay members
- moderated: a multi-use relay open to the public, but for which pyramid members have to approve each post manually
- groups: a relay that also listens at the top-level path, but provides moderated group functionality
- members can create groups and they become admins of such groups
- non-pyramid members can join these groups, provided that their admins allow
- groups can be private, in which case messages will only be shown to members of each group
- invite code functionality also supported
- pyramid root admin can see all the groups and moderate them
- each relay listens in its own HTTP path and can be treated as completely independent
- extensive optional configurations
- almost everything is configurable from the UI
- from relay metadata to numeric settings, for both the main relay and for all sub-relays
- event the path under which each sub-relay listens can be (dangerously) changed
- smart defaults allow you to get started easily and learn later
- some settings can be configured using standard relay management tools
- everything kept in a JSON file that can be edited manually
- easy theming options
- default looks with dark/light toggle by default
- but as the relay owner you can opt out of that and pick some crazy colors
- theme colors are forced upon whoever is visiting the webpages
- paywall functionality
- a special hashtag, amount (in satoshis) and period (in days) can be configured
- notes published by members with the
"-"tag and the special hashtag are marked as "paid" - these notes will only be shown to viewers who have zapped the specific member at least the specified amount in the past specified days
- normal zaps and nutzaps supported, sourced from the inbox relay


