Anyone Install Ghost in an Existing Express Application?


#1

So I have an existing Express application where I initiate the app in app.js.

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var index = require('./routes/index');

var app = express();

// View engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

// Parsing
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

//Set Public Assets Path
app.use(express.static(path.join(__dirname, 'public')));

// Use Routes
app.use('/', index);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

I use npm start to get this running on localhost:3000.

I installed the ghost blog locally in a “/ghost” subdirectory using “ghost install local” from ghost-cli and I can get it running on localhost:2368.

What is the best way to connect the two? I tried reading stackoverflow and other posts on google but haven’t got it to work yet. I was wondering if I could get input from any of you.


#2

What do you mean by connecting them? Do you want ghost to run on a subdirectory?

If so, using ghost install local is not a good idea since it’s meant to be a development installation rather than a production-ready one so you’ll have a pretty big performance hit


#3

Sorry for the confusion! Yes I would like ghost to be run on a subdirectory. What is the best approach?


#4

TBH, best approach is to install ghost using the deafults - it will configure nginx to proxy requests to your subdirectory. Note the subdirectory can’t end with /ghost

Once you do that, you can edit the nignx configuration by adding a server block which proxies non-ghost requests to localhost:3000


#5

I am confused by what you are saying since I am new to this. Is installing ghost using defaults just installing ghost from the zip file?


#6

No, just run ghost install :smile: Check out the getting started guide for more info


#7

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.