dev vouch dev on at. thats about it atvouch.dev
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

add README.md

Luna 51085cfe 3f79ab67

+99
+99
README.md
··· 1 + # atvouch 2 + 3 + *atvouch is a proof of concept atproto app to let developers vouch for each others' skill.* 4 + 5 + https://atvouch.dev 6 + 7 + ## how 8 + 9 + 1. two separate [tap](https://github.com/bluesky-social/indigo/tree/main/cmd/tap) instances: 10 + atvouch needs a separate tap to be aware of all the prs being made in the world. 11 + can't use a singular tap because its just for atvouch records (so if someone never interacted 12 + with atvouch their pulls wont be tracked). 13 + 2. [elixir](https://elixir-lang.org/) and [go](https://go.dev/) for the appview/backend 14 + 3. [bun](https://bun.com/) for the frontend 15 + 16 + ### setup frontend 17 + 18 + ``` 19 + # prefer local-frontend if you want to do changes there 20 + make local-frontend 21 + 22 + # prod build (may need to edit OAUTH_BASE_URL for your usecase) 23 + make frontend 24 + 25 + # atvouch.dev (prod) is on wisp.place, deploy like this: 26 + cd frontend/ 27 + wispctl deploy -p dist/ -s atvouch.dev 28 + ``` 29 + 30 + ### setup appview 31 + 32 + first tap for atvouch records: 33 + ``` 34 + mkdir tap_atvouch 35 + export TAP_DATABASE_URL=sqlite:///data/tap.db 36 + export TAP_BIND=127.0.0.1:2480 37 + export TAP_LOG_LEVEL=info 38 + export TAP_FULL_NETWORK=false 39 + export TAP_SIGNAL_COLLECTION=dev.atvouch.graph.vouch 40 + export TAP_COLLECTION_FILTERS=dev.atvouch.graph.vouch,dev.atvouch.bot.membership 41 + export TAP_FIREHOSE_PARALLELISM=4 42 + export TAP_RESYNC_PARALLELISM=5 43 + export TAP_DISABLE_ACKS=false 44 + tap 45 + ``` 46 + 47 + then a second tap for tangled pull records: 48 + ``` 49 + mkdir tap_tangled 50 + export TAP_DATABASE_URL=sqlite:///data/tap.db 51 + export TAP_BIND=127.0.0.1:2481 52 + export TAP_LOG_LEVEL=info 53 + export TAP_FULL_NETWORK=false 54 + export TAP_SIGNAL_COLLECTION=sh.tangled.repo.pull 55 + export TAP_COLLECTION_FILTERS=sh.tangled.repo.pull 56 + export TAP_FIREHOSE_PARALLELISM=4 57 + export TAP_RESYNC_PARALLELISM=5 58 + export TAP_DISABLE_ACKS=false 59 + tap 60 + ``` 61 + 62 + build and run appview's auth component: 63 + ``` 64 + cd appview/auth 65 + go build -o atvouch-auth 66 + 67 + # on a server 68 + export ATVOUCH_ENDPOINT=https://api.atvouch.dev 69 + ./atvouch-auth 70 + ``` 71 + 72 + then build and run appview itself: 73 + ``` 74 + export PORT=6154 75 + export MIX_ENV=prod 76 + export ATVOUCH_DID=did:web:api.atvouch.dev 77 + export ATVOUCH_ENDPOINT=https://api.atvouch.dev 78 + export ATVOUCH_METRICS_TOKEN=abcdef # sync this with a prometheus to do bearer auth 79 + export ATVOUCH_DB_PATH="data/atvouch_prod.db" 80 + export TAP_URI="ws://localhost:2480/channel" 81 + export TAP_PASSWORD="123" 82 + export TAP_TANGLED_URI="ws://localhost:2481/channel" 83 + export TAP_TANGLED_PASSWORD="123" 84 + export TANGLED_BOT_HANDLE="atvouch.dev" 85 + export TANGLED_BOT_PASSWORD="...." 86 + cd appview 87 + 88 + # download deps 89 + mix deps.get 90 + 91 + # migrate db 92 + mix ecto.create 93 + mix ecto.migrate 94 + 95 + # run server 96 + iex -S mix run 97 + ``` 98 + 99 + configuring nginx and tls is left as an exercise to the operator