Local-first visual asset workflow

Cloudflare Images with a real working surface.

Photarium is a self-hosted visual asset workflow for small studios, researchers, content teams, and self-hosters who want to ingest, curate, search, enrich, and publish image-heavy libraries without outsourcing storage or delivery to a generic DAM.

  • Upload and organize with folders, tags, metadata, variants, and namespaces.
  • Add AI-assisted discovery when you want semantic search, color search, and enrichment.
  • Layer on advanced workflows for page scans, video handling, media ingest, and client delivery.
Photarium interface
Current scope

Photarium started as image management and now spans curation, ingestion, search, media handling, and adjacent client-page publishing while staying grounded in a simple self-hosted setup.

Best For

The current public story is local-first and operator-oriented. Photarium works best when you want your own internal visual library with practical tools around it rather than a glossy all-in-one hosted platform.

Small studios

Keep working libraries of references, deliverables, generated assets, and variants in one place.

Researchers

Build and search curated media sets with metadata, semantic helpers, and import-heavy workflows.

Content teams

Handle web assets, campaign images, and reusable media without giving up direct CDN delivery.

Self-hosters

Run the system locally or behind trusted internal access and keep the stack understandable.

Feature Areas

The core product remains easy to evaluate: Cloudflare-backed asset management first, optional AI/search second, and more specialized workflows layered on top instead of replacing the basics.

Core asset management

The stable, daily-use surface for keeping a visual library tidy and usable.

  • Drag-and-drop uploads and queue-based curation
  • Folders, tags, metadata editing, variants, and EXIF-aware detail views
  • Namespaces for project or client isolation

AI-assisted search and enrichment

Optional Redis- and API-backed workflows for discovery and machine-written metadata.

  • Semantic search, color search, similar and antipode discovery
  • ALT text, descriptions, prompts, haiku, and embedding-backed helpers
  • Extras storage beyond Cloudflare metadata size limits

Ingest and import workflows

Bring media in from more than just a file picker when a library already exists somewhere else.

  • Direct URL imports and page scans, including browser-backed scroll capture
  • ZIP intake, filesystem recursion, and helper scripts for source-specific ingestion
  • Image and video handling inside one catalog surface

Publishing and client delivery

Push curated subsets outward without turning the internal app into a public-facing monolith.

  • Headless API for uploads and metadata updates
  • Cloudflare delivery URLs and share-oriented workflows
  • Client pages published into the adjacent Cloudflare Worker-based public app

Security posture

Photarium is still designed for local or secured internal use. The external upload route does not ship with built-in authentication, so you should not expose the app directly to the public internet without adding auth middleware or trusted network protection.

Advanced Workflows

These capabilities are real and already in the repo, but they belong in a clearly labeled advanced layer rather than the primary pitch for a first-time evaluator.

Page scan and authenticated import

Scan pages for media, use browser-backed scroll mode when needed, and review queued candidates before upload.

Video-aware media handling

Ingest video, inspect metadata, extract frames, and generate animated WebP artifacts alongside still images.

Filesystem and social-source helpers

Use recursive ingest and source-specific helper scripts for local archives and adjacent social/media workflows.

Client pages and client-sites publishing

Create explicit client-facing selects in Photarium and publish them to the adjacent public Cloudflare Worker app.

Comfy workflow metadata

Detect embedded ComfyUI workflow data, store it as extras, and surface workflow context in asset detail views.

Operational tooling

Backfill namespaces and embeddings, audit duplicates or broken assets, and maintain richer internal metadata stores.

Get Started in Minutes

The simplest evaluation path is still short: connect Cloudflare Images, add a few environment variables, and run it locally.

1

Create a Cloudflare account

Sign up free and enable Cloudflare Images.

2

Clone and install

git clone https://github.com/bleeckerj/nfl-photarium.git and npm install.

3

Add core environment values

Copy .env.example to .env.local and set Cloudflare account id, token, and account hash.

4

Run it locally

Start with npm run dev and open http://localhost:3000.

5

Layer on optional systems

Add Redis for semantic discovery and OpenAI-backed helpers only if you need the AI/search layer.

Cloudflare's free tier still makes this easy to test.

Start with the core workflow first, then decide whether the AI/search and advanced workflow layers are worth enabling.

Resources

The repo is the source of truth. Use the Pages site as a concise overview, then jump into the docs that match the workflow you care about.

README / Quick Start

Start with the repo homepage for setup, requirements, and the high-level feature map.

Open Quick Start

Features & Operations

The main operational guide for upload modes, search, embeddings, metadata, and maintenance scripts.

Open Features Guide

Headless API

Reference for uploads, metadata updates, search routes, media workflows, and other API surfaces.

Open API Reference

Client-sites publishing

Details for contract-based publishing into the adjacent public-facing Cloudflare Worker app.

Open Publishing Docs