Open Source · GNU GPL v3

Self-hosted image hosting,
deployed in one command.

Pull the prebuilt image and deploy with a single docker run — PostgreSQL and PicFast, up in seconds. Guided first-run setup creates your admin account. Full React dashboard, 6 storage backends, and an API-first architecture. Natively integrates with AI agents via MCP, ShareX for quick captures, and any HTTP client.

terminal
$ docker network create picfast-net
$ docker run -d --name picfast-db --network picfast-net \
    -e POSTGRES_PASSWORD=devonly \
    -v picfast-pgdata:/var/lib/postgresql/data \
    postgres:16-alpine
$ docker run -d --name picfast --network picfast-net -p 18080:8080 \
    -e PICFAST_DATABASE_URL='postgres://postgres:devonly@picfast-db:5432/postgres?sslmode=disable' \
    -e PICFAST_JWT_SECRET='change-me-in-production' \
    -e PICFAST_SERVER_BASE_URL='http://localhost:18080' \
    -v picfast-uploads:/app/data/uploads \
    -v picfast-thumbnails:/app/data/thumbnails \
    xbeta/picfast:latest

Everything you need, one command away

One-Command Deploy

Pull the prebuilt image and deploy with a single docker run command — no building from source required. Full Docker Compose templates with Traefik and Let's Encrypt available for production.

Full Admin Panel

Manage users, groups, storage strategies, images, and site configuration from a clean React dashboard. Day-to-day operations require no direct database access.

API-First, AI-Ready

Clean REST API with an OpenAPI spec and live documentation. The built-in MCP server enables Claude, Cursor, and other AI agents to upload, list, and manage images. Run npx @picfast/mcp to connect.

Native Tool Integrations

One-click config for ShareX, PicGo, PicList, uPic, Dropshare, and more. Multi-format output — URL, Markdown, BBCode, HTML. Works with curl, Python, JavaScript, or any HTTP client. No vendor lock-in.

6 Storage Backends

Local filesystem, S3-compatible (MinIO, R2), Alibaba OSS, Tencent COS, Qiniu Kodo, and WebDAV. Switch backends anytime — existing images stay where they are.

Image Processing & Safety

Automatic thumbnail generation, configurable compression, and watermark support. Optional content moderation with an admin approval queue.

How it compares

CheveretoLsky ProPicsurPicFast
Setup time~30 min~30 min~10 min~5 min
Admin panelBasicFullBasicFull React dashboard
API supportBasicAPIPostmanOpenAPI + live docs
ShareX integration✅ Built-in
AI / MCP tools✅ 5 tools + resources
Storage backendsLimited9 backendsLocal only6 backends
Content moderation✅ Built-in
Image processingBasic✅ Watermark✅ Edit/convert✅ Compress + watermark
LicensePaidGPL v3AGPL v3GPL v3
StatusMaintainedDiscontinuedDiscontinuedActive

Quick start

1

Start the stack

Create a Docker network, launch PostgreSQL and PicFast — three commands, done.

docker network create picfast-net

docker run -d --name picfast-db --network picfast-net \
  -e POSTGRES_PASSWORD=devonly \
  -v picfast-pgdata:/var/lib/postgresql/data \
  postgres:16-alpine

docker run -d --name picfast --network picfast-net -p 18080:8080 \
  -e PICFAST_DATABASE_URL='postgres://postgres:devonly@picfast-db:5432/postgres?sslmode=disable' \
  -e PICFAST_JWT_SECRET='change-me-in-production' \
  -e PICFAST_SERVER_BASE_URL='http://localhost:18080' \
  -v picfast-uploads:/app/data/uploads \
  -v picfast-thumbnails:/app/data/thumbnails \
  xbeta/picfast:latest
2

Complete setup

Open http://localhost:18080. The guided setup wizard creates your first admin account. For headless deployments, set PICFAST_APP_ADMIN_EMAIL and PICFAST_APP_ADMIN_PASSWORD to skip the wizard.

3

Start uploading

Upload via the web UI, ShareX, curl, or any HTTP client. Each upload returns ready-to-use links.

curl -X POST http://localhost:18080/api/v1/images \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "file=@image.png"

Full documentation →