Deployment

ember-cli-deploy or Plain Static Host

Deployment

Deploy dist to any static host with SPA fallback. For richer pipelines, ember-cli-deploy adds plugins for S3, FastBoot, redis revisions, and more.

4 min read Level 2/5 #ember#deployment#production
What you'll learn
  • Upload dist to a static host with SPA fallback
  • Use ember-cli-deploy with provider plugins
  • Configure a 200/index.html fallback

An Ember app is just a folder of static files. Pick a host, copy dist/, configure SPA fallback, and you are live.

Static Hosting

ember build --environment=production

# upload dist/ to your host
aws s3 sync dist/ s3://my-bucket --delete

For Netlify, Cloudflare Pages, GitHub Pages, Vercel — push the repo and point the build command at ember build --environment=production with publish dir dist.

SPA Fallback

Because Ember owns routing, the server must return index.html for any unknown path. Examples:

// netlify.toml or _redirects
/*  /index.html  200
// vercel.json
{
  "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}

Without this, deep links return 404 on refresh.

ember-cli-deploy

For multi-target pipelines, atomic revisions, and FastBoot deploys:

ember install ember-cli-deploy
ember install ember-cli-deploy-s3
ember install ember-cli-deploy-redis

ember deploy production

A typical pipeline uploads assets to S3, pushes the index HTML into Redis keyed by revision, and lets a tiny Node server pick which revision to serve. Roll back instantly by switching the Redis key.

FastBoot Hosts

For SSR you need a Node runtime: fastboot-app-server self-hosted, or one of the supported PaaS options (Render, Fly, Heroku, etc).

Going Further →