Magazi is a content distribution platform that gates access to files using ATProtocol (Bluesky) identity and cryptographic proofs.
download.ngerakines.me/
atprotocol
appview
atprotocol-attestations
1# syntax=docker/dockerfile:1.4
2FROM rust:1.92-slim-bookworm AS builder
3
4RUN apt-get update && apt-get install -y \
5 pkg-config \
6 libssl-dev \
7 && rm -rf /var/lib/apt/lists/*
8
9WORKDIR /app
10COPY Cargo.toml build.rs ./
11
12ARG TEMPLATES=./templates
13ARG GIT_HASH=0
14ENV GIT_HASH=$GIT_HASH
15ENV TEMPLATES_PATH=$TEMPLATES
16
17COPY src ./src
18COPY ${TEMPLATES} ./templates
19COPY files ./files
20
21RUN cargo build --release --bin magazi
22
23FROM gcr.io/distroless/cc-debian12
24
25LABEL org.opencontainers.image.title="Magazi"
26LABEL org.opencontainers.image.description="A digital content store powered by ATProtocol OAuth."
27LABEL org.opencontainers.image.licenses="MIT"
28LABEL org.opencontainers.image.authors="Nick Gerakines <nick.gerakines@gmail.com>"
29LABEL org.opencontainers.image.source="https://tangled.sh/@ngerakines.me/magazi"
30LABEL org.opencontainers.image.version="0.1.0"
31
32WORKDIR /app
33COPY --from=builder /app/target/release/magazi /app/magazi
34COPY --from=builder /app/files ./files
35
36ENV HTTP_PORT=8080
37ENV FILES=/app/files
38ENV CATALOG=/app/files/catalog.json
39ENV RUST_LOG=info
40ENV RUST_BACKTRACE=full
41
42EXPOSE 8080
43
44ENTRYPOINT ["/app/magazi"]