summaryrefslogtreecommitdiff
path: root/landr.conf.js
blob: e8248d2f881444a0c2d937bb9bf57fc771e4771e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
const fs = require('fs')

const getArch = (str) => {
  const [ _, arch ] = str.match(/-([^-]+)\.tar\.gz$/)
  return arch
}

const packagePrettyName = (str) => `Docker for ${getArch(str)}`

const prepAssets = (release) => {
  release.assets = release.assets.map((asset) => {
    return Object.assign({}, asset, {
      prettyName: packagePrettyName(asset.name),
      arch: getArch(asset.name),
      os: 'Linux'
    })
  })

  return release
}

module.exports = {
  theme: 'landr-theme-basic',
  hooks: {
    'post-build': ({ config }) => {
      const data = fs.readFileSync(`${__dirname}/contrib/install.sh`, 'utf-8')
      return fs.writeFileSync(`${config.distDir}/install.sh`, data)
    }
  },
  middleware: (store, action, next) => {
    if (action.type === 'ADD_RELEASE') {
      // intercept all releases and add pretty labels to assets
      action.payload = prepAssets(action.payload)
    }

    return next(action)
  },
  settings: {
    lead: 'A Moby-based container engine for IoT',
    analytics: {
      mixpanelToken: '81dd4ca517f8bd50d46aa8fe057882ac',  // mixpanelToken
      gosquaredId: 'GSN-122115-A', // gosquared Id
      gaSite: 'balena.io', // google Analytics site eg balena.io
      gaId: 'UA-45671959-5' // google Analytics ID
    },
    theme: {
      colors: {
        primary: '#00A375'
      }
    },
    callToActionCommand: 'curl -sfL https://balena.io/install.sh | sh',
    features: [
      {
        'title': 'Small footprint',
        'image': 'footprint',
        'description': '3.5x smaller than Docker CE, packaged as a single binary'
      },
      {
        'title': 'Multi-arch support',
        'image': 'multiple',
        'description': 'Available for a wide variety of chipset architectures, supporting everything from tiny IoT devices to large industrial gateways'
      },
      {
        'title': 'True container deltas',
        'image': 'bandwidth',
        'description': 'Bandwidth-efficient updates with binary diffs, 10-70x smaller than pulling layers in <a href="https://resin.io/blog/announcing-balena-a-moby-based-container-engine-for-iot/#technical_comparison" target="_blank">common scenarios</a>'
      },
      {
        'title': 'Minimal wear-and-tear',
        'image': 'storage',
        'description': 'Extract layers as they arrive to prevent excessive writing to disk, protecting your storage from eventual corruption'
      },
      {
        'title': 'Failure-resistant pulls',
        'image': 'failure-resistant',
        'description': 'Atomic and durable image pulls defend against partial container pulls in the event of power failure'
      },
      {
        'title': 'Conservative memory use',
        'image': 'undisturbed',
        'description': 'Prevents page cache thrashing during image pull, so your application runs undisturbed in low-memory situations'
      }
    ],
    motivation: [
      'Balena is a new container engine purpose-built for embedded and IoT use cases and compatible with Docker containers. </br></br>Based on Docker’s Moby Project, balena supports container deltas for 10-70x more efficient bandwidth usage, has 3.5x smaller binaries, uses RAM and storage more conservatively, and focuses on atomicity and durability of container pulling.</br></br>Read more in our <a href="https://resin.io/blog/announcing-balena-a-moby-based-container-engine-for-iot" target="_blank">blog post</a>.'
    ],
  }
}