banker-asl
v0.2.9
Published
A full-featured asset serving layer for single-page apps
Downloads
21
Maintainers
Readme
Banker
Banker is an asset serving layer built for single-page apps. It's built around the same conventions as ember-cli-deploy, meaning that it expects to find various index.html
files available in a Redis server.
Key | Value
------------------|----------
myapp:current | myapp:7fa8d0
myapp:7fa8d0c | <html>...</html>
myapp:48180ab | <html>...</html>
myapp:857f81a | <html>...</html>
The general idea is that you have an app that manages the data in Redis (via developer deploys, CI pipeline, etc...) and this little server keeps running, eventually making your new static assets available with zero downtime.
Requirements
- Node.js >=
5.0.0
- Somewhere to deploy this app (i.e., Heroku)
- A Redis server (i.e., Heroku free Redis)
Basic Configuration
The one simple way of configuring banker is by environment variables
General Configuration
Variable | Required | Default | Description
------------------|----------|---------------|------------------------
APP_NAME
| yes | | App name to use when looking for versions in Redis
PORT
| no | 3000
| Port to serve assets on
Redis configuration
Variable | Required | Default | Description
-----------------------|----------|---------------|------------------------
REDIS_URL
| yes | | Redis url
Advanced Configuration
Banker can be consumed as a library in your own simple node.js app. You can then specify URL patterns to map to "apps" using regular expressions.
const BankerServer = require('banker-asl/server');
const RedisDataSource = require('banker-asl/datasource/redis');
let server = new BankerServer({
datasource: new RedisDataSource({
url: 'redis://username:[email protected]:12345',
apps: {
myapp: {
forceHttps: true, // Incoming http requests will be redirected to https
respondTo: [/^myapp.herokuapps.com/, /^myapp-old.herokuapps.com/]
},
myotherapp: {
respondTo: [/^www.myotherapp.com/]
},
noappfound: {
respondTo: [/^.*/]
}
}
}),
});
server.listen(3000);