AuthorBot commited on
Commit
9ca7e7f
Β·
1 Parent(s): b38f95c

Add root Dockerfile and HF metadata to README

Browse files
Files changed (2) hide show
  1. Dockerfile +52 -0
  2. README.md +10 -0
Dockerfile ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ============================================================
2
+ # AuthorBot RAG API β€” Root Dockerfile for HuggingFace Spaces
3
+ # ============================================================
4
+ FROM python:3.11-slim AS builder
5
+
6
+ RUN apt-get update && apt-get install -y --no-install-recommends \
7
+ build-essential \
8
+ libpq-dev \
9
+ curl \
10
+ git \
11
+ && rm -rf /var/lib/apt/lists/*
12
+
13
+ WORKDIR /app
14
+
15
+ # Copy and install Python dependencies from backend directory
16
+ COPY backend/requirements.txt .
17
+ RUN pip install --no-cache-dir --upgrade pip && \
18
+ pip install --no-cache-dir -r requirements.txt
19
+
20
+ # ── Production Stage ──────────────────────────────────────────
21
+ FROM python:3.11-slim
22
+
23
+ RUN apt-get update && apt-get install -y --no-install-recommends \
24
+ libpq5 \
25
+ curl \
26
+ && rm -rf /var/lib/apt/lists/*
27
+
28
+ WORKDIR /app
29
+
30
+ COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
31
+ COPY --from=builder /usr/local/bin /usr/local/bin
32
+
33
+ # Copy ONLY backend application code to /app
34
+ COPY backend /app
35
+
36
+ RUN mkdir -p /app/uploads /app/data/chroma /app/data/geo /app/logs
37
+
38
+ # HuggingFace Spaces: run as non-root user (uid 1000)
39
+ RUN adduser --disabled-password --gecos "" --uid 1000 appuser && \
40
+ chown -R appuser:appuser /app
41
+ USER appuser
42
+
43
+ # Pre-download models
44
+ RUN python -c "from sentence_transformers import CrossEncoder; CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')" || true
45
+ RUN python -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')" || true
46
+
47
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
48
+ CMD curl -f http://localhost:8080/health || exit 1
49
+
50
+ EXPOSE 8080
51
+
52
+ CMD ["sh", "-c", "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8080 --workers 2 --loop uvloop --http httptools"]
README.md CHANGED
@@ -1,3 +1,13 @@
 
 
 
 
 
 
 
 
 
 
1
  # AuthorBot RAG Chatbot SaaS
2
  ### Production-grade AI book advisor for author websites
3
 
 
1
+ ---
2
+ title: AuthorBot RAG
3
+ emoji: πŸ“š
4
+ colorFrom: indigo
5
+ colorTo: purple
6
+ sdk: docker
7
+ pinned: false
8
+ app_port: 8080
9
+ ---
10
+
11
  # AuthorBot RAG Chatbot SaaS
12
  ### Production-grade AI book advisor for author websites
13