habitat

module
v0.0.1-testing-...-468f6c4 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2026 License: Apache-2.0

README

Habitat

⚠️ This repository is under active development and may introduce breaking changes. Please reach out on Bluesky @habitat.network for up-to-date information and any usage questions. ⚠️

Environment Setup

All external tools are managed by proto which installs the correct versions declared in .prototools. To get setup, run:

bash <(curl -fsSL https://moonrepo.dev/install/proto.sh)
proto install
Moonrepo

We use moonrepo to manage our monorepo. A crash course is available in .moon/README.md.

Local Development

moon :dev tasks read environment variables from dev.env which is gitignored.

Ngrok

We use ngrok to make pear reachable from the public internet to support flows like PDS OAuth. Sign up for ngrok and follow the instructions at https://dashboard.ngrok.com/get-started/setup. Set NGROK_DOMAIN in dev.env to the dev domain ngrok assigns you.

Running Habitat frontend

The following command will spin up the primary frontend and backend services:

moon frontend:dev

Directories

Path Synopsis
api
cmd
pwtool command
Command pwtool is a manual debugging helper for the argon2id password hashing used by internal/org.
Command pwtool is a manual debugging helper for the argon2id password hashing used by internal/org.
lexgen module
pear module
internal
db
db/testutil
Package testutil provides helpers for creating throwaway databases in tests.
Package testutil provides helpers for creating throwaway databases in tests.
log
notify
Package notify persists syncer registrations (network.habitat.space.registerNotify) and delivers notifyWrite events to the registered endpoints when a repo in a space advances, per the permissioned-data sync proposal.
Package notify persists syncer registrations (network.habitat.space.registerNotify) and delivers notifyWrite events to the registered endpoints when a repo in a space advances, per the permissioned-data sync proposal.
oauthserver
Package oauthserver provides an OAuth 2.0 authorization server implementation that initiates a confidential client atproto OAuth flow
Package oauthserver provides an OAuth 2.0 authorization server implementation that initiates a confidential client atproto OAuth flow
org
p2p
relationship
Package relationship implements app-managed ReBAC over spaces.
Package relationship implements app-managed ReBAC over spaces.
spacecommit
Package spacecommit implements the atproto permissioned-data proposal's repo hashing (LtHash) and signed commits.
Package spacecommit implements the atproto permissioned-data proposal's repo hashing (LtHash) and signed commits.
webui
Package webui serves the pre-rendered pear-pages UI (member login and instance admin pages) that pear embeds and serves under the /ui/ path.
Package webui serves the pre-rendered pear-pages UI (member login and instance admin pages) that pear embeds and serves under the /ui/ path.
pkg
sap
Package sap implements the Sync Agent Process for Habitat.
Package sap implements the Sync Agent Process for Habitat.

Jump to

Keyboard shortcuts

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