This repository was archived by the owner on Aug 9, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmicrocloud.coffee
More file actions
75 lines (60 loc) · 2.25 KB
/
microcloud.coffee
File metadata and controls
75 lines (60 loc) · 2.25 KB
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
mongoose = require("mongoose")
log = require("log4js").getLogger()
restify = require("restify")
config = require("./server/config")
auth = require("./utils/auth")
platform_api = require("./server/api/platform/client")
stats = require("./server/stats")
customer_io = require("./utils/customer_io")
.setupClient("d98bb6ac9f4e37c473b7", "9aa1813a41e948025b76")
# TODO configure mongodb
mongoose.connect(config.get('mongodb'))
server = restify.createServer
name: "microcloud.10xengineer.me"
version: "0.1.0"
# Set default headers
oldDefaultResponseHeaders = require('http').ServerResponse.prototype.defaultResponseHeaders
restify.defaultResponseHeaders = (data) ->
oldDefaultResponseHeaders.call(this, data)
this.header('Access-Control-Allow-Methods', 'OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT')
this.header('Access-Control-Allow-Headers', 'Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, X-Requested-With, X-Labs-Date, X-Labs-Token, X-Labs-Signature')
# setup default Platform API client
platform_api.setup(
config.get("platform:token"),
config.get("platform:secret"),
config.get("platform:url"))
# model
require("./server/model/proxy_user").register
require("./server/model/template").register
require("./server/model/node").register
require("./server/model/pool").register
require("./server/model/machine").register
require("./server/model/snapshot").register
# librato metrics
stats.setup()
# housekeeping
require("./server/housekeeping").setup()
# routes
routes = require("./server/routes")
server.use restify.acceptParser(server.acceptable)
server.use restify.queryParser()
server.use restify.bodyParser()
auth.setup server, require("./server/utils/auth_helper"),
ping:
url_match: new RegExp("^/ping\\?token\=(.*)")
schema: "token"
token: "pYvf8p3LxFnqoAGn"
proxy_users:
url_match: new RegExp("^/proxy_users/.*\\?token\=(.*)")
schema: "token"
token: "MnMFqjHo368Pmf2R"
gecko_widget:
url_match: new RegExp("^/stats/gecko\\?token\=(.*)")
schema: "token"
token: "3Kqd3fYTh9K3bXEp"
server.use stats.api_calls_log
# setup routes
routes.registerRoutes server
server.use restify.conditionalRequest()
server.listen config.get('server:port'), ->
log.info "%s listening at %s", server.name, server.url