Deploy Imagor
imagor 1.9: fast image resizing and conversion with signed URLs.
imagor
Just deployed
/data
Deploy and Host imagor on Railway
imagor is a fast image processing server written in Go on top of libvips. It resizes, crops, converts and filters images on the fly from a URL, using the same URL syntax as Thumbor. Apps put it in front of their image storage to serve responsive, WebP or AVIF images without preprocessing.
About Hosting imagor
This template runs the official shumc/imagor:1.9.6 image as one public service. Every request must be signed with IMAGOR_SECRET, so strangers cannot use your server to process arbitrary images, and unsigned or unsafe URLs are refused. Images are fetched over HTTP from any source by default; restrict HTTP_LOADER_ALLOWED_SOURCES to your own buckets if you like. Processed results are cached on a Railway volume for seven days and survive redeploys. libvips concurrency is capped at two threads to stay within Railway's container limits and keep memory use predictable. The server runs as the unprivileged nobody user.
Common Use Cases
- On-the-fly thumbnails and responsive images for a web or mobile app
- Converting uploads to WebP or AVIF without a build step
- A Thumbor-compatible image server in front of S3 or any HTTP storage
Dependencies for imagor Hosting
shumc/imagor:1.9.6(official image)- A Railway volume at
/datafor the result cache
Deployment Dependencies
Implementation Details
| Service | Source | Networking | Storage |
|---|---|---|---|
| imagor | shumc/imagor:1.9.6 | public HTTPS | volume at /data (result cache) |
| Variable | Default | Purpose |
|---|---|---|
IMAGOR_SECRET | generated | HMAC key for signed URLs |
HTTP_LOADER_ALLOWED_SOURCES | * | Hosts images may be loaded from |
HTTP_LOADER_BASE_URL | empty | Optional base URL, so paths can be relative |
FILE_RESULT_STORAGE_EXPIRATION | 168h | How long processed images are cached |
VIPS_CONCURRENCY | 2 | libvips worker threads |
Signing a URL (the hash is base64url of HMAC-SHA1 over the path):
P='fit-in/300x200/filters:format(webp)/example.com/photo.jpg'
H=$(printf %s "$P" | openssl dgst -sha1 -hmac "$IMAGOR_SECRET" -binary | base64 | tr '+/' '-_')
echo "$IMAGOR_BASE_URL/$H/$P"
Client libraries for URL signing exist for most languages; any Thumbor URL builder works too.
This is a community-maintained deployment package and does not imply affiliation with or endorsement by the imagor project.
Why Deploy imagor on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying imagor on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
imagor
shumc/imagor:1.9.6HTTP_LOADER_BASE_URL

