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 shrinkEnvironment Variables
| Variable | Description | Default |
|---|---|---|
HOST | Server bind host | 127.0.0.1 |
PORT | Server bind port | 3000 |
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.ymlDeployment
Railway
Docker
cd apps/shrink
docker compose up -dThis will start Shrink on port 3000.
Binary
cargo build --release -p shrinkThe resulting binary is self-contained. Copy it to your server and run it directly.