Monorepo for Tangled
Something went wrong. Try again.
1.6 kB · 57 lines
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758# Development only. Not for production use.
FROM golang:1.25-alpine
RUN apk add --no-cache git build-base sqlite-dev tini sqlite-libs ca-certificates
# air for live-reloadRUN go install github.com/air-verse/air@v1.65.1 && \ mv /go/bin/air /usr/local/bin/air
# goat for generating OAuth client key (moved out of indigo)RUN go install github.com/bluesky-social/goat@v0.2.3 && \ mv /go/bin/goat /usr/local/bin/goat
ENV CGO_ENABLED=1ENV GOCACHE=/go/cacheENV GOMODCACHE=/go/mod
# Generates OAuth client key on first run. Persists to appview-data so re-runs# reuse the same key. Mirrors flake.nix:221-222.COPY <<'EOF' /usr/local/bin/appview-entrypoint.sh#!/bin/shset -eu
SECRET=/var/lib/appview/oauth-secretKID=/var/lib/appview/oauth-kid
if [ ! -s "$SECRET" ]; then mkdir -p /var/lib/appview goat key generate -t P-256 \ | grep -A1 'Secret Key' | tail -n1 | awk '{print $1}' \ > "$SECRET" date +%s > "$KID" echo "[oauth] generated kid=$(cat $KID)"fi
export TANGLED_OAUTH_CLIENT_SECRET="$(cat $SECRET)"export TANGLED_OAUTH_CLIENT_KID="$(cat $KID)"
# Pulled in from init-accounts via /shared (mounted ro).[ -r /shared/label-defaults ] && export TANGLED_LABEL_DEFAULTS="$(cat /shared/label-defaults)"[ -r /shared/label-gfi ] && export TANGLED_LABEL_GFI="$(cat /shared/label-gfi)"
if [ -f /usr/local/share/ca-certificates/caddy.crt ]; then update-ca-certificatesfi
exec air -c /src/.air/appview.tomlEOFRUN chmod +x /usr/local/bin/appview-entrypoint.sh
WORKDIR /src
EXPOSE 3000
ENTRYPOINT ["/sbin/tini", "--"]CMD ["/usr/local/bin/appview-entrypoint.sh"]