mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-24 06:35:49 +03:00
Allow Ghost to run using sockets
Closes #887 - Adds getSocket function > Returns the socket location if sockets are enabled or false - Adds startGhost function > Callback for server.listen
This commit is contained in:
parent
54f8a04779
commit
97f592aa41
140
core/server.js
140
core/server.js
@ -4,6 +4,7 @@ var express = require('express'),
|
||||
_ = require('underscore'),
|
||||
colors = require('colors'),
|
||||
semver = require('semver'),
|
||||
fs = require('fs'),
|
||||
slashes = require('connect-slashes'),
|
||||
errors = require('./server/errorHandling'),
|
||||
admin = require('./server/controllers/admin'),
|
||||
@ -360,68 +361,87 @@ when(ghost.init()).then(function () {
|
||||
server.get('/:slug/', frontend.single);
|
||||
server.get('/', frontend.homepage);
|
||||
|
||||
// Are we using sockets? Custom socket or the default?
|
||||
function getSocket() {
|
||||
if (ghost.config().server.hasOwnProperty('socket')) {
|
||||
return _.isString(ghost.config().server.socket) ? ghost.config().server.socket : path.join(__dirname, '../content/', process.env.NODE_ENV + '.socket');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function startGhost() {
|
||||
// Tell users if their node version is not supported, and exit
|
||||
if (!semver.satisfies(process.versions.node, packageInfo.engines.node)) {
|
||||
console.log(
|
||||
"\nERROR: Unsupported version of Node".red,
|
||||
"\nGhost needs Node version".red,
|
||||
packageInfo.engines.node.yellow,
|
||||
"you are using version".red,
|
||||
process.versions.node.yellow,
|
||||
"\nPlease go to http://nodejs.org to get the latest version".green
|
||||
);
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
// Startup & Shutdown messages
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
console.log(
|
||||
"Ghost is running...".green,
|
||||
"\nYour blog is now available on",
|
||||
ghost.config().url,
|
||||
"\nCtrl+C to shut down".grey
|
||||
);
|
||||
|
||||
// ensure that Ghost exits correctly on Ctrl+C
|
||||
process.on('SIGINT', function () {
|
||||
console.log(
|
||||
"\nGhost has shut down".red,
|
||||
"\nYour blog is now offline"
|
||||
);
|
||||
process.exit(0);
|
||||
});
|
||||
} else {
|
||||
console.log(
|
||||
"Ghost is running...".green,
|
||||
"\nListening on",
|
||||
getSocket() || ghost.config().server.host + ':' + ghost.config().server.port,
|
||||
"\nUrl configured as:",
|
||||
ghost.config().url,
|
||||
"\nCtrl+C to shut down".grey
|
||||
);
|
||||
// ensure that Ghost exits correctly on Ctrl+C
|
||||
process.on('SIGINT', function () {
|
||||
console.log(
|
||||
"\nGhost has shutdown".red,
|
||||
"\nGhost was running for",
|
||||
Math.round(process.uptime()),
|
||||
"seconds"
|
||||
);
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
|
||||
// Let everyone know we have finished loading
|
||||
loading.resolve();
|
||||
}
|
||||
|
||||
// ## Start Ghost App
|
||||
server.listen(
|
||||
ghost.config().server.port,
|
||||
ghost.config().server.host,
|
||||
function () {
|
||||
if (getSocket()) {
|
||||
// Make sure the socket is gone before trying to create another
|
||||
fs.unlink(getSocket(), function (err) {
|
||||
server.listen(
|
||||
getSocket(),
|
||||
startGhost
|
||||
);
|
||||
fs.chmod(getSocket(), '0744');
|
||||
});
|
||||
|
||||
// Tell users if their node version is not supported, and exit
|
||||
if (!semver.satisfies(process.versions.node, packageInfo.engines.node)) {
|
||||
console.log(
|
||||
"\nERROR: Unsupported version of Node".red,
|
||||
"\nGhost needs Node version".red,
|
||||
packageInfo.engines.node.yellow,
|
||||
"you are using version".red,
|
||||
process.versions.node.yellow,
|
||||
"\nPlease go to http://nodejs.org to get the latest version".green
|
||||
);
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
// Startup & Shutdown messages
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
console.log(
|
||||
"Ghost is running...".green,
|
||||
"\nYour blog is now available on",
|
||||
ghost.config().url,
|
||||
"\nCtrl+C to shut down".grey
|
||||
);
|
||||
|
||||
// ensure that Ghost exits correctly on Ctrl+C
|
||||
process.on('SIGINT', function () {
|
||||
console.log(
|
||||
"\nGhost has shut down".red,
|
||||
"\nYour blog is now offline"
|
||||
);
|
||||
process.exit(0);
|
||||
});
|
||||
} else {
|
||||
console.log(
|
||||
"Ghost is running...".green,
|
||||
"\nListening on",
|
||||
ghost.config().server.host + ':' + ghost.config().server.port,
|
||||
"\nUrl configured as:",
|
||||
ghost.config().url,
|
||||
"\nCtrl+C to shut down".grey
|
||||
);
|
||||
// ensure that Ghost exits correctly on Ctrl+C
|
||||
process.on('SIGINT', function () {
|
||||
console.log(
|
||||
"\nGhost has shutdown".red,
|
||||
"\nGhost was running for",
|
||||
Math.round(process.uptime()),
|
||||
"seconds"
|
||||
);
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
|
||||
// Let everyone know we have finished loading
|
||||
loading.resolve();
|
||||
}
|
||||
);
|
||||
} else {
|
||||
server.listen(
|
||||
ghost.config().server.port,
|
||||
ghost.config().server.host,
|
||||
startGhost
|
||||
);
|
||||
}
|
||||
}, errors.logAndThrowError);
|
||||
|
Loading…
Reference in New Issue
Block a user