high-performance media processing engine for on-the-fly image transformations and storage.
Project description
morphosx 🧬
High performance, low footprint.
Self-hosted, open-source media engine for on-the-fly image processing and delivery.
morphosx is a high-speed, minimal cloud storage and media manipulation server. It converts almost any media type into an optimized, web-ready image derivative on-the-fly.
⚡ Core Features
- User-Bound Security: Protected assets and HMAC signatures tied to specific JWT-authenticated users.
- Private Folders: Secure per-user storage using the
users/{user_id}/path convention. - Universal Rendering: Support for BIM (IFC), 3D (STL/OBJ/GLB), Office, Font Specimen, Archives, Video, Audio, and RAW.
- Modern Engines: Choice between Pillow and PyVips (ultra-fast).
- Cloud Ready: Pluggable storage system (Local & Amazon S3).
- Smart Caching: Automatic derivative caching for optimized delivery.
🚀 Installation & Deployment
1. Using Docker (Recommended)
The easiest way to run Morphosx with all features and system dependencies pre-installed.
docker run -p 6100:6100 --env-file .env ghcr.io/dcdavidev/morphosx:latest
2. Using pip (from PyPI)
You can install Morphosx as a library or a standalone CLI tool.
# Core installation (standard images only)
pip install morphosx
# Full installation (all media types support)
pip install "morphosx[full]"
# Selective installation
pip install "morphosx[video,pdf,3d]"
Note: Some extras require system libraries (e.g., ffmpeg for video, libvips for vips engine).
📖 Documentation
For detailed guides, check out the docs/ folder:
- Introduction: Overview, architecture, and quick start.
- Upload Guide: Managing public and private asset uploads.
- Processing & Presets: On-the-fly transformations and smart presets.
- Security & Signatures: HMAC validation and asset protection.
- Configuration: Environment variables and server settings.
🛠️ Usage Guide
1. Uploading Assets
Public Upload
curl -X POST "http://localhost:6100/v1/assets/upload?folder=news" -F "file=@img.jpg"
Private Upload
curl -X POST "http://localhost:6100/v1/assets/upload?private=true" \
-H "Authorization: Bearer <TOKEN>" -F "file=@secret.pdf"
2. Retrieving & Processing
All GET requests must be signed using HMAC-SHA256.
GET /v1/assets/my-image.jpg?width=300&format=webp&signature=HASH
✨ Smart Presets
Use predefined aliases for cleaner URLs:
preset=thumb: 150x150 WebP.preset=hero: 1920px WebP.preset=social: 1200x630 JPEG.preset=preview: 400px PNG.
🛡️ Advanced Security
Morphosx uses HMAC-SHA256 to prevent DoS attacks and unauthorized manipulation.
The signature payload includes: asset_id | width | height | format | quality | preset | user_id.
🧪 Supported Media Table
| Category | Extra | Extensions | Output Type |
|---|---|---|---|
| BIM | [bim] |
ifc | Technical Project Card |
| 3D | [3d] |
stl, obj, glb, gltf | Technical Blueprint |
| Images | Core | jpg, png, webp | Processed Image |
| Modern Img | [modern] |
heic, avif | Processed Image |
| RAW | [raw] |
cr2, nef, dng, arw | Developed Image |
| Video | [video] |
mp4, mov, webm, avi | Frame @ timestamp |
| Audio | [video] |
mp3, wav, ogg, flac | Waveform Image |
| Docs | [pdf] |
Page Render | |
| Office | [office] |
docx, pptx, xlsx | Summary Card |
| Text | Core | json, xml, md, txt | Syntax-highlighted |
| Typography | Core | ttf, otf | Font Specimen |
| Archives | Core | zip, tar | Content List |
📜 License
MIT - Built for the Open Source community.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file morphosx-0.8.15.tar.gz.
File metadata
- Download URL: morphosx-0.8.15.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5b3c15bc930f7b2873d5c3300bc96183804d8eb524885baad517404168f669b
|
|
| MD5 |
ee586e57972352b6b3b20e74253e2e67
|
|
| BLAKE2b-256 |
c5c7beef6778dad25813a4c31a5ba1ee5d0c55e2881b146fceca908bc58f7fa2
|
File details
Details for the file morphosx-0.8.15-py3-none-any.whl.
File metadata
- Download URL: morphosx-0.8.15-py3-none-any.whl
- Upload date:
- Size: 35.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
568244a35c7d1edf5d4bd221ffe2d44df8d9fbf1268cdbe09cde50dc3f751d91
|
|
| MD5 |
2f6bb106fab328efcbcb9c9268364595
|
|
| BLAKE2b-256 |
e7718531dae6233439ebe1031de60312b8f1530b307b36d149d5fef890ab12bd
|