Deploy Simple Image Service
An image service that helps store and resize images.
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 optionalCACHE_TIME
andBASE_URL
configuration - Port 8080 Exposure: Service listens on port 8080 for HTTP traffic
- HTTPS/SSL: Recommended for production (Railway provides automatic HTTPS)
Deployment Dependencies
- Railway Platform - Cloud platform for deploying Docker containers
- Image Service GitHub Repository - Source code and documentation
- Pre-built Docker Images - Official images for
linux/amd64
andlinux/arm64
- Image Service Client Library - Official Dart client for integration
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