One-click deployment configurations for popular cloud platforms.
# Install flyctl and deploy curl -L https://fly.io/install.sh | sh fly deploy# Local development docker-compose up # Production with Nginx docker-compose --profile production up- Click the "Deploy on Railway" button above
- Connect your GitHub account
- Fork this repository
- Railway will automatically build and deploy
- Your Shimmy instance will be available at
https://your-app.railway.app
- Click the "Deploy to Render" button above
- Connect your GitHub repository
- Render will use the
render.yamlconfiguration - Your service will be available with automatic HTTPS
- Install the Fly CLI:
curl -L https://fly.io/install.sh | sh - Clone this repository:
git clone https://github.com/Michael-A-Kuykendall/shimmy.git - Navigate to the project:
cd shimmy - Create and deploy:
fly deploy - Access your app:
fly open
# Build and deploy to Cloud Run gcloud builds submit --tag gcr.io/PROJECT-ID/shimmy gcloud run deploy --image gcr.io/PROJECT-ID/shimmy --platform managed- Create
apprunner.yamlin your repository root:
version: 1.0 runtime: docker build: commands: build: - echo "Building Shimmy with Docker" run: runtime-version: latest command: shimmy serve --bind 0.0.0.0:8080 network: port: 8080- Create app via DigitalOcean control panel
- Connect your GitHub repository
- DigitalOcean will detect the Dockerfile automatically
- Set environment variables as needed
| Variable | Default | Description |
|---|---|---|
PORT | 11434 | Port to bind the server |
RUST_LOG | info | Log level (error, warn, info, debug, trace) |
SHIMMY_BIND | 0.0.0.0:11434 | Full bind address |
- CPU: 0.5 vCPU
- Memory: 512MB RAM
- Storage: 100MB (binary only)
- CPU: 1 vCPU
- Memory: 1GB RAM
- Storage: 1GB+ (for model caching)
- CPU: 2+ vCPU
- Memory: 4GB+ RAM
- Storage: 10GB+ SSD
-
Authentication: Shimmy doesn't include built-in authentication. Use a reverse proxy (Nginx, Cloudflare) for auth.
-
Rate Limiting: The included Nginx configuration has basic rate limiting. Adjust as needed.
-
HTTPS: Most cloud platforms provide automatic HTTPS. For self-hosted deployments, configure SSL certificates.
-
Firewall: Only expose port 11434 (or your configured port) to the public internet.
All configurations include health checks at /health endpoint.
Set RUST_LOG=debug for detailed logging. Most platforms provide log aggregation.
For production deployments, consider adding:
- Prometheus metrics
- Jaeger tracing
- Custom monitoring dashboards
Shimmy is stateless and can be horizontally scaled. Use a load balancer to distribute requests.
For better performance with large models:
- Increase memory for model caching
- Add more CPU cores for parallel processing
- Use SSD storage for faster model loading
- Out of Memory: Increase memory allocation or use memory-mapped loading
- Slow Startup: Enable model caching and use persistent storage
- Connection Timeout: Increase proxy timeout settings for large model inference
# Enable debug logging RUST_LOG=debug shimmy serve# Access running container docker exec -it shimmy-container /bin/bash # Check logs docker logs shimmy-container