The social RSS reader. Built on AT Protocol.
glean.at
1FROM golang:1.26-alpine AS builder
2
3RUN apk add --no-cache gcc musl-dev nodejs npm && \
4 npm install -g bun
5
6WORKDIR /src
7COPY go.mod go.sum ./
8RUN go mod download
9
10COPY package.json bun.lock ./
11RUN bun install --frozen-lockfile
12
13COPY . .
14RUN bunx tailwindcss -i ./static/input.css -o ./static/output.css --minify
15
16RUN --mount=type=cache,target=/root/.cache/go-build \
17 CGO_CFLAGS="-I/src/internal/db/include -I$(go env GOMODCACHE)/github.com/mattn/go-sqlite3@$(grep 'mattn/go-sqlite3' go.mod | awk '{print $2}') -Du_int8_t=uint8_t -Du_int16_t=uint16_t -Du_int64_t=uint64_t" \
18 CGO_ENABLED=1 go build -tags fts5 -ldflags="-s -w" -o /glean .
19
20FROM alpine:3.21
21
22RUN apk add --no-cache ca-certificates
23
24COPY --from=builder /glean /usr/local/bin/glean
25
26EXPOSE 8080
27ENTRYPOINT ["glean"]