mort
mort is available in the NetActuate Marketplace as a one-click, open-source appliance you can deploy into any NetActuate PoP. Headless, S3-compatible on-the-fly image processing: resize, crop and convert. It is grouped under the Media & Streaming category.
What It Does
mort is an open-source, high-performance server for on-the-fly image processing written in Go (a peer to imgproxy and imagor). It resizes, crops, and converts images (WebP, AVIF, JPEG, PNG, GIF) on demand from a source, so you serve exactly the format and dimensions each client needs without pre-generating or storing thumbnails.
Key features
- On-the-fly resize, crop, smart-crop, blur, watermark, and format conversion
- Modern formats: WebP and AVIF encoding
- S3-compatible storage backends: transform images straight from your object storage
- Named presets and per-request query transforms, with in-memory response caching
- Headless HTTP API with Prometheus metrics; no database required
Use cases
- A thumbnailing and format-conversion tier in front of your object storage or CDN
- Responsive images for web and mobile without a build-time asset pipeline
- Offloading image transforms from an application backend to a dedicated service
Why run it on the NetActuate edge Placing mort in a PoP near your users shortens the delivery path for processed images and lets you cache transformed variants close to the request, cutting latency and origin egress.
Deployed from the NetActuate marketplace, mort boots ready to use: it ships a demo bucket backed by a bundled sample image, so a transform URL such as /media/small/sample.jpg returns a resized image the moment the instance is up, and a co-located landing/instructions page is served on the instance IP. Add your own images to /opt/mort/data/media, or deploy with the optional S3 seed fields (endpoint, region, bucket, access key, secret key) to transform images straight from your object storage at /s3/<preset>/<key>. The API answers on plain HTTP; put a TLS-terminating proxy in front for public traffic (a documented follow-up).
Vendor and Project
mort is an open-source project, offered here under the Open Source listing with best-effort community support.
- Project home: github.com
NetActuate supports the underlying infrastructure. Application-level support follows the listing SLA class (open-source, best effort).
Sizing
| vCPU | RAM | Disk | |
|---|---|---|---|
| Minimum | 1 | 1 GB | 10 GB |
| Recommended | 2 | 2 GB | 20 GB |
No VPU (hardware acceleration) is required for this appliance. Choose a size at deploy based on your expected load.
Configuration Fields
When you deploy, you provide these fields. They are written into the appliance at first boot.
| Field | Required | Default | Notes |
|---|---|---|---|
| API port | No | 8080 | Host port the image API and landing page are published on (default 8080). |
| S3 endpoint URL (optional) | No | none | Optional. S3-compatible endpoint URL of your object storage (e.g. https://s3.us-east-1.amazonaws.com). Provide endpoint + bucket + access key + secret key to expose an /s3 transform bucket; leave blank to use the bundled local demo bucket only. |
| S3 region (optional) | No | us-east-1 | Optional. Region for the S3-compatible source (default us-east-1). |
| S3 bucket (optional) | No | none | Optional. Name of the source bucket in your object storage. |
| S3 access key (optional) | No | none | Optional. Access key id for the S3-compatible source. |
| S3 secret key (optional) | No | none | Optional. Secret access key for the S3-compatible source; stored in your secret list and never echoed back. Any printable value is accepted. Stored write-only in your account secret list |
Using the Appliance
Deploy in minutes
- Open the landing page. Browse to http://YOUR_VM_IP:8080/ for instructions and live demo links.
/healthreturns200 ok. - Try an on-the-fly transform. The bundled demo bucket serves a sample image: http://YOUR_VM_IP:8080/media/small/sample.jpg (300px), http://YOUR_VM_IP:8080/media/webp/sample.jpg (WebP), or http://YOUR_VM_IP:8080/media/sample.jpg for the original. Requests are shaped as /<bucket>/<preset>/<key>.
- Add your own images. Drop files into /opt/mort/data/media/ on the instance and request them the same way (e.g. /media/small/your-photo.jpg). Presets live in /opt/mort/config/mort.yml; restart with
cd /opt/mort && docker compose restart mort. - (Optional) Use your object storage. Deploy with the S3 seed fields (endpoint, region, bucket, access key, secret key) to expose an /s3/<preset>/<key> bucket that transforms images directly from your S3-compatible store.
Exposure posture: the appliance serves plain HTTP on port 8080. For public traffic, put a TLS-terminating proxy in front (or a real hostname with a certificate).
FAQ
Is there a software license fee? No. mort is open source and free to run. You pay only for the NetActuate infrastructure and bandwidth.
Which port does the appliance serve on?
The primary service is published on port 8080 by default; see the configuration fields for any adjustable ports.
Who supports it? NetActuate operates the underlying infrastructure. The application itself is community-supported open source (best-effort SLA class).
Version and Changelog
| Version | Status | Released |
|---|---|---|
| 0.37.0 | Current (default) | 2026-07-14 |
Deploy
- Deploy in the portal: Deploy mort
- View the listing: portal.netactuate.com/platform/marketplace/l/mort
- Public listing: netactuate.com/marketplace/mort
Need Help?
Contact support@netactuate.com or open a support ticket from the portal.