summaryrefslogtreecommitdiff
path: root/index.js
blob: afb8ab957c901d21f89e9e36cf4bc13fbd86d290 (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
var okcms = require('okcms')

var isProduction = process.env.OK_PRODUCTION === 'true'

var PORT = process.env.PORT || 1337

var viewConfig = {
  template: 'index',
  data: [
    {type: 'project', query: '*'},
    {type: 'intro', query: 'introduction'},
  ]
}

var app = okcms.createApp({

  project: 'Jules Laplace Portfolio',

  debug: !isProduction,
  production: isProduction,

  schemas: {
    intro: {
      id: {type: 'string', hidden: true},
      title: {type: 'string'},
      body: {type: 'text'},
      mobileBody: {type: 'text'},
      accolades: {type: 'link-list'},
      press: {type: 'link-list'},
      speakers: {type: 'text'},
      clients: {type: 'text'},
    },
    project: {
      id: {type: 'string', hidden: true},
      title: {type: 'string'},
      alternateTitle: {type: 'string'},
      mobileTitle: {type: 'string'},
      year: {type: 'number'},
      client: {type: 'string'},
      link: {type: 'string'},
      linkText: {type: 'string'},
      NatureOfWork: {type: 'text'},
      brief: {type: 'text'},
      media: {type: 'media-list'},
      mobileMedia: {type: 'media-list'},
      press: {type: 'link-list'},
      audio: {type: 'string'},
      whiteCursor: {type: 'flag'},
      disabled: {type: 'flag'},
    },
  },

  resources: [
    { type: 'project' },
    { type: 'intro' },
  ],

  views: {
    '/': viewConfig,
    '/:id': viewConfig,
  },

  services: {
    s3: {
      key: process.env.S3_KEY,
      secret: process.env.S3_SECRET,
      bucket: process.env.S3_BUCKET,
      dirname: "portfolio",
      image: { allowed: true, preserveFilename: false, maxbytes: 2*1024*1024 },
      video: { allowed: true, preserveFilename: true, maxbytes: 200*1024*1024 },
      audio: { allowed: true, preserveFilename: true, maxbytes: 100*1024*1024 },
    },

    webhook: {
      active: isProduction,
      secret: process.env.WEBHOOK_SECRET,
      command: '/home/okfocus/portfolio/build.sh',
    },
  }

}).listen(PORT || 1337)

console.log('Server listening at port ' + PORT + '...');