FROM docker.io/golang:1.22-alpine3.20 AS builder RUN echo "ntfy:x:2222:2222:Linux User,,,:/:/ntfy" > /passwd RUN mkdir -p /data/attachments RUN apk --no-cache add \ git \ make \ musl-dev \ gcc \ npm ENV VERSION=v2.11.0 RUN git clone https://github.com/binwiederhier/ntfy.git WORKDIR /go/ntfy RUN git checkout "$VERSION" ENV CGO_CFLAGS="-D_LARGEFILE64_SOURCE" RUN make web RUN make web-build RUN make cli-linux-server FROM scratch COPY --from=builder /passwd /etc/passwd COPY --from=builder --chown=2222:2222 /data /data COPY --from=builder /go/ntfy/dist/ntfy_linux_server/ntfy /ntfy USER ntfy ENV NTFY_LISTEN_HTTP=:8080 ENV NTFY_CACHE_FILE=/data/cache.db ENV NTFY_ATTACHMENT_CACHE_DIR=/data/attachments ENV NTFY_AUTH_FILE=/data/user.db ENV NTFY_ENABLE_LOGIN=true CMD ["/ntfy", "serve", "-debug", "--trace"]