An open source supporter broker powered by high-fives. high-five.atprotofans.com/
at main 72 lines 2.2 kB view raw view rendered
1# High Five 2 3Source: [tangled.org/atprotofans.com/high-five](https://tangled.org/atprotofans.com/high-five) 4 5A real-time high-five exchange app built on ATProtocol. Give and receive virtual high-fives that are permanently recorded as cryptographically-linked attestations in both participants' repositories. 6 7## Features 8 9- **Real-time interaction** - WebSocket-based room where users can see who's online and exchange high-fives instantly 10- **Decentralized attestations** - Each high-five creates linked records in both the giver's and recipient's ATProtocol repositories 11- **OAuth with DPoP** - Secure authentication using ATProtocol OAuth 2.0 with Demonstrating Proof of Possession 12- **Optional announcements** - Users can opt-in to post about their high-fives on Bluesky 13 14## Requirements 15 16- Go 1.21+ 17- Redis 18- ATProtocol account (Bluesky) 19 20## Configuration 21 22Environment variables: 23 24| Variable | Description | Default | 25|----------|-------------|---------| 26| `LISTEN_ADDR` | HTTP server address | `:8080` | 27| `REDIS_URL` | Redis connection URL | `redis://localhost:6379` | 28| `BASE_URL` | Public URL for OAuth callbacks | `http://localhost:8080` | 29| `TEMPLATE_DIR` | Path to templates directory | `templates` | 30| `BROKER_ID` | Bluesky handle for the broker account | (required) | 31| `BROKER_APP_PASSWORD` | App password for the broker account | (required) | 32| `DRY_RUN` | Set to `true` to skip record creation | `false` | 33 34## Build 35 36```bash 37go build -o high-five-app ./cmd/server 38``` 39 40## Run 41 42```bash 43export BROKER_ID="your-broker.bsky.social" 44export BROKER_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx" 45export BASE_URL="https://your-domain.com" 46 47./high-five-app 48``` 49 50## Docker 51 52```bash 53docker build -t high-five-app . 54 55docker run -p 8080:8080 \ 56 -e REDIS_URL="redis://host.docker.internal:6379" \ 57 -e BASE_URL="https://your-domain.com" \ 58 -e BROKER_ID="your-broker.bsky.social" \ 59 -e BROKER_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx" \ 60 high-five-app 61``` 62 63## Lexicons 64 65This app uses custom lexicons under `com.atprotofans.high-five`: 66 67- `com.atprotofans.high-five.highFive` - Main record created in the giver's repository 68- `com.atprotofans.high-five.highFiveProof` - Proof record created in the recipient's repository 69 70## License 71 72MIT