diff options
author | Johannes <johannes@cloudron.io> | 2016-11-17 12:58:45 +0100 |
---|---|---|
committer | Johannes <johannes@cloudron.io> | 2016-11-17 12:58:45 +0100 |
commit | e31aa8a8d9fef96357f18a33940adacecd1ca363 (patch) | |
tree | bb9b56ae20d978555c0026bc0b56a60274c51cc1 /server.js | |
parent | 3d716d9ef715d3bfd70631161d022abda0467b71 (diff) | |
download | Surfer-e31aa8a8d9fef96357f18a33940adacecd1ca363.tar.gz Surfer-e31aa8a8d9fef96357f18a33940adacecd1ca363.tar.zst Surfer-e31aa8a8d9fef96357f18a33940adacecd1ca363.zip |
Rename app.js -> server.js
Diffstat (limited to 'server.js')
-rwxr-xr-x | server.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/server.js b/server.js new file mode 100755 index 0000000..eaeed17 --- /dev/null +++ b/server.js | |||
@@ -0,0 +1,55 @@ | |||
1 | #!/usr/bin/env node | ||
2 | |||
3 | 'use strict'; | ||
4 | |||
5 | |||
6 | var express = require('express'), | ||
7 | morgan = require('morgan'), | ||
8 | passport = require('passport'), | ||
9 | path = require('path'), | ||
10 | compression = require('compression'), | ||
11 | session = require('express-session'), | ||
12 | bodyParser = require('body-parser'), | ||
13 | cookieParser = require('cookie-parser'), | ||
14 | lastMile = require('connect-lastmile'), | ||
15 | multipart = require('./src/multipart'), | ||
16 | mkdirp = require('mkdirp'), | ||
17 | auth = require('./src/auth.js'), | ||
18 | files = require('./src/files.js')(path.resolve(__dirname, process.argv[2] || 'files')); | ||
19 | |||
20 | var app = express(); | ||
21 | var router = new express.Router(); | ||
22 | |||
23 | var multipart = multipart({ maxFieldsSize: 2 * 1024, limit: '512mb', timeout: 3 * 60 * 1000 }); | ||
24 | |||
25 | router.get ('/api/files/*', auth.verify, files.get); | ||
26 | router.put ('/api/files/*', auth.verify, multipart, files.put); | ||
27 | router.delete('/api/files/*', auth.verify, files.del); | ||
28 | router.get ('/api/healthcheck', function (req, res) { res.status(200).send(); }); | ||
29 | |||
30 | // welcome screen in case / does not serve up any file yet | ||
31 | router.get('/', function (req, res) { res.status(200).sendFile(path.join(__dirname, '/app/welcome.html')); }); | ||
32 | |||
33 | app.use(morgan('dev')); | ||
34 | app.use(compression()); | ||
35 | app.use('/_admin', express.static(__dirname + '/app')); | ||
36 | app.use(express.static(path.resolve(__dirname, process.argv[2] || 'files'))); | ||
37 | app.use(bodyParser.json()); | ||
38 | app.use(bodyParser.urlencoded({ extended: false, limit: '100mb' })); | ||
39 | app.use(cookieParser()); | ||
40 | app.use(session({ secret: 'surfin surfin', resave: false, saveUninitialized: false })); | ||
41 | app.use(passport.initialize()); | ||
42 | app.use(passport.session()); | ||
43 | app.use(router); | ||
44 | app.use(lastMile()); | ||
45 | |||
46 | var server = app.listen(3000, function () { | ||
47 | var host = server.address().address; | ||
48 | var port = server.address().port; | ||
49 | |||
50 | var basePath = path.resolve(__dirname, process.argv[2] || 'files'); | ||
51 | mkdirp.sync(basePath); | ||
52 | |||
53 | console.log('Surfer listening at http://%s:%s', host, port); | ||
54 | console.log('Using base path', basePath); | ||
55 | }); | ||