A self-hosted placeholder image server
645
Self-hosted placeholder image server. Drop in your own images and serve them with on-the-fly resizing, filters, and format conversion — like picsum.photos, but entirely under your control.
latest — stable releasedocker run -d \
-p 3000:3000 \
-v $(pwd)/images:/app/images \
--name placepix \
riadvice/placepix:latest
Or with Docker Compose:
services:
placepix:
image: riadvice/placepix:latest
ports:
- "3000:3000"
volumes:
- ./images:/app/images
- ./.cache:/app/.cache
restart: unless-stopped
./images/ (subfolders become categories)http://localhost:3000 for the interactive URL builder<img src="http://localhost:3000/300/200" />/solid/500/300/ff0000 with optional text overlay/ratio/16:9/1080/api/srcsetPOST /api/upload| Variable | Description | Default |
|---|---|---|
HOST | Bind address | 0.0.0.0:3000 |
IMAGES_DIR | Images folder | /app/images |
DATA_DIR | Data folder | /app/data |
CACHE | Enable file cache | true |
MAX_WIDTH / MAX_HEIGHT | Size limits | 2400 |
UPLOAD_ENABLED | Allow API uploads | true |
WATERMARK_ENABLED | Show watermark | false |
LOG_LEVEL | Logging level | INFO |
S3_ENABLED | Use S3-compatible storage | false |
AI_GENERATION_ENABLED | Auto-generate images via AI | false |
See .env.example for the full list.
GET /300/200 # Random image, 300x200
GET /300/200.webp # WebP format
GET /300/200/nature # From "nature" category
GET /300/200?grayscale=true # With filter
GET /300/200?text=Hello # With text overlay
GET /ratio/16:9/1080 # Aspect ratio sizing
GET /preset/instagram-square # Preset dimensions
GET /solid/500/300/ff0000 # Solid color placeholder
Full API reference: placepix.net/guide
MIT — see LICENSE.
Content type
Image
Digest
sha256:b6db6e295…
Size
252.6 MB
Last updated
10 days ago
docker pull riadvice/placepix