FROM flowiseai/flowise:3.1.3 USER root # Build arguments ARG BASE_PATH=/root/.flowise # Install additional tools for backup and restore RUN apk add --no-cache \ postgresql-client sqlite \ curl jq bash \ dos2unix # Create data directories RUN mkdir -p /data/.flowise/logs /data/.flowise/storage && \ chmod -R 777 /data WORKDIR /data # Flowise paths — override to use /data so our backup scripts can find the DB ENV DATABASE_PATH=/data/.flowise ENV SECRETKEY_PATH=/data/.flowise ENV LOG_PATH=/data/.flowise/logs ENV BLOB_STORAGE_PATH=/data/.flowise/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 with executable permissions and normalize line endings COPY --chmod=755 start.sh /data/start.sh COPY --chmod=755 backup.sh /data/backup.sh RUN dos2unix /data/start.sh /data/backup.sh && \ chmod -R 777 /data EXPOSE 7860 # Graceful shutdown support STOPSIGNAL SIGTERM ENTRYPOINT [] CMD ["/data/start.sh"]