repos
/ analytics-django master

analytics-django

mirror archived upstream

Self-hostable website analytics on Django: a straightforward collector API, dashboards, a world map, and PDF reports.

analyticsdjangodockerhandcodedpythonself-hostedsqliteviteweb-analytics

797 B · 32 lines · Docker Raw History
 1FROM alpine:3.21
 2
 3ENV LANG="C.UTF-8" \
 4    PYTHONUNBUFFERED=1
 5
 6COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/
 7COPY --from=oven/bun:alpine /usr/local/bin/bun /usr/local/bin/bun
 8
 9RUN apk add --update --no-cache \
10      python3 py3-pip \
11      chromium libstdc++ nss harfbuzz freetype \
12      font-noto font-noto-extra font-noto-emoji
13
14WORKDIR /app
15
16COPY pyproject.toml uv.lock package.json bun.lock /app/
17RUN bun install --frozen-lockfile && \
18    uv sync --frozen --no-dev
19
20COPY . .
21
22ENV PATH="/app/.venv/bin:/app/node_modules/.bin:$PATH"
23
24RUN bun run build && \
25    bun run build:maps && \
26    uv run python manage.py collectstatic --noinput
27
28RUN addgroup -S -g 1000 app && \
29    adduser -S -h /app -s /sbin/nologin -u 1000 -G app app && \
30    chown -R app:app /app
31USER app:app