An open source supporter broker powered by high-fives.
high-five.atprotofans.com/
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