Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Storage and image processing server written in Go

License

NotificationsYou must be signed in to change notification settings

aldor007/mort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TestsCodecovGo Report CardGodocReleasesLICENSE

An S3-compatible image processing server written in Go. Still in active development.

Features

  • HTTP server
  • Resize, Rotate, SmartCrop
  • Convert (JPEG, PNG , BMP, Webp)
  • Multiple storage backends (disk, S3, http)
  • Fully modular
  • S3 API for listing and uploading files
  • Requests collapsing
  • Build in rate limiter
  • HTTP Range and Conditional requests
  • Compression (gzip, brotli)
  • Env variables driven configuration
  • Write you own transform parser usingtengo
  • cloudinary image transformation and upload

And more seechangelog for more info

Demo


Original image

Click on result image to see URL. More examples can be found inImage Operations list

DescriptionResult (to see result click on image)

preset: small

(preserve aspect ratio) width: 75

preset: blur

  • resize image (preserve aspect ratio) width: 700

  • blur image with sigma 5.0

preset: webp

  • resize image (preserve aspect ratio) width: 1000

  • and change format to webp

preset: watermark

  • resize image (preserve aspect ratio) width: 1300

  • and add watermark

Usage

Mort can be used directly from the Internet and behind any proxy.

Install

go get github.com/aldor007/mort/cmd/

Command line help

$ ./mortUsage of  mort  -config string    Path to configuration (default"/etc/mort/mort.yml")

Configuration

Example configuration used for providing demo images:

headers:#  add or overwrite all response headers of given status. This field is optional  -statusCodes:[200]values:"cache-control":"max-age=84000, public"buckets:# list of available bucketsdemo:# bucket namekeys:# list of S3 keys (optional)          -accessKey:"access"secretAccessKey:"random"transform:# config for transformspath:"\\/(?P<presetName>[a-z0-9_]+)\\/(?P<parent>[a-z0-9-\\.]+)"# regexp for transform pathkind:"presets-query"#  type of transform or "query"presets:# list of presetssmall:quality:75filters:thumbnail:width:150blur:quality:80filters:thumbnail:width:700blur:sigma:5.0webp:quality:100format:webpfilters:thumbnail:width:1000watermark:quality:100filters:thumbnail:width:1300watermark:image:"https://i.imgur.com/uomkVIL.png"position:"top-left"opacity:0.5smartcrop:quality:80filters:crop:width:200height:200storages:basic:# retrieve originals from s3kind:"s3"accessKey:"acc"secretAccessKey:"sec"region:""endpoint:"http://localhost:8080"transform:# and store it on diskkind:"local-meta"rootPath:"/var/www/domain/"pathPrefix:"transform"

List of all image operations can be found inImage-Operations.md

More details about configuration can be found inConfiguration.md

Write you own URL parser

Docker

SeeDockerfile for image details.

Pull docker image

docker pull ghcr.io/aldor007/mort

Create you custom docker deployment

Create Dockerfile or use Dockerfile.service

# Dockerfile.service FROM ghcr.io/aldor007/mort:latest# add your configADD config.yml /etc/mort/mort.yml

Build container

docker build -f Dockerfile.service -t myusername/mort

Run docker

docker run -p 8080:8080 myusername/mort

Full example you can findhere

Development

  1. Make sure you have a Go language compiler >= 1.9 (required) and git installed.
  2. Install libvips like described onbimg page
  3. Ensure your GOPATH is properly set.
  4. Download it
git clone  https://github.com/aldor007/mort.git$GOPATH/src/github.com/aldor007/mortcd$GOPATH/src/github.com/aldor007/mort
  1. Install dependencies:
go mod vendor

Run unit tests:

make unit

Run integration tests:

make integrations

If you encounter following problemgo build gopkg.in/h2non/bimg.v1: invalid flag in pkg-config --cflags: -Xpreprocessorwhile running tests in your IDE add this to your environment:

export CGO_CFLAGS_ALLOW="-Xpreprocessor"

Run tests using docker image

make docker-tests

Contributing

Please readCONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.

License

This project is licensed under the MIT License - see theLICENSE.md file for details

Inspirations


[8]ページ先頭

©2009-2025 Movatter.jp