flowhybrid-2 / Dockerfile
unknownfriend00007's picture
Upload 4 files
16edafd verified
FROM node:20-alpine
USER root
# Build arguments
ARG FLOWISE_PATH=/usr/local/lib/node_modules/flowise
ARG BASE_PATH=/data/.flowise
# Install system dependencies
RUN apk add --no-cache \
git python3 make g++ build-base \
cairo-dev pango-dev chromium \
curl jq bash \
postgresql-client sqlite
# Puppeteer config (for browser tools)
ENV PUPPETEER_SKIP_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
# Install Flowise globally
RUN npm install -g flowise@latest
# Create data directories (ephemeral on HF but backed up via scripts)
RUN mkdir -p $BASE_PATH $BASE_PATH/logs $BASE_PATH/storage $FLOWISE_PATH/uploads && \
chmod -R 777 $BASE_PATH $FLOWISE_PATH
WORKDIR /data
# Flowise paths (SQLite + secrets + logs + blobs)
ENV DATABASE_PATH=$BASE_PATH
ENV SECRETKEY_PATH=$BASE_PATH
ENV LOG_PATH=$BASE_PATH/logs
ENV BLOB_STORAGE_PATH=$BASE_PATH/storage
# Core Flowise config
ENV PORT=7860
ENV FLOWISE_USERNAME=""
ENV FLOWISE_PASSWORD=""
ENV FLOWISE_SECRETKEY_OVERWRITE=""
ENV DISABLE_FLOWISE_TELEMETRY=true
ENV LOG_LEVEL=info
# Neon backup config (external Postgres for filtered backups)
ENV NEON_HOST=""
ENV NEON_DB="flowise_backup"
ENV NEON_USER=""
ENV NEON_PASSWORD=""
# Operational settings
ENV BACKUP_INTERVAL_SECONDS=86400
ENV AUTO_RESTART_DAYS=7
ENV HEALTH_CHECK_INTERVAL=3600
# Copy scripts
COPY start.sh /data/start.sh
COPY backup.sh /data/backup.sh
RUN chmod +x /data/start.sh /data/backup.sh
EXPOSE 7860
# Graceful shutdown support
STOPSIGNAL SIGTERM
CMD ["/data/start.sh"]