Low-latency AT Protocol interaction indexer.
20

Configure Feed

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

ci: init

Aly Raffauf (Jul 3, 2026, 7:17 PM EDT) 4adbdd87 05c48e2e

+107 -1
+9
.dockerignore
··· 1 + .git 2 + .github 3 + .gocache 4 + *.db 5 + *.db-shm 6 + *.db-wal 7 + .DS_Store 8 + README.md 9 + LICENSE.md
+24
.github/workflows/ci.yml
··· 1 + name: CI 2 + 3 + on: 4 + push: 5 + branches: [master] 6 + pull_request: 7 + 8 + jobs: 9 + build: 10 + runs-on: ubuntu-latest 11 + steps: 12 + - uses: actions/checkout@v4 13 + 14 + - uses: actions/setup-go@v5 15 + with: 16 + go-version: "1.26.4" 17 + 18 + - run: go build ./... 19 + - run: go vet ./... 20 + - run: go test ./... 21 + 22 + - name: gofmt check 23 + run: | 24 + diff -u <(echo -n) <(gofmt -l .)
+41
.github/workflows/docker.yml
··· 1 + name: Docker 2 + 3 + on: 4 + push: 5 + branches: [master] 6 + tags: ["v*"] 7 + 8 + jobs: 9 + build-and-push: 10 + runs-on: ubuntu-latest 11 + permissions: 12 + contents: read 13 + packages: write 14 + steps: 15 + - uses: actions/checkout@v4 16 + 17 + - uses: docker/setup-buildx-action@v3 18 + 19 + - uses: docker/login-action@v3 20 + with: 21 + registry: ghcr.io 22 + username: ${{ github.actor }} 23 + password: ${{ secrets.GITHUB_TOKEN }} 24 + 25 + - uses: docker/metadata-action@v5 26 + id: meta 27 + with: 28 + images: ghcr.io/${{ github.repository }} 29 + tags: | 30 + type=raw,value=latest,enable={{is_default_branch}} 31 + type=semver,pattern={{version}} 32 + type=sha,prefix= 33 + 34 + - uses: docker/build-push-action@v6 35 + with: 36 + context: . 37 + push: true 38 + tags: ${{ steps.meta.outputs.tags }} 39 + labels: ${{ steps.meta.outputs.labels }} 40 + cache-from: type=gha 41 + cache-to: type=gha,mode=max
+15
Dockerfile
··· 1 + FROM golang:1.26.4 AS build 2 + 3 + WORKDIR /src 4 + 5 + COPY go.mod go.sum ./ 6 + RUN go mod download 7 + 8 + COPY . . 9 + RUN CGO_ENABLED=0 go build -trimpath -o /asterism ./cmd/asterism 10 + 11 + FROM gcr.io/distroless/static-debian12 12 + 13 + COPY --from=build /asterism /asterism 14 + 15 + ENTRYPOINT ["/asterism"]
+18 -1
README.md
··· 69 69 go run ./cmd/asterism/ 70 70 ``` 71 71 72 + ### Docker 73 + 74 + A container image is published to `ghcr.io/alyraffauf/asterism` on every push to `master` and on tagged releases. The image is built `FROM gcr.io/distroless/static-debian12` — Asterism has no C dependencies (its SQLite driver is pure Go), so the final image is a single static binary plus CA certificates, nothing else. 75 + 76 + ```bash 77 + docker run -d \ 78 + -p 8081:8081 \ 79 + -v asterism-data:/data \ 80 + -e ASTERISM_DATABASE=/data/asterism.db \ 81 + -e ASTERISM_COLLECTIONS=sh.tangled.graph.follow,sh.tangled.repo.issue \ 82 + -e ASTERISM_BACKFILL=true \ 83 + ghcr.io/alyraffauf/asterism:latest 84 + ``` 85 + 86 + To build locally instead: `docker build -t asterism .` 87 + 72 88 ## API 73 89 74 90 Asterism implements all five current endpoints from the [microcosm links XRPC namespace](https://constellation.microcosm.blue/) (the older `/links/*` REST endpoints are deprecated upstream in favor of these and aren't implemented here): ··· 158 174 - [x] Account deletion handling 159 175 - [ ] Account deactivation handling 160 176 - [x] Graceful shutdown and Firehose reconnect 177 + - [x] CI + Dockerfile 161 178 162 179 **Medium term** 163 180 ··· 168 185 169 186 **Longer term** 170 187 171 - - [ ] Deployment guides (Docker, single-binary production setup) 188 + - [ ] Deployment guides + Docker Compose + Helm Chart 172 189 - [ ] Pluggable storage backends for larger indexes 173 190 - [ ] Horizontal read scaling 174 191