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.
$ 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
| Chevereto | Lsky Pro | Picsur | PicFast | |
|---|---|---|---|---|
| Setup time | ~30 min | ~30 min | ~10 min | ~5 min |
| Admin panel | Basic | Full | Basic | Full React dashboard |
| API support | Basic | API | Postman | OpenAPI + live docs |
| ShareX integration | ✅ | ❌ | ✅ | ✅ Built-in |
| AI / MCP tools | ❌ | ❌ | ❌ | ✅ 5 tools + resources |
| Storage backends | Limited | 9 backends | Local only | 6 backends |
| Content moderation | ❌ | ✅ | ❌ | ✅ Built-in |
| Image processing | Basic | ✅ Watermark | ✅ Edit/convert | ✅ Compress + watermark |
| License | Paid | GPL v3 | AGPL v3 | GPL v3 |
| Status | Maintained | Discontinued | Discontinued | Active |
Quick start
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:latestComplete 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.
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"