Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scaffoldly/scaffoldly
The Scaffoldly Toolchain: Deploy anything to AWS Lambda in Minutes
https://github.com/scaffoldly/scaffoldly
aws axum csharp dotnet express flask hyper lambda nextjs node python rust scaffoldly
Last synced: 2 months ago
JSON representation
The Scaffoldly Toolchain: Deploy anything to AWS Lambda in Minutes
- Host: GitHub
- URL: https://github.com/scaffoldly/scaffoldly
- Owner: scaffoldly
- License: other
- Created: 2024-06-19T13:40:47.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-10-21T12:23:11.000Z (3 months ago)
- Last Synced: 2024-10-22T09:52:50.180Z (3 months ago)
- Topics: aws, axum, csharp, dotnet, express, flask, hyper, lambda, nextjs, node, python, rust, scaffoldly
- Language: TypeScript
- Homepage: https://scaffoldly.dev
- Size: 237 MB
- Stars: 17
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
README
Scaffoldly is a **new framework** for **packaging and deploying** applications to AWS. Scaffoldly provides:
- a [Simple Configuration](#usage) to specify packaging and runtime configuration.
- a [Command Line Interface](#command-line-interface) for packaging and deploying locally.
- a [GitHub Action](#github-action) for packaging and deploying in CI/CD.It is a **open-source**, **no-code**, **developer-focused** solution that simplifies the packaging and deployment process for modern web applications.
✨ Our **[docs site](https://scaffoldly.dev)** is built and deployed **using Scaffoldly** ([source](https://github.com/scaffoldly/scaffoldly/blob/729100c6ef18de6105d0f12c721640be8e8df004/packages/website/package.json#L59-L87)), which uses the **Docusaurus Framework**, is hosted on **AWS Lambda**, and is deployed using **GitHub Actions** ([source](https://github.com/scaffoldly/scaffoldly/blob/729100c6ef18de6105d0f12c721640be8e8df004/.github/workflows/push-main.yml#L49-L52)).
### Motivation
- Current tooling (such as Serverless, AWS SAM, Terraform, Pulumi, AWS CDKs, and Docker) is **unintuitive** and **cumbersome** for developers.
- Popular frameworks (such as Next.js) are **expensive** and **difficult** to deploy to public Clouds Providers such as AWS.
- Most applications can be run **cost effectively** in **serverless compute** such as AWS Lambda.We believe that developing apps locally has been made incredibly easy. **Deploying them to the Cloud Provider of your choice should be equally easy**. [Learn More](https://scaffoldly.dev/about).
### Key Features
- **Automatic Docker Image Generation**: No need to write Dockerfiles manually.
- **Infrastructure Automation**: Automatically create and manage AWS resources.
- **Built-in CI/CD Support**: Integrate with GitHub Actions for seamless deployments.
- **Environment Variables and Secrets**: Dotenv and GitHub Secrets are built-in.
- **Minimal configuration required**: Get started quickly with sensible defaults.
- **Built for the Public Cloud**: Deploy applications to AWS Lambda effortlessly. Don't get locked into using Vercel or Netlify.
- **Cost Effective**: Only pay for what you use with AWS Lambda.## Tutorials
- Next.js: [Deploy a Next.js application to AWS lambda in 5 minutes](https://scaffoldly.dev/docs/tutorials/nextjs)
## Usage
Using a minimal configuration in `package.json`, the `scaffoldly` toolchain can package and deploy an application:
```jsonc title="package.json"
{
"name": "my-app",
"version": "0.1.0",
// other package.json
"scaffoldly": {
"runtime": "node:22-alpine",
"handler": "localhost:3000",
"files": [".next", "node_modules", "package.json", "package-lock.json"],
"scripts": {
"install": "npm install",
"dev": "npm run dev",
"build": "npm run build",
"start": "npm run start"
}
}
}
```Running [`scaffoldly deploy`](#command-line-interface) or the [GitHub Action](#github-action) will automatically create and push a multi-stage Docker build to ECR and deploy it to AWS Lambda.
### Command Line Interface
```bash
npx scaffoldly [command]
```The Scaffoldly CLI is a developer friendly tool build and host applications on AWS Lambda with ease, and is available on [npm](https://www.npmjs.com/package/scaffoldly) and can be invoked using `npx`.
```
Commands:
npx scaffoldly show Display config, dockerfiles, etc.
npx scaffoldly dev [ALPHA FEATURE] Launch a development environment
npx scaffoldly deploy Deploy an environmentOptions:
--help Show help [boolean]
--version Show version number [boolean]
```_**See**_: [CLI Docs](https://scaffoldly.dev/docs/cli) for more iformation.
### GitHub Action
```yaml
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4- name: Deploy
uses: scaffoldly/scaffoldly@v1
with:
secrets: ${{ toJSON(secrets) }}
```Scaffoldly provides a seamless integration with GitHub Actions, allowing you to deploy your applications using GitHub, and is available on the [GitHub Actions Marketplace](https://github.com/marketplace/actions/scaffoldly).
_**See**_: [GitHub Action Docs](https://scaffoldly.dev/docs/gha) for more information.
### Usage Metrics Opt-Out
If you do not want to be included in Anonymous Usage Metrics, ensure an environment variable named `SCAFFOLDLY_DNT` is set:
```bash
SCAFFOLDLY_DNT=1 npx scaffoldly
```## Documentation
Documentation for the Scaffoldly toolchain is located at [https://scaffoldly.dev/docs](https://scaffoldly.dev/docs).
## Reporting Issues
- **Bugs and Features**: Please [Open a New Issue](https://github.com/scaffoldly/cli/issues/new/choose) in GitHub.
- **Security Advisories**: Please [Report a Advisory](https://github.com/scaffoldly/scaffoldly/security/advisories/new) in GitHub.## Maintainers
- [Scaffoldly](https://github.com/scaffoldly)
- [cnuss](https://github.com/cnuss)## License
[Functional Source License, Version 1.1](https://github.com/scaffoldly/scaffoldly?tab=License-1-ov-file)