[ NODE :: img.goku.codes ] [ ENGINE :: imgproxy v3.31 OSS ] [ TTY/2 :: ]
 ┌─────────────────────────────────────────────────────────────────┐
 │   ▄█ █▀▄▀█ █▀▀▄  ▀█▀ █▀▀█ █▀▀█ ▀▄▀ █  █                        │
 │    █ █ ▀ █ █▄▄█ ▀▄█▄▀ █  █ █▄▄▀ █ █  █▄▄                        │
 │                                                                  │
 │    upload → transform → share · self-hosted · no telemetry       │
 └─────────────────────────────────────────────────────────────────┘
img.goku.codes · on-demand image transforms · files auto-purge @ 72h
HMAC-SIGNED S3 BACKED URL TTL NO ACCOUNT NO LOGS BEYOND COUNTERS CAPTCHA SOON
⚓ drop image → transform → ship URL ⚓ files vaporize in 72h ⚓ pillow filter rack incoming ⚓ modal GPU bursts incoming ⚓ pro features unlocked by replacing the infra, not paying the rent ⚓ saturation · watermark · grayscale · upscale · inpaint — all routed through your own stack ⚓
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ ▼ D R O P I T ▼ ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

drag & drop an image here, or click to choose

max 25 MB · png / jpg / webp / gif / heic / bmp / tiff

files auto-purge after 72h · URL can expire sooner

// solve panel pill to unlock upload
preview

// rack

// upload an image to get started…
// open // download

// live transforms SOURCE: s3://media/goku.png

200x200
original
BLUR 5
gaussian blur
ROTATE 90
rotate
PIXELATE 12
mosaic
SHARPEN 1.5
unsharp mask
Q50 WEBP
format swap

// what's live + what's coming SHIPPING

imgproxy OSS handles the fast path. Pillow sidecar adds Pro-equivalent filters. Modal serverless GPU adds AI on burst (no idle bill, $1/day hard cap).

resize · fit/fill/forceLIVE
blur · sharpen · pixelateLIVE
rotate · crop · trim · paddingLIVE
quality · format (webp/avif/jpg/png/gif)LIVE
URL TTL via exp: signatureLIVE
file purge @ 72h (MinIO ILM)LIVE
saturation · brightness · contrast · huePILLOW SIDECAR
grayscale · invert · sepia · posterizePILLOW SIDECAR
watermark text + image overlayPILLOW SIDECAR
smart crop (face/saliency)OPENCV
background removal (isnet)REMBG LOCAL
2x / 4x upscale (Real-ESRGAN)MODAL GPU
SDXL inpaint · img2img · t2iMODAL GPU
depth maps (MiDaS)MODAL GPU
captcha gate (anti-abuse)QUEUED

no subscription. no SaaS gate. when a feature isn't here, it's being built — not sold to you.

// URL recipe

https://img.goku.codes/<HMAC-SHA256 sig>/<processing options>/plain/s3://<bucket>/<path>

// REST endpoints LIVE

POST /api/upload     multipart file (max 25MB) → {key, s3_path, expires_at}
POST /api/sign       {s3_path, opts, ttl_hours} → {url, expires_at}
GET  /api/health     → {status, captcha_required, max_upload_mb, retention_days}
GET  /api/stats      → 7-day upload/sign counters

// processing options (imgproxy OSS v3.31)

rs:fit:300:300       resize · fit
rs:fill:300:300      resize · fill (crop)
blur:5               gaussian blur radius
sharpen:1.5          unsharp mask amount
pixelate:12          mosaic block size
rotate:90            0 / 90 / 180 / 270
quality:50           0-100
format:webp          png / jpg / webp / gif / avif
crop:200:200         crop to size
trim:10              auto-trim border
padding:10           pad border
background:ff0000    bg color (hex)
exp:<unix_ts>        URL expires at ts

// curl

$ curl -F file=@cat.png https://img.goku.codes/api/upload
{"key":"a7Kp9mNqR2vL.png","s3_path":"s3://media-tmp/a7Kp9mNqR2vL.png",
 "expires_at":1747000000,"size":48291,"mime":"image/png"}

$ curl -XPOST https://img.goku.codes/api/sign \
    -H content-type:application/json \
    -d '{"s3_path":"s3://media-tmp/a7Kp9mNqR2vL.png",
         "opts":"rs:fit:300:300/rotate:90","ttl_hours":24}'
{"url":"https://img.goku.codes/<sig>/rs:fit:300:300/rotate:90/exp:.../plain/s3://media-tmp/a7Kp9mNqR2vL.png",
 "expires_at":1746500000}
[ part of goku.codes · black flag flying ] [ rev :: 2026-05-19 · no telemetry ]