Banker is an asset serving layer for single-page web apps, built with ES2015
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.
5.0.0
The one simple way of configuring banker is by environment variables
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 |
Variable | Required | Default | Description |
---|---|---|---|
REDIS_URL |
yes | Redis url |
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);