fastboot-app-server is a dedicated application server designed for deploying and running Ember FastBoot applications in production environments. It provides robust capabilities for managing the lifecycle of an Ember app, including downloading new builds, automatically scaling across CPU cores using Node.js clustering, and seamlessly detecting and hot-reloading new application versions without downtime. The current stable version is 4.1.4. The project maintains a steady release cadence with frequent patch updates and less frequent major versions, with v4.0.0 released in early 2024. Key differentiators include its built-in extensibility, allowing developers to customize how app builds are downloaded (Downloader), how new versions are detected (Notifier), and even swap out the underlying HTTP server implementation (e.g., using Express) to integrate custom middleware or routing. It aims to simplify the operational aspects of server-side rendering Ember applications.
npm install fastboot-app-serverVerified import paths — ran on the pinned version, not inferred.
Demonstrates how to initialize and start a FastBoot App Server with common configuration options such as distPath, gzip, host, port, custom sandbox globals, logging, and chunked responses.
Upgrade your Node.js runtime to version 14 or higher (e.g., 14.*, >=16) before deploying FastBoot App Server v4+.
Review your Ember FastBoot app's code for implicit injections and update them to use explicit injection patterns supported by modern Ember versions. Refer to Ember FastBoot documentation for current best practices on dependency injection.
While currently documented, be aware that future versions might alter the internal path. Consider wrapping this import in your own module or monitoring release notes for changes to this pattern. For complex customizations, extending `FastBootAppServer` itself might be a more stable approach if the `src` path becomes an issue.
Double-check that the `distPath` value in your server configuration (e.g., `fastboot-server.js`) accurately reflects the absolute or relative path to your Ember app's `dist` folder. Ensure the `dist` folder exists and contains the necessary FastBoot build artifacts.
Ensure you are using CommonJS `require()` syntax (`const FastBootAppServer = require('fastboot-app-server');`) if your project is not configured for ESM. Also, verify `fastboot-app-server` is correctly installed in your `node_modules`.Ensure `buildSandboxGlobals` is passed as an option during the `FastBootAppServer` constructor, not called directly. It should be a function that receives `defaultGlobals` and returns an object of additional globals.
Increase your system's `fs.inotify.max_user_watches` limit (Linux) or `kern.maxfiles` (macOS). Alternatively, for very large apps or complex deployments, consider disabling the server's default file watching mechanism if you have an external build deployment strategy.