Hi! I am looking at developing a web application that would need several components: a blog (Ghost), a forum (Discourse), a MySQL database, and a bunch of other custom functionality on web pages and integration with other third-party components through APIs and webhooks that I would write. I have some familiarity with running a LAMP stack, writing interactive components for a CMS, using version control, but am not so familiar with some of the architectural stuff (droplets? Docker?) for a more complex system. Is it possible to set up these components so that they appear to be part of a unified website (e.g.: example.com[index.hmtl], example.com/blog, example.com/forum? Would this require 3 different servers? Is there somewhere I can look to find out how to set this up? Is there a service where someone could do the infrastructure installation and setup so I could concentrate on writing the application?


edited by AHA

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

You can definitely have everything you need available through a single domain/URL.
Discourse, Ghost, and MySQL each run their own servers. While you don’t need to use Docker, it’s probably easier to set up each component if you use Docker
Common practice is to set up a nginx server (similar to Apache) to be the only public facing server and config a reverse proxy to send certain URL paths to each component like HTTP requests beginning with example.com/forum will get forwarded to the Discourse server. While because Discourse runs on Rails and Ghost uses node, it is possible to build your web application so that it shares the server if it uses either of those platforms, I’d recommend against doing this. Keeping the servers separate will be much simpler.