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
89
90
|
var okcms = require('okcms')
var isProduction = process.env.OK_PRODUCTION === 'true'
var viewConfig = {
template: 'index',
data: [
{type: 'timeline', query: '*'},
{type: 'page', query: '*'},
]
}
var photoConfig = {
template: 'photo',
}
var app = okcms.createApp({
project: 'Hansel and Gretel',
debug: !isProduction,
production: isProduction,
admin: {
dashboard: {
resources: {
painting: {
display: 'image',
}
}
}
},
schemas: {
timeline: {
id: {type: 'string', hidden: true},
date: {type: 'string'},
title: {type: 'string'},
medium: {type: 'string'},
category: {type: 'enum', options:['Surveillance','Drones','Facial Recognition']},
keywords: {type: 'text'},
description: {type: 'text'},
image: {type: 'image'},
credit: {type: 'text'},
links: {type: 'link-list'},
disabled: {type: 'flag'},
},
page: {
id: {type: 'string', hidden: true},
title: {type: 'string'},
body: {type: 'text'},
disabled: {type: 'flag'},
},
},
resources: [
{ type: 'timeline' },
{ type: 'page' },
],
views: {
'/': viewConfig,
'/timeline': viewConfig,
'/timeline/:id': viewConfig,
'/page/:id': viewConfig,
'/photo/:id': photoConfig,
},
services: {
s3: {
key: process.env.S3_KEY,
secret: process.env.S3_SECRET,
bucket: process.env.S3_BUCKET,
dirname: process.env.S3_DIRNAME,
maxbytes: 1024*1024*2,
},
awmail: {
lib: require("./lib/awmail"),
apikey: process.env.MAILGUN_API_KEY,
domain: process.env.MAILGUN_DOMAIN,
secret: process.env.MAIL_SECRET,
from: 'Hansel and Gretel <mail@hanselandgretelarmory.com>',
subject: 'We Found Your Face',
},
},
}).listen(process.env.PORT || 1337)
console.log('Server listening at port ' + (process.env.PORT || 1337) + '...');
|