Skip to content

Repository files navigation

GIM

Global Image Manager is an ultra-fast, lightweight open-source image hosting powered by Bun and TanStack Start.

Container Registry Runtime License

Born from a happy typo of imggmigim, Gim is engineered for speed, minimal memory footprint, and effortless self-hosting.


Features

  • Bun Powered: Native TS execution with minimal memory usage and high-throughput image delivery.
  • Nitro Engine: Serverless-ready HTTP architecture with optimized asset bundling.
  • Container First: Multi-stage Debian-slim Docker setup with non-root execution (USER bun).

Quick Start

Docker Compose (compose.yaml)

services:
  gim:
    image: ghcr.io/vomlabs/gim:latest
    container_name: gim
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - PORT=3000
    restart: unless-stopped

Deploy in one command:

docker compose up -d

Environment Variables

Variable Default Description
PORT 3000 Port the HTTP server binds to inside the container
NODE_ENV production Application runtime environment

Note

⚠️ Always pass sensitive variables like storage credentials or database URLs via environment variables or secret managers at runtime—never bake them into the Dockerfile.


Local Development

Ensure you have Bun installed on your system.

# Clone the repository
git clone [https://github.com/vomlabs/gim.git](https://github.com/vomlabs/gim.git)
cd gim

# Install dependencies
bun install

# Start local dev server
bun dev

Production Build Test

# Compile Nitro build to .output
bun run build

# Start production server
bun run .output/server/index.mjs

Building the Docker Image

Ensure BuildKit is enabled:

docker build -t ghcr.io/vomlabs/gim:1.0 .

License

MIT

About

Global Image Manager

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages