File size: 1,595 Bytes
6ff91d6
 
 
 
 
 
 
 
 
b7d5e1e
 
 
58ef86c
 
6ff91d6
58ef86c
 
 
 
 
6ff91d6
 
2c11dc3
 
 
 
 
 
6ff91d6
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Hugging Face Space (Docker SDK). PORT is set by the platform (default 7860).
# Bump this comment to force a no-cache rebuild when Hub serves stale static assets or README Space config.
FROM python:3.12-slim-bookworm

WORKDIR /app
ENV PYTHONUNBUFFERED=1
ENV PYTHONPATH=/app
ENV KINK_STORE_PATH=/tmp/kink_store.db
ENV KINK_SEED_PATH=/app/deploy/hf/seed/hf_bundled_store.db
# Default: bundled seed in the image (fast boot, reliable on cpu-basic). For a full Hub catalog, set Space variables
# e.g. KINK_HF_REQUIRE_FULL_CATALOG=1, KINK_HF_DATASET_REPO=owner/dataset, KINK_HF_DATASET_FILENAME=store_slim.db, HF_TOKEN if private.
ENV KINK_HF_REQUIRE_FULL_CATALOG=0
# cpu-basic Spaces cap RAM at 16Gi; full PPR / similarity-graph warm often OOMs without this.
# Catalog is still built at boot. Override to 0 on larger hardware for full graph warm-up.
ENV KINK_SKIP_HEAVY_WARM=1
# Missing FetLife mirrors must serve the bundled JPEG placeholder (do not set KINK_MEDIA_STRICT on HF).
ENV KINK_MEDIA_STRICT=0
# Set only in this image; api.py treats missing /media tiles as placeholder-eligible even if a Space
# secret sets KINK_MEDIA_STRICT=1 or a bad KINK_MEDIA_FALLBACK_PATH (see _media_strict_missing).
ENV KINK_HF_SPACE_IMAGE=1

COPY . /app
RUN apt-get update \
    && apt-get install -y --no-install-recommends nodejs npm \
    && rm -rf /var/lib/apt/lists/* \
    && npm ci \
    && npm run build \
    && pip install --no-cache-dir pip setuptools wheel \
    && pip install --no-cache-dir . \
    && chmod +x /app/deploy/hf/entrypoint.sh

EXPOSE 7860
ENTRYPOINT ["/app/deploy/hf/entrypoint.sh"]