selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

kriti-images logo

Self-host kriti-images

v0.3.1

High-performance image transformation via URL API

BetaOpen SourceMIT
Updated7 months ago
LanguageGo
Setup difficultyEasy
Stars
268
Port
8080 (HTTP API server)
Install with Docker
Same image transformed for different screen sizesDifferent image formats and reduced file size comparisonIntegration by changing image URLsImage cropped to profile picture dimensions with rounded cornersFormat conversion and quality adjustment reducing file sizeImage rotation and flip transformationsBrightness, contrast, sharpen and blur adjustments

What is kriti-images?

Kriti Images is a high-performance image transformation service written in Go that enables real-time image processing through URL-based parameters. It serves as an open-source alternative to commercial services like Cloudflare Images and ImageKit. The service supports a wide range of transformations including resize, crop, rotate, flip, blur, sharpen, brightness, contrast, saturation, gamma correction, and border radius. It handles multiple output formats (JPEG, PNG, WebP) with quality control, and can source images from local storage, AWS S3, or direct URLs. The service includes health checks, Prometheus metrics, rate limiting, and CORS support. It can be deployed via Docker, built as a binary, or run from source. The upload API is experimental and disabled by default. No user authentication is built in, making it suitable for integration behind a reverse proxy or API gateway.

Should you self-host kriti-images?

kriti-images scores 46/100 on selfhost.directory (how scoring works) and ranks #10 of 13 in Image Processing. It has 268 GitHub stars.

It shipped 3 stable releases in the past year. The latest, v0.3.1, came out on 15 December 2025. New versions land roughly every 2 weeks.

Setup is easy: most people get it running in one sitting. It is MIT-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Rembg (78/100, 25 216 stars). It scores higher overall, so compare the two before you pick. See kriti-images vs Rembg side by side.

Features

  • Background color
  • Blur and sharpen
  • Border radius
  • Color adjustments
  • CORS Support
  • Experimental upload APIExperimental feature, disabled by default, could be removed or moved in future releases
  • Health Checks
  • Multiple Output Formats
  • Prometheus Metrics
  • Rate Limiting
  • Resize and crop
  • Rotation and flipping
  • URL-based image source
  • URL-based image transformations

kriti-images README

How to install kriti-images

Install kriti-images with Docker

Basic build

docker build -t kriti-images -f docker/Dockerfile .

Basic run (ephemeral images)

docker run -p 8080:8080 kriti-images

With persistent image storage

docker run -p 8080:8080 -v /path/to/your/images:/app/web/static/assets kriti-images

With custom config

docker run -p 8080:8080
-v /path/to/your/images:/app/web/static/assets
-v /path/to/config.yaml:/app/config.yaml
kriti-images

Run in background

docker run -d -p 8080:8080
-v /path/to/your/images:/app/web/static/assets
--name kriti-images-server
kriti-images

Multi-stage Docker build with non-root user, health check included

How to configure kriti-images

  • experimental.enable_upload_apifalseEnable/disable upload APIs (POST/PUT /api/v0/images)

    Enable/disable upload APIs (POST/PUT /api/v0/images)

  • images.aws.s3.bucketAWS S3 bucket name

    AWS S3 bucket name

  • images.local.base_pathImage source directory

    Image source directory

  • images.max_file_size_in_bytes52428800Maximum image file size (bytes)

    Maximum image file size (bytes)

  • images.max_image_dimension8192Maximum image dimension (pixels)

    Maximum image dimension (pixels)

  • images.sourcelocalNetwork source (local or awss3)

    Network source (local or awss3)

    values: local, awss3

  • server.enable_print_routesfalseEnable route debugging

    Enable route debugging

  • server.limiter.expiration1mRate limit window

    Rate limit window

  • server.limiter.max100Rate limit per minute

    Rate limit per minute

  • server.port8080Server port

    Server port

  • server.read_timeout30sRequest read timeout

    Request read timeout

  • server.write_timeout30sResponse write timeout

    Response write timeout

kriti-images releases & version history

More in Image Processing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…