Open-webui / Dockerfile
OpceanAI's picture
Update Dockerfile
9524d4d verified
# ============================================================
# Dockerfile: Open WebUI + Ollama — HuggingFace Space ready
# ============================================================
FROM ghcr.io/open-webui/open-webui:main
USER root
# ------------------------------------------------------------
# 1. Utilidades del sistema
# ------------------------------------------------------------
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates bash jq procps netcat-openbsd && \
rm -rf /var/lib/apt/lists/*
# ------------------------------------------------------------
# 2. Instala Ollama
# ------------------------------------------------------------
RUN curl -fsSL https://ollama.com/install.sh | sh
# ------------------------------------------------------------
# 3. Script de arranque
# ------------------------------------------------------------
COPY start-container.sh /start-container.sh
RUN chmod +x /start-container.sh
# ------------------------------------------------------------
# 4. Puerto — CRÍTICO: HF Spaces requiere el 7860
# ------------------------------------------------------------
ENV PORT="7860"
# ------------------------------------------------------------
# 5. Ollama
# ------------------------------------------------------------
ENV OLLAMA_BASE_URL="http://127.0.0.1:11434"
# API Key de ollama.com para modelos cloud — ponla como Secret en HF, nunca hardcodeada
ENV OLLAMA_API_KEY=""
# ------------------------------------------------------------
# 6. Modelos
# ------------------------------------------------------------
ENV OPENWEBUI_DEFAULT_MODEL="aguitachan3/yuuki-best:f32"
ENV OPENWEBUI_MODELS="aguitachan3/yuuki-best:f32,qwen3.5:397b-cloud,gpt-oss:120b-cloud,gemma3:27b-cloud,mistral-large-3:675b-cloud"
# ------------------------------------------------------------
# 7. Open WebUI — General
# ------------------------------------------------------------
ENV OPENWEBUI_BASE_URL="/"
ENV OPENWEBUI_LOCALE="en"
ENV OFFLINE_MODE="false"
ENV ENABLE_VERSION_UPDATE_CHECK="false"
# ------------------------------------------------------------
# 8. Auth — DEBE estar en true para que las imágenes funcionen
# Con false, los endpoints /profile/image devuelven 401 siempre
# ------------------------------------------------------------
ENV WEBUI_AUTH="true"
ENV WEBUI_SECRET_KEY="openwebui-default-secret-for-space"
# ------------------------------------------------------------
# 9. URL pública del Space — necesaria para cookies y CORS
# detrás del proxy de HF. Cámbiala si renombras el Space.
# Patrón: https://[owner]-[space-name].hf.space
# ------------------------------------------------------------
ENV WEBUI_URL="https://opceanai-Open-webui.hf.space"
# ------------------------------------------------------------
# 10. Cookies — CRÍTICO detrás del proxy HTTPS de HF
# HF recibe HTTPS pero pasa HTTP al contenedor.
# samesite=none + secure=true es la única combo que hace
# que las cookies se envíen correctamente en ese contexto,
# resolviendo los 401 en /profile/image
# ------------------------------------------------------------
ENV WEBUI_SESSION_COOKIE_SECURE="true"
ENV WEBUI_SESSION_COOKIE_SAME_SITE="none"
# ------------------------------------------------------------
# 11. Uvicorn
# ------------------------------------------------------------
ENV UVICORN_WORKERS="1"
# ------------------------------------------------------------
# 12. Directorios de datos + permisos
# ------------------------------------------------------------
ENV DATA_DIR="/app/backend/open_webui/data"
ENV STATIC_DIR="/app/backend/open_webui/static"
RUN mkdir -p /app/backend/open_webui/data && \
chmod -R 777 /app/backend/open_webui/data
# ------------------------------------------------------------
# 13. Exponer puerto
# ------------------------------------------------------------
EXPOSE 7860
ENTRYPOINT ["/start-container.sh"]