🚀
sherpa.sh docs
HomeInfrastructureAboutPricingDocsSign Up
  • Getting Started
    • What is sherpa.sh?
    • Getting Started
    • App Configuration
    • Custom Domains
    • Regions
  • TRAINING
    • Video Courses
      • Lesson 1: Deploying your first application
  • Applications
    • Supported Frameworks
      • Sveltekit
      • Next.js
      • React
      • Payload CMS
      • Docker
      • Custom Setups
    • Supported AI Website Builders
    • Continuous Delivery
    • CDN & Caching
  • Promotions & Rollbacks
  • Debugging
  • Securing your Application
  • Databases
    • Managed Databases
      • Postgres
      • MySQL
      • MongoDB
  • Architecture
    • Architecture Overview
      • Next.js Architecture
    • Compliance
  • Integration Help
    • Clerk
  • Zero Downtime Migration
  • CHANGELOG
    • v0.4.0 - 22/5/25
    • v0.3.2 - 4/5/25
    • v0.3.1 - 22/4/25
    • v0.3.0 - 9/04/25
    • v0.2.0 - 27/03/25
    • v0.1.0 - 21/03/25
Powered by GitBook
On this page
  • Supported Frameworks
  • Supported Features
  • Docker Quickstart
  • Architecture
  • Configuration
  • CDN Integration
  • Auto-scaling
  • Enterprise Features
  1. Applications
  2. Supported Frameworks

Docker

We've deployed thousands of containerized applications at scale and have optimized the sherpa.sh infrastructure for maximum Docker performance. When deploying Docker containers to sherpa.sh you get additional performance and scalability benefits you wouldn't get when self-hosting - with zero-configuration - thanks to our container-optimized architecture.

Supported Frameworks

If it works in a Docker container on your machine, it works on sherpa.sh. Full stop. No magic tricks, no obscure configuration requirements – just containers doing what containers do best: containing things.

Popular frameworks we've seen deployed (but certainly not limited to):

  • Django

  • Rails

  • Laravel

  • Express.js

  • Flask

  • Spring Boot

  • FastAPI

  • Phoenix

  • ASP.NET Core

  • Strapi

  • NestJS

We've even seen people containerize legacy Yesod (Haskell) applications. We didn't ask why, and neither should you.

Supported Features

Feature
Support

Custom Dockerfile

✅

Multistage builds

✅

Custom port configuration

✅

Environment variables

✅

Secrets management

✅

Autoscaling scale

✅

Multi region deployment

Enterprise Only

Blue/green deployment

✅

Health checks

✅

Container logs

✅

Custom resource allocation

✅

Docker Quickstart

What you get out of the box:

  • Zero-configuration deployments that just work

  • Automatic HTTPS and custom domain support

  • Built-in performance optimization

  • Global, production-ready infrastructure that can scale

  • Never pay for idle instances. Only pay for what you use

Architecture

To maximize performance - and savings - we build and deploy your Docker containers using our optimized infrastructure. When you push your code, we:

  1. Detect your Dockerfile in your repository

  2. Build your container image in the same directory as your Dockerfile

  3. Deploy to your configured region(s)

  4. Auto-scale horizontally based on traffic patterns. Has traffic increases we spend up more containers. As traffic decreases we spin down those containers.

Configuration

We believe in convention over configuration. Your existing Dockerfile works immediately - no additional setup required. When you need customization, our platform stays flexible.

Dockerfile Requirements

  • Your Docker file can use any name. It doesn't have to be Dockerfile . Just specify it in the settings.

  • Must expose a port via the EXPOSE instruction. You must set this value inside of the application settings.

  • Should follow Docker best practices for layer caching and image size. This is not necessary. It will just help speed up your build time.

CDN Integration

All Docker container deployments are automatically placed behind our global CDN. This provides:

  1. Automatic static asset caching: The CDN respects any cache-control headers returned by your application

  2. Framework-specific optimizations: Our CDN will automatically cache the static assets the application you are using as long as they are served over HTTP from the Docker container. This will work out the box for most frameworks. Django Example: For Django applications, static files served from your /static/ directory will automatically be cached by the CDN according to your cache headers. For optimal performance, set:

    pythonCopy# settings.py
    STATIC_URL = '/static/'
    STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'

    Rails Example: For Rails applications, assets compiled with the asset pipeline will be cached by the CDN. Configure your production environment with:

    rubyCopy# config/environments/production.rb
    config.public_file_server.headers = {
      'Cache-Control' => 'public, max-age=31536000'
    }
    config.assets.compile = false
    config.assets.digest = true

Auto-scaling

Your containers automatically scale based on traffic patterns:

  • Scale up: New container instances are provisioned when traffic increases

  • Scale down: Unused containers are gracefully terminated when traffic decreases

Enterprise Features

Have a unique need? Our enterprise features deliver additional capabilities:

  • Multi-region deployments: Deploy your containers to multiple geographic regions for global performance

  • Custom build configurations: Have a special need? We can customize our platform

  • Advanced security features: If you need SOC II, HIPAA, or FedRamp certified deployments

  • Dedicated support staff: Dedicated account manager and support engineers for your company's unique needs

PreviousPayload CMSNextCustom Setups

Last updated 2 months ago

To deploy your first Docker container, follow our Your container will be live in ~2 minutes.

quick start guide.