Deploy Simple Image Service

An image service that helps store and resize images.

Deploy Simple Image Service

mtwichel/image_service:latest

mtwichel/image_service:latest

Just deployed

/app/data

Deploy and Host Simple Image Service on Railway

Simple Image Service is a high-performance image storage and serving platform built with Dart and Dart Frog, designed primarily for Flutter developers. It provides secure image uploads with API key authentication, on-the-fly image transformation (resize, quality adjustment), temporary single-use upload tokens, and a modern web dashboard for managing your images—all with built-in caching and CORS support.

About Hosting Simple Image Service

Deploying Simple Image Service on Railway is incredibly straightforward, especially for Flutter developers looking for a backend image solution. Simply click deploy and the Railway template handles everything automatically—no Dockerfile configuration or manual setup required. Built entirely in Dart, the service compiles to a native executable (~20MB) running on a minimal image for optimal performance and security. The template automatically creates the SECRET_KEY environment variable for API authentication, mounts a persistent volume at /app/data to preserve uploaded images between deployments, and exposes port 8080 for HTTP traffic. With Railway's automatic HTTPS, you get a production-ready image service in seconds with zero infrastructure complexity.

Common Use Cases

  • Mobile & Web App Backend: Generate temporary upload URLs so clients can securely upload images directly from Flutter, React, or Angular apps without exposing your API key, then retrieve transformed thumbnails and full-size images via the REST API.

  • Content Management Systems: Use the beautiful web dashboard to manage images through drag-and-drop uploads, browse with search/filter capabilities, copy public URLs, and delete images—perfect for marketing teams and content creators.

  • Dynamic Image Delivery: Serve images with on-the-fly transformations using URL parameters (width, height, quality) to generate responsive images for different screen sizes without pre-processing, complete with aggressive caching headers (7-day default) for optimal performance.

Dependencies for Simple Image Service Hosting

  • Docker Support: Railway must support Docker deployments (native support included)
  • Persistent Volume Storage: Minimum 1GB for image storage at /app/data path
  • Environment Variables: Secure storage for SECRET_KEY and optional CACHE_TIME and BASE_URL configuration
  • Port 8080 Exposure: Service listens on port 8080 for HTTP traffic
  • HTTPS/SSL: Recommended for production (Railway provides automatic HTTPS)

Deployment Dependencies

Implementation Details

One-Click Deployment:

Just click deploy! The Railway template automatically configures everything:

  • ✅ Pulls the pre-built Docker image: ghcr.io/mtwichel/image_service:latest
  • ✅ Creates SECRET_KEY environment variable (you just provide the value)
  • ✅ Mounts persistent volume at /app/data for image storage
  • ✅ Exposes port 8080 for HTTP traffic
  • ✅ No Dockerfile setup or manual configuration needed

Environment Variables (Pre-configured by Template):

# Required - Template creates this variable, you provide the value
SECRET_KEY=your-secure-api-key-here

# Optional - Add these manually if needed
BASE_URL=https://your-railway-domain.railway.app
CACHE_TIME=604800  # 7 days in seconds (default)

Integration with Flutter Apps:

Use the official Dart client library for seamless integration:

import 'package:image_service_client/image_service_client.dart';

final client = ImageServiceClient(
  baseUrl: 'https://your-railway-domain.railway.app',
  apiKey: 'your-secret-key',
);

// Upload from Flutter app
final response = await client.uploadImage(
  imageBytes: imageBytes,
  fileName: 'photo.jpg',
);

Health Check Endpoint:

The service exposes a web dashboard at /dashboard which can be used for basic health monitoring and image management.

Why Deploy Simple Image Service on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Simple Image Service on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

mtwichel/image_service:latest

ghcr.io/mtwichel/image_service:latest

More templates in this category

View Template
Postgres-to-R2 Backup
Auto back up PostgreSQL databases to Cloudflare R2 with optional encryption

View Template
ReadySet
A lightweight caching engine for Postgres

View Template
Simple S3
Deploy a S3-compatible storage service with a pre-named bucket.