ACE (Automated Cloud Environment) is a powerful SDK for managing and deploying applications to Fly.io. It provides a high-level, declarative way to define your infrastructure and applications, making it easy to create, update, and manage your Fly.io resources.
ACE embraces the philosophy of "serverless" in the sense that you shouldn't need to worry about servers, unless you need to. By providing a flexible and powerful way to define infrastructure, whether you need a simple VM or a complex application, ACE has you covered.
Deploy a remix website.
import { FlyStack } from "./sdk/core/FlyStack";
import { RemixSite } from "./sdk/constructs/RemixConstruct";
const RemixDeployment = new RemixSite(new FlyStack(), "remix-site", {
name: "Awesome Website",
domain: "awesome.website",
env: {
NODE_ENV: "production",
}
});
const deployment = await RemixDeployment.deploy();
Constructs are the building blocks of ACE. They are used to define your infrastructure and applications. Currently, ACE has the following constructs, for building applicaitons on Fly.io:
These can be composed together to create a fully featured applications.
Examples can be found, including a robist full-stack app in the examples directory.
ACE (Fly) is built on top of a number of other packages:
- fly-admin
- Typescript package for interacting with Fly.io's admin API
- fly-apps/dockerfile-node
- Tool for building Dockerfiles for pre-configured Node.js applications on Fly.io
- Used in the examples/applications/remix-app directory to build a Docker image for a Remix application
The CLI is a command-line interface for ACE. It is used to create, update, and manage your infrastructure and applications.
ACE has a local development dashboard that allows you to develop your application locally. It is built using Remix and runs locally in your browser.
ACE has a backend service that is responsible for running deployments. This is a Node.js application that is deployed to Fly.io. It is responsible for creating and managing your infrastructure and applications. It is built using Remix and Supabase and deployed to Fly.io.
This project is shamelessly inspired by: https://sst.dev/