Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Shrink

A minimal image compression app

Overview

A simple self-hosted tool for compressing and resizing images. Upload an image, set your desired quality and optional width, and download the compressed JPEG.

  • Single Rust binary
  • Compress images to JPEG with configurable quality (1-100)
  • Optional resize by width (preserves aspect ratio)
  • 20MB upload limit

Quickstart

git clone https://github.com/stevedylandev/andromeda.git
cd andromeda
cargo run -p shrink

Environment Variables

VariableDescriptionDefault
HOSTServer bind host127.0.0.1
PORTServer bind port3000

Structure

shrink/
├── src/
│   ├── main.rs        # Entry point and server startup
│   └── server.rs      # Axum routes and image compression logic
├── templates/
│   └── index.html     # Upload UI
├── static/            # Fonts and static assets
├── Dockerfile
└── docker-compose.yml

Deployment

Railway

Deploy on Railway

Docker

cd apps/shrink
docker compose up -d

This will start Shrink on port 3000.

Binary

cargo build --release -p shrink

The resulting binary is self-contained. Copy it to your server and run it directly.