An open API service indexing awesome lists of open source software.

https://github.com/harijoe/serverless-boilerplate

Minimal yet super-functional serverless boilerplate
https://github.com/harijoe/serverless-boilerplate

boilerplate serverless

Last synced: about 1 month ago
JSON representation

Minimal yet super-functional serverless boilerplate

Awesome Lists containing this project

README

          

# Serverless Boilerplate ⚡️
The easiest serverless boilerplate to get started with 👌

_by [@JulienVallini](https://twitter.com/julienvallini)_

## Motivation
Serverless is awesome : no more server to setup, ultra scalable and very cheap. But I found not very easy to find the perfect setup to get started with. Using serverless brings a lot of not well documented pitfalls that drain a considerable amount of time and energy. I made this boilerplate after gathering the solutions to all of these.

The goal is to keep these pitfalls out of the way.

## Installation
```
# If you don't already have the serverless cli installed, do that
npm i -g serverless

# If it's the first time you use aws, you need to configure credentials
# https://github.com/serverless/serverless/blob/master/docs/providers/aws/guide/credentials.md

# Use the serverless cli to install this repo
serverless install --url https://github.com/harijoe/serverless-boilerplate --name

# cd into project and set it up
cd

# Install dependencies
npm i

# Install dynamoDB libs
sls dynamodb install
```

## How to use it ?
First, change service name in `serverless.yml` !

To start offline development:
```
npm start
```

To deploy:
```
sls deploy -s
```

Current available environments are `staging` and `production` but you can configure any environment you like in `env.yml`

## What's included ?
* Environments
* Webpack
* Offline
* DynamoDB
* Middlewares
* Prettier
* Module by absolute path resolution

### Environments
Environments and environment variables can be configured in `env.yml`. `dev` is the one used by default.
You can deploy to staging or production by using `sls deploy -s prod`. A different dynamoDB instance for each environment will be created.

### Prettier
Best code formatting tool. It will be automatically run on each commit.

Tweak .prettierrc to match your own flavor.

### Webpack
`serverless-webpack` allows the use of babel plugins to enable modern javascript features. You should not modify its configuration.

Tweak .babelrc to add plugins you want to use.

### Offline
`serverless-offline` is configured to enable offline development, use it with `npm run start`

### DynamoDB
Support for DynamoDB both locally and in the cloud. It's a quite easy to use nosql database

### Middlewares
[Handly](https://github.com/harijoe/handly) is included. It's a handy wrapper for serverless handlers applying very useful middlewares.

## License
Serverless Boilerplate is [MIT licensed](https://opensource.org/licenses/MIT).