An event companion and onboarding experience for the ATmosphere (alpha) atmo.quest
6

Configure Feed

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

add litestream and certs to Dockerfile

authored by graham.systems and committed by

Tangled (May 28, 2026, 4:48 PM UTC) ffb17a18 704ed5d6

+30 -2
+4
.gitignore
··· 30 30 web/resources/static/libs/* 31 31 plans/* 32 32 33 + !fly.toml 34 + !.tangled/**/* 35 + 36 + !litestream.yml 33 37 34 38 # !Makefile 35 39
+7 -2
Dockerfile
··· 1 1 FROM docker.io/golang:1.26-alpine AS build 2 2 3 - RUN apk add --no-cache upx 3 + RUN apk add --no-cache upx ca-certificates 4 4 5 5 WORKDIR /src 6 6 COPY . ./ ··· 9 9 go build -ldflags="-s" -o /bin/main ./cmd/web 10 10 RUN upx -9 -k /bin/main 11 11 12 + FROM litestream/litestream:latest AS litestream 13 + 12 14 FROM scratch 13 15 ENV PORT=9001 16 + COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ 17 + COPY --from=litestream /usr/local/bin/litestream /usr/local/bin/litestream 18 + COPY litestream.yml /etc/litestream.yml 14 19 COPY --from=build /bin/main / 15 - ENTRYPOINT ["/main"] 20 + ENTRYPOINT ["/usr/local/bin/litestream", "replicate", "-exec", "/main"]
+8
README.md
··· 75 75 ```bash 76 76 docker build -t atmoquest:latest . 77 77 docker run --rm -p 8080:8080 \ 78 + -v atmoquest_data:/data \ 78 79 -e PUBLIC_URL=https://your.domain \ 79 80 -e SESSION_SECRET=$(openssl rand -hex 32) \ 80 81 -e ADMIN_SIGNING_KEY=$(openssl rand -base64 32) \ 82 + -e BUCKET_NAME=your-bucket \ 83 + -e AWS_ENDPOINT_URL_S3=https://your-s3-endpoint \ 84 + -e AWS_ACCESS_KEY_ID=… \ 85 + -e AWS_SECRET_ACCESS_KEY=… \ 86 + -e AWS_REGION=auto \ 81 87 atmoquest:latest 82 88 ``` 89 + 90 + The image bundles [Litestream](https://litestream.io) as its supervisor process: it watches `/data/atmoquest.db`'s WAL and streams changes to S3-compatible object storage. Replica config lives in [`litestream.yml`](litestream.yml) and reads bucket + credentials from the `BUCKET_NAME` / `AWS_*` env vars above. Litestream is required — without those vars set the container won't start. Mount a volume at `/data` so the database and the OAuth signing key (`/data/oauth_key.pem`) survive restarts. 83 91 84 92 ## Contributing 85 93
+11
litestream.yml
··· 1 + dbs: 2 + - path: /data/atmoquest.db 3 + replica: 4 + type: s3 5 + bucket: ${BUCKET_NAME} 6 + path: atmoquest 7 + endpoint: ${AWS_ENDPOINT_URL_S3} 8 + force-path-style: true 9 + access-key-id: ${AWS_ACCESS_KEY_ID} 10 + secret-access-key: ${AWS_SECRET_ACCESS_KEY} 11 + region: ${AWS_REGION}