slack status without the slack status.zzstoatzz.io
hatk statusphere
0
fork

Configure Feed

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

chore: use pre-built quickslice image instead of building from source

fixes oauth token refresh issue by upgrading to v0.17.4+
simplifies deployment by pulling ghcr.io/bigmoves/quickslice:latest directly

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

zzstoatzz 4c065fb8 473a46a7

+1 -82
-81
Dockerfile
··· 1 - # Building from source because ghcr.io/bigmoves/quickslice:latest still points 2 - # to v0.17.2, which lacks the `sub` claim fix needed for OAuth token response. 3 - # Once :latest is updated to v0.17.3+, this can be simplified to: 4 - # FROM ghcr.io/bigmoves/quickslice:latest 5 - # 6 - # This Dockerfile is adapted from https://github.com/bigmoves/quickslice/blob/main/Dockerfile 7 - 8 - ARG GLEAM_VERSION=v1.13.0 9 - 10 - # Build stage - compile the application 11 - FROM ghcr.io/gleam-lang/gleam:${GLEAM_VERSION}-erlang-alpine AS builder 12 - 13 - # Install build dependencies (including PostgreSQL client for multi-database support) 14 - RUN apk add --no-cache \ 15 - bash \ 16 - git \ 17 - nodejs \ 18 - npm \ 19 - build-base \ 20 - sqlite-dev \ 21 - postgresql-dev 22 - 23 - # Configure git for non-interactive use 24 - ENV GIT_TERMINAL_PROMPT=0 25 - 26 - # Clone quickslice at the v0.17.3 tag (includes sub claim fix) 27 - RUN git clone --depth 1 --branch v0.17.3 https://github.com/bigmoves/quickslice.git /build 28 - 29 - # Install dependencies for all projects 30 - RUN cd /build/client && gleam deps download 31 - RUN cd /build/lexicon_graphql && gleam deps download 32 - RUN cd /build/server && gleam deps download 33 - 34 - # Apply patches to dependencies 35 - RUN cd /build && patch -p1 < patches/mist-websocket-protocol.patch 36 - 37 - # Install JavaScript dependencies for client 38 - RUN cd /build/client && npm install 39 - 40 - # Compile the client code and output to server's static directory 41 - RUN cd /build/client \ 42 - && gleam add --dev lustre_dev_tools \ 43 - && gleam run -m lustre/dev build quickslice_client --minify --outdir=/build/server/priv/static 44 - 45 - # Compile the server code 46 - RUN cd /build/server \ 47 - && gleam export erlang-shipment 48 - 49 - # Runtime stage - slim image with only what's needed to run 50 - FROM ghcr.io/gleam-lang/gleam:${GLEAM_VERSION}-erlang-alpine 51 - 52 - # Install runtime dependencies and dbmate for migrations 53 - ARG TARGETARCH 54 - RUN apk add --no-cache sqlite-libs sqlite libpq curl \ 55 - && DBMATE_ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "arm64" || echo "amd64") \ 56 - && curl -fsSL -o /usr/local/bin/dbmate https://github.com/amacneil/dbmate/releases/latest/download/dbmate-linux-${DBMATE_ARCH} \ 57 - && chmod +x /usr/local/bin/dbmate 58 - 59 - # Copy the compiled server code from the builder stage 60 - COPY --from=builder /build/server/build/erlang-shipment /app 61 - 62 - # Copy database migrations and config 63 - COPY --from=builder /build/server/db /app/db 64 - COPY --from=builder /build/server/.dbmate.yml /app/.dbmate.yml 65 - COPY --from=builder /build/server/docker-entrypoint.sh /app/docker-entrypoint.sh 66 - 67 - # Set up the entrypoint 68 - WORKDIR /app 69 - 70 - # Create the data directory for the SQLite database and Fly.io volume mount 71 - RUN mkdir -p /data && chmod 755 /data 72 - 73 - # Set environment variables 74 - ENV HOST=0.0.0.0 75 - ENV PORT=8080 76 - 77 - # Expose the port the server will run on 78 - EXPOSE $PORT 79 - 80 - # Run the server 81 - CMD ["/app/docker-entrypoint.sh", "run"]
+1 -1
fly.toml
··· 7 7 primary_region = 'ewr' 8 8 9 9 [build] 10 - dockerfile = 'Dockerfile' 10 + image = 'ghcr.io/bigmoves/quickslice:latest' 11 11 12 12 [env] 13 13 DATABASE_URL = 'sqlite:/data/quickslice.db'