# Anyone Install Ghost in an Existing Express Application?

**URL:** <https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533>\
**Category:** Developer help\
**Created:** [June 6, 2018, 10:06pm UTC](https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533 "2018-06-06T22:06:15Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![orionrayhawk](https://avatars.discourse-cdn.com/v4/letter/o/aca169/32.png) [@orionrayhawk](https://forum.ghost.org/u/orionrayhawk)\
**Post date:** [June 6, 2018, 10:06pm UTC](https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533/1 "2018-06-06T22:06:15Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![vikaspotluri123](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/vikaspotluri123/32/24_2.png) [@vikaspotluri123](https://forum.ghost.org/u/vikaspotluri123)\
**Post date:** [June 6, 2018, 10:18pm UTC](https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533/2 "2018-06-06T22:18:28Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![orionrayhawk](https://avatars.discourse-cdn.com/v4/letter/o/aca169/32.png) [@orionrayhawk](https://forum.ghost.org/u/orionrayhawk)\
**Post date:** [June 6, 2018, 10:19pm UTC](https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533/3 "2018-06-06T22:19:27Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![vikaspotluri123](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/vikaspotluri123/32/24_2.png) [@vikaspotluri123](https://forum.ghost.org/u/vikaspotluri123)\
**Post date:** [June 6, 2018, 10:21pm UTC](https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533/4 "2018-06-06T22:21:49Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![orionrayhawk](https://avatars.discourse-cdn.com/v4/letter/o/aca169/32.png) [@orionrayhawk](https://forum.ghost.org/u/orionrayhawk)\
**Post date:** [June 6, 2018, 11:32pm UTC](https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533/5 "2018-06-06T23:32:28Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![vikaspotluri123](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/vikaspotluri123/32/24_2.png) [@vikaspotluri123](https://forum.ghost.org/u/vikaspotluri123)\
**Post date:** [June 6, 2018, 11:35pm UTC](https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533/6 "2018-06-06T23:35:23Z")

</div>

No, just run `ghost install` 😄 Check out the [getting started guide](https://docs.ghost.org/docs/getting-started-guide) for more info

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/b/ba9ce5100b8bb264586f4f572545596b2ce3f081.png) [@system](https://forum.ghost.org/u/system)\
**Post date:** [June 20, 2018, 11:35pm UTC](https://forum.ghost.org/t/anyone-install-ghost-in-an-existing-express-application/1533/7 "2018-06-20T23:35:28Z")

</div>

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