Spaces:
Running
Running
#original repo | |
FROM ghcr.io/danny-avila/librechat-dev:latest | |
# Install dependencies | |
USER root | |
RUN apk update && apk add --no-cache \ | |
caddy \ | |
python3 \ | |
py3-pip \ | |
py3-dotenv \ | |
git | |
RUN pip install flask pymongo[srv] --break-system-packages | |
COPY config.yaml /app/librechat.yaml | |
#secrets | |
RUN --mount=type=secret,id=SUDO_SECRET,required=true cat /run/secrets/SUDO_SECRET > /app/sudo.sec | |
RUN export SUDO_SECRET=$(cat /app/sudo.sec) | |
RUN --mount=type=secret,id=MONGO_URI,required=true cat /run/secrets/MONGO_URI > /app/mongo.sec | |
RUN export MONGO_URI=$(cat /app/mongo.sec) | |
RUN --mount=type=secret,id=FLASK_SECRET,required=true cat /run/secrets/FLASK_SECRET > /app/flask.sec | |
RUN export FLASK_SECRET=$(cat /app/flask.sec) | |
# Create admin structure | |
RUN mkdir -p /app/sudo/{templates,static} \ | |
&& chown -R 1000:1000 /app | |
# HTML Admin Panel | |
COPY index-temp.html /app/sudo/templates/index.html | |
# Admin Backend | |
COPY app-temp.py /app/sudo/app.py | |
# Caddy Configuration | |
RUN mkdir -p /app/caddy/ | |
COPY Caddyfile /app/caddy/Caddyfile | |
# Startup script | |
COPY start-temp.sh /app/start.sh | |
RUN chmod +x /app/start.sh | |
##################################################### | |
# Create necessary directories | |
RUN mkdir -p /app/uploads/temp | |
RUN mkdir -p /app/client/public/images/temp | |
RUN mkdir -p /app/api/logs/ | |
RUN mkdir -p /app/data | |
# Give write permission to the directory | |
RUN chmod -R 777 /app/uploads/temp | |
RUN chmod -R 777 /app/client/public/images | |
RUN chmod -R 777 /app/api/logs/ | |
RUN chmod -R 777 /app/data | |
# Environment variables | |
ENV HOST=0.0.0.0 \ | |
PORT=3080 \ | |
SESSION_EXPIRY=900000 \ | |
REFRESH_TOKEN_EXPIRY=604800000 \ | |
SEARCH=true \ | |
MEILI_NO_ANALYTICS=true \ | |
MEILI_HOST=https://martynka-meilisearch.hf.space \ | |
CONFIG_PATH=/app/librechat.yaml \ | |
CUSTOM_FOOTER=EasierIT \ | |
MONGO_URI="$MONGO_URI" \ | |
SUDO_SECRET="$SUDO_SECRET" \ | |
ADMIN_SECRET="$SUDO_SECRET" \ | |
FLASK_SECRET="$FLASK_SECRET" \ | |
NODE_ENV=production | |
# npm Install aditional dependencies | |
RUN cd /app/api && npm install | |
# port | |
EXPOSE 7860 | |
#endpoint | |
CMD ["/app/start.sh"] |