FROM golang:1.26-alpine AS builder WORKDIR /src COPY go.mod ./ COPY . . RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o /out/paw-toolbox . FROM alpine:3.24 RUN apk add --no-cache ca-certificates tzdata openssl && addgroup -S paw && adduser -S -G paw paw WORKDIR /app COPY --from=builder /out/paw-toolbox /app/paw-toolbox COPY apps.json /data/apps.json RUN mkdir -p /data/files && chown -R paw:paw /data USER paw ENV ADDR=":8080" \ SERVER_MODE="http" \ APPS_JSON="/data/apps.json" \ DATA_DIR="/data" \ CLIPBOARD_DATA="/data/clipboard.json" \ MAX_PER_ROOM="200" \ CLIPBOARD_PERSIST_SECRETS="false" \ FILE_MAX_BYTES="268435456" \ AUTH_USER="" \ AUTH_PASS="" EXPOSE 8080 8443 ENTRYPOINT ["/app/paw-toolbox"]