šŸ–¼ļø KeepTrack Image Service

MinIO-based Image Management System

šŸ“¤ Upload Image
šŸ“œ Get Scripts
ā¤ļø Health & Debug
šŸ”— API Reference

šŸ“¤ Upload Image to MinIO

This will be the exact name of the image in MinIO

šŸ“œ Get Scripts

ā¤ļø Health & Debug

šŸ”— API Reference & Documentation

šŸš€ Project Overview

KeepTrack Image Service is a high-performance image management system built with Go and MinIO. It provides a simple, scalable solution for storing, serving, and managing images with direct URL access.

šŸ—ļø Architecture

  • Backend: Go with Fiber framework
  • Storage: MinIO (S3-compatible object storage)
  • Frontend: HTML5 with modern JavaScript
  • Deployment: Docker containerization

šŸ”§ Key Features

  • Direct Image Access: Images are served directly via clean URLs
  • Bucket Organization: Organize images into logical buckets
  • RESTful API: Complete CRUD operations for images
  • Security: Built-in security headers and validation
  • Caching: Optimized caching for better performance
  • Monitoring: Health checks and status monitoring

šŸ“” API Endpoints

Base URL: https://image.velonovo.com

šŸ–¼ļø Image Management

  • Upload Image: POST /v1/upload
  • List All Images: GET /v1/images
  • Get Image Info: GET /v1/bucket/{bucket}/image/{object}
  • Delete Image: DELETE /v1/bucket/{bucket}/image/{object}

šŸ“¦ Bucket Management

  • Create Bucket: POST /v1/bucket/{bucket}
  • List All Buckets: GET /v1/buckets
  • List Bucket Images: GET /v1/bucket/{bucket}/images

šŸ” System & Monitoring

  • Health Check: GET /v1/health
  • Service Status: GET /status
  • API Info: GET /api

šŸ–¼ļø Direct Access

  • Direct Image: GET /{bucket}/{image}
  • Image Metadata: GET /info/{bucket}/{image}

šŸ’” Usage Examples

šŸ“¤ Upload an Image

curl -X POST https://image.velonovo.com/v1/upload \
  -F "bucket_name=my-bucket" \
  -F "image_name=profile-photo.jpg" \
  -F "image=@/path/to/image.jpg"

šŸ–¼ļø Access Image Directly

https://image.velonovo.com/my-bucket/profile-photo.jpg

šŸ“‹ List All Images

curl https://image.velonovo.com/v1/images

šŸ—‘ļø Delete an Image

curl -X DELETE https://image.velonovo.com/v1/bucket/my-bucket/image/profile-photo.jpg

šŸ”’ Security & Best Practices

  • Supported Formats: JPG, JPEG, PNG, GIF, WEBP
  • File Size Limit: 10MB per image
  • Bucket Naming: 3-63 characters, lowercase, alphanumeric, hyphens, dots
  • Image Naming: Alphanumeric, hyphens, underscores, dots
  • Caching: Images are cached for 1 year
  • CORS: Enabled for cross-origin access

šŸš€ Performance Features

  • Streaming: Images are streamed directly from MinIO
  • Caching: Browser and CDN friendly caching headers
  • Compression: Efficient image serving with proper content types
  • Error Handling: Graceful error responses with helpful messages

šŸ“Š Monitoring & Health

The service provides comprehensive monitoring endpoints:

  • /health: Basic service health check
  • /status: Detailed service status with metrics
  • Logging: Structured logging for all operations

šŸ”§ Configuration

The service is configured via environment variables:

  • MINIO_ENDPOINT: MinIO server address
  • MINIO_ACCESS_KEY: MinIO access credentials
  • MINIO_SECRET_KEY: MinIO secret credentials
  • PORT: Service port (default: 8101)

Processing...