selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

ProductFlow logo

Self-host ProductFlow

v0.1.0

Self-hosted AI product creative workbench

BetaOpen SourceMIT
Updated2 weeks ago
LanguagePython
Setup difficultyModerate
ThemeDark mode
Stars
307
Ports
29280 (Backend API (FastAPI)), 29281 (Web frontend (nginx static server))
Requires
Dramatiq worker, PostgreSQL, Redis
Install with Docker Compose
Product list viewProduct workbench canvasCreate new productImage generation panelDark mode and English mode

What is ProductFlow?

ProductFlow is a self-hosted product creative workbench designed for solo merchants and small teams. It combines product asset management, AI copywriting, reference image handling, and node-based image generation workflows in a single private deployment. The workbench uses a visual canvas where users create products, upload reference images, generate structured copy, and trigger image generation through connected nodes. Generated images flow into downstream reference image slots and can be saved to a gallery. The system runs on PostgreSQL and Redis with a FastAPI backend, Dramatiq workers for async tasks, and a React/Vite frontend served by nginx. It supports OpenAI and Gemini image providers, with a mock provider for testing without API keys. The UI includes a responsive mobile layout with touch-optimized canvas controls and bottom toolbars. Configuration is managed through a web settings page with a separate access token. The project is MIT licensed and deployed via Docker Compose.

Should you self-host ProductFlow?

ProductFlow scores 44/100 on selfhost.directory (how scoring works) and ranks #71 of 120 in AI Assistant. It has 307 GitHub stars.

It shipped 1 stable release in the past year. The latest, v0.1.0, came out on 1 May 2026.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is hermes-agent (89/100, 257 885 stars). It scores higher overall, so compare the two before you pick. See ProductFlow vs hermes-agent side by side.

Features

  • AI copywriting generation
  • AI Image Generation
  • Generated image gallery
  • In-app help system
  • Iterative image sessions
  • Lightweight status polling
  • Mock provider for offline testing
  • Poster generation (template and AI)
  • Product asset management
  • Runtime settings page
  • Task queue with retry and recovery
  • Template and user template system
  • Visual node-based workflow canvas

ProductFlow README

How to install ProductFlow

Install ProductFlow with Docker Compose

Docker and Docker Compose
Environment variables
ADMIN_ACCESS_KEY, SETTINGS_ACCESS_TOKEN, SESSION_SECRET, POSTGRES_PASSWORD, and optional provider keys

cp .env.example .env

Edit .env with your values

docker compose up -d --build

One-command self-hosted deployment. Builds and starts PostgreSQL, Redis, backend API, Dramatiq worker, and nginx-served Web frontend.

How to configure ProductFlow

  • ADMIN_ACCESS_KEYAuth (env-only; never commit real values)

    Auth (env-only; never commit real values)

  • APP_ENVproductionApp

    App

  • APP_HOST0.0.0.0
  • APP_HOST_PORT29280
  • APP_PORT29280
  • BACKEND_CORS_ORIGINShttp://localhost:29281,http://127.0.0.1:29281
  • DATABASE_URL
  • GENERATION_MAX_CONCURRENT_TASKS3
  • IMAGE_API_KEY
  • IMAGE_BASE_URL
  • IMAGE_GENERATE_MODEL
  • IMAGE_IMAGES_QUALITY
  • IMAGE_IMAGES_STYLE
  • IMAGE_MAIN_IMAGE_SIZE1024x1024
  • IMAGE_PROMO_POSTER_SIZE1024x1536
  • IMAGE_PROVIDER_KINDmock
  • IMAGE_RESPONSES_BACKGROUND_ENABLEDfalse
  • JOB_MAX_ATTEMPTS3Jobs

    Jobs

  • JOB_RETRY_DELAY_MS10000
  • POSTER_FONT_PATH/usr/share/fonts/truetype/wqy/wqy-zenhei.ttcPoster rendering

    Poster rendering

  • POSTER_GENERATION_MODEPoster generation: template does not call the image provider; generated does.

    Poster generation: template does not call the image provider; generated does.

  • POSTGRES_HOST_PORT15432
  • POSTGRES_PASSWORDPersistence (env-only)

    Persistence (env-only)

  • REDIS_HOST_PORT16379
  • REDIS_URLredis://productflow-redis:6379/0
  • SESSION_COOKIE_SECUREfalse
  • SESSION_SECRET
  • SETTINGS_ACCESS_TOKEN
  • STORAGE_HOST_PATHContainer runtime storage root stays fixed at /app/storage. For production reuse/migration from the old systemd release, bind-mount the existing host directory by setting STORAGE_HOST_PATH, for example:

    Container runtime storage root stays fixed at /app/storage. For production reuse/migration from the old systemd release, bind-mount the existing host directory by setting STORAGE_HOST_PATH, for example:

  • STORAGE_ROOT/app/storageLeave STORAGE_HOST_PATH unset to use the default Docker named volume productflow-storage.

    Leave STORAGE_HOST_PATH unset to use the default Docker named volume productflow-storage.

  • TEXT_API_KEY
  • TEXT_BASE_URL
  • TEXT_BRIEF_MODELgpt-4o
  • TEXT_COPY_MODELgpt-4o
  • TEXT_PROVIDER_KINDmockProvider settings are configured in the web settings page after startup. These legacy TEXT_* / IMAGE_* values are still passed to the containers so the first startup after upgrade can create provider_profiles/provider_bindings from existing .env values. After migration, edit providers in /settings.

    Provider settings are configured in the web settings page after startup. These legacy TEXT_* / IMAGE_* values are still passed to the containers so the first startup after upgrade can create provider_profiles/provider_bindings from existing .env values. After migration, edit providers in /settings.

  • UPLOAD_ALLOWED_IMAGE_MIME_TYPESimage/png,image/jpeg,image/webp
  • UPLOAD_MAX_IMAGE_BYTES10485760Upload safety

    Upload safety

  • UPLOAD_MAX_PIXELS16000000
  • UPLOAD_MAX_REFERENCE_IMAGES6
  • WEB_PORT29281
  • WORKFLOW_IMAGE_GENERATION_PROVIDER_TIMEOUT_SECONDS900

ProductFlow releases & version history

More in Image Generation

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…