Installing Multiple Ghost Blogs Behind NGINX on Ubuntu 12.04

Ghost LogoLooking to set up a blog with Ghost? While it still has a few rough edges and missing features at the time of this writing, as it’s essentially in beta at this point (hence the “0.3” versioning), it definitely shows promise as a blogging platform.

If you’re reading this, you’re probably aware that you can’t just FTP Ghost to a dinky shared host and expect it to run like your average PHP script. Ghost is a Node.js application, which works differently, and has yet to be adopted by services that generally cater to newbies. You’re going to need a VPS and command line access. I’m also going to assume a rudimentary knowledge of Linux commands. (You can pick up the basics pretty easily at linuxcommand.org if need be.)

This tutorial aims to walk you through the process of installing one ore more instances of Ghost behind the NGINX server. NGINX is a fast and lightweight web server that, when configured in this manner, acts as a proxy, forwarding requests to the correct Ghost blog.

DigitalOcean

I’m a big fan of DigitalOcean. I’ve been hosting my various web sites with them since this June, and their service has been of excellent quality. In addition to their rock-bottom price, their virtual machines have performed well and their staff has been competent and helpful. (You can find my review of DigitalOcean here.)

$5/month will get you a “Droplet” with 512MB of RAM, 20GB of storage on a solid state drive and plenty of data transfer. (It’s a soft cap with reasonable overages. You’re very, very unlikely to ever reach it, though. Unless you’re a popular podcaster or something, in which case you should be looking into a CDN…)

The figure that’s the most important is the RAM. Just like with the computer you’re using to read this, active applications reside in the system’s memory, and the amount they use varies depending on what the app is doing. Ghost, in my informal tests, doesn’t seem to be too memory-intense. So a 512MB Droplet could probably host a few Ghost blogs at once, depending on their popularity and how the system is configured.

There are plenty of options for a VPS, though. If you’re not too keen on DigitalOcean, Linode, Rackspace, Amazon EC2 and RamNode are popular. If you want to give DigitalOcean a try, you can sign up with the promo code DIVEIN5 to get a $5 credit. You can also pay by the hour if you just want to fire up a VM for a few hours to experiment before making a decision.

Initial Setup

Once you’ve got your VPS, it’s time to start setting things up. For simplicity, I will assume you are running Ubuntu 12.04. You can follow along with any Linux distribution on any hosting provider, but some commands may be a little different.

First, if you haven’t already, use SSH to log in to your VM as root, using the password your host gave you. Take this opportunity to change your password to something different, and reasonably strong, for security. Just run the passwd command and follow the on-screen instructions.

Now let the system update its package index by running the following command:

apt-get update

While you’re at it, install the unzip tool so you can unpack the Ghost archive later on.

apt-get install unzip

Installing Node.js

Now we need to install Node.js, the JavaScript platform that Ghost is built on. Ubuntu’s pre-made package probably isn’t new enough to run Ghost, so we’ll have to compile it ourselves.

First, install the Linux build tools through Ubuntu’s package manager. This will install the necessary compilers, as well as the make tool.

apt-get install build-essential

Now you need to change to your home folder, make a new directory to contain the source, and download Node.js.

cd
mkdir src
cd src
wget http://nodejs.org/dist/v0.10.21/node-v0.10.21.tar.gz

If you run ls, you should see the archive in the src directory. If the file was successfully downloaded, you can unpack the archive and change to the resulting directory.

tar -zxvf node-v0.10.21.tar.gz
cd node-v0.10.21

Ready to compile? After you run the next two commands, be prepared to wait 5-10 minutes while the system works its magic and converts raw source code into an executable binary.

./configure
make

Once the messages stop scrolling by and the command prompt returns, you just need to run the installer.

make install

Congratulations, you’ve successfully compiled and installed a program from source! To verify that everything worked properly, run node -v. It should output the Node.js version, which in this case is v0.10.21. (Or a greater version if there is a newer one out by the time you read this.)

Ghost Installation

The next step is to install a copy of Ghost for each of your blogs. First, let’s make a place for them to reside in.

mkdir /var/ghost
cd /var/ghost

If you intend to use an FTP client to make it easier to upload themes or such, /var/ghost is the place where your blogs’ files will be found. So it’s a good path to remember. (On a related note, the SSH process also doubles as a secure FTP server. If your FTP client supports SFTP, you can connect to the domain/IP and log in with a valid username and password.)

To add a copy of Ghost, just follow these steps:

mkdir myghostblog
cd myghostblog
wget https://ghost.org/zip/ghost-0.3.3.zip
unzip ghost-0.3.3.zip
rm ghost-0.3.3.zip
npm install --production

What you’re doing is:

  1. Creating a folder for the blog
  2. Changing to that folder
  3. Downloading Ghost
  4. Unzipping Ghost
  5. Removing the .zip file
  6. Installing Ghost

Before we can actually start Ghost up, there is some essential configuration that needs to be adjusted.

Copy the example configuration file to a new config.js file with cp config.example.js config.js. Open the config.js file in the nano text editor with nano config.js. Use the arrow keys to scroll down to where the “production” environment starts in the config. It looks something like this:

production: {
    url: 'http://my-ghost-blog.com',
    mail: {},
    database: {
        client: 'sqlite3',
        connection: {
            filename: path.join(__dirname, '/content/data/ghost.db')
        },
        debug: false
    },
    server: {
        host: '127.0.0.1',
        port: '2368'
    }
},

There are three things you need to change:

  1. The url field. Replace http://my-ghost-blog.com with http://whatever-your-domain-is.com.
  2. The port field in the server block may need to be changed, depending on whether this is the first blog you’re setting up or not.

To save the file, press control+o and, then control+x to exit.

Web browsers, by default, connect to HTTP port 80 when requesting a web page. The way we’re setting this up, NGINX will listen on port 80, waiting for requests, and forward them to the ports your Ghost blogs are listening on. So Blog A can listen on port 2368 and Blog B can listen on port 2369. NGINX will listen on port 80, figure out which domain name belongs to which blog, and route the requests to the appropriate port.

Repeat the relevant steps in this section to set up additional blogs. You can wait until after you’ve finished setting up the first, if you want.

Upstart

We need to make it easy to start and stop the Ghost processes, and ensure that they come back online automatically if the server is restarted. On Ubuntu, it’s super simple with a system known as Upstart.

First, create a new Upstart configuration file called ghost.conf.

cd /etc/init
nano ghost.conf

Now fill it with the following Upstart script, replacing myghostblog with the directory you created for your blog:

start on startup

script
    cd /var/ghost/myghostblog
    npm start --production
end script

If you have multiple Ghost blogs set up, you would do something like this:

start on startup

script
    cd /var/ghost/myghostblog
    npm start --production
    cd /var/ghost/myotherghostblog
    npm start --production
end script

NGINX Installation

apt-get install nginx

That was easy, wasn’t it?

NGINX Configuration

NGINX keeps its site configuration files in two directories within /etc/nginx:

  • sites-available — Each site gets its own configuration file in here
  • sites-enabled — This directory contains symbolic links pointing to the files in sites-available.

Let’s create a new site configuration for myghostblog.

cd /etc/nginx/sites-available
nano myghostblog

A simple configuration that does nothing but pass traffic addressed to my-awesome-ghost-blog.com to the Ghost blog listening on port 2368 looks like this:

server {
    server_name my-awesome-ghost-blog.com;

    location / {
        proxy_pass http://127.0.0.1:2368;
    }
}

Of course, NGINX is a powerful and flexible piece of software that is capable of a lot more. This is just one of many things you can use it for.

As before, save the file by pressing control+o and quit nano with control+x. Next, move back up one directory level to /etc/nginx and create a symbolic link in sites-enabled, pointing to the file in sites-available.

cd ../
ln -s sites-available/myghostblog sites-enabled/myghostblog

Fire it Up

Now that you have everything configured, you can start (or stop) the processes with the service command.

service ghost start
service nginx start

You can replace start with stop to exit ghost or nginx if you have reason to do so, or restart if you need to reload one after making some sort of change. (e.g. editing Ghost’s config.js file requires that Ghost be restarted.) NGINX can reload its config files without doing a full restart of the process with service nginx reload, which takes less time and is useful when making edits.

If all went well, you should be able to open your Ghost blog in a browser.

Managing Memory

How much memory is Ghost using, you may wonder. And if you aren’t, you probably should. The enemy of performance on web servers is swapping, which is where the system runs out of available RAM and starts copying things back and forth to the hard disk, causing major slowdowns. This is frequently referred to as “thrashing.” Even a fast solid state drive is orders of magnitude slower than RAM.

There are some useful tools for monitoring available RAM and inspecting active processes. The most commonly used ones are free, top, and ps.

The free command shows the system’s memory totals. If you run it with the m flag (free -m) to show the values in human-readable megabytes instead of plain bytes, you should see something like this:

root@DeepSpaceNine:~$ free -m
             total       used       free     shared    buffers     cached
Mem:           369        129        239          0         11         51
-/+ buffers/cache:         67        302
Swap:          767          0        767

The most important line is the one labeled -/+ buffers/cache. Modern operating systems don’t waste memory. If nothing else is making use of it, the OS will make use of it until the space is needed. The -/+ line shows the usage sans caches. In this example, there are 302MB of free memory with only 67 being in use. There is also nothing in swap, which is exactly what you want to see.

The top command shows a live-updated table of currently running processes, and statistics for them. By default, it’s sorted by CPU activity, but you can sort by memory usage by pressing shift+M.

The top command

Pressing control+C exits top.

Need to see a list of all running processes? Run ps aux. Be prepared for a huge list, as it will be full of system processes.

Conclusion

I hope this guide helps you get started with Ghost. I realize it is a bit technical, something the upcoming hosted service and DigitalOcean’s one-click Ghost image should help obviate, but hey, it’s new. It was harder to get up an running with WordPress back in 2003, too.

  • http://sp4rkr4t.me.uk/ Michael Sheils

    Should the default file still be in /etc/nginx/sites-available? Because when I start both ghost & nginx and point my browser to my domain all I get is the welcome to nginx landing page.

    • http://sp4rkr4t.me.uk/ Michael Sheils

      Found the issue, had to change the ip address in the config.js from 127.0.0.1 to 0.0.0.0

  • http://www.hospity.com Hospity

    Awesome Ideas. Thanks for sharing.. Great

    http://www.evincetech.com

  • http://www.zoidresearch.com/equity-tips.php Madhuri Agarwal

    Hii matt, as i am looking for the same to installing multiple ghost blogs behind NGINX on Ubuntu and here the perfect ans..! thanks Gold Tips

  • Investelite Research

    Hii Matt, great Blog. I was looking for this from a long time! thanks Intraday Trading Tips

  • https://intraday.investelite.in Investelite Research

    Indian economy went through a lot of ups and downs over the past five years. Here are the states that show how the Indian economy fared from Nehru to Modi.

  • https://intraday.investelite.in Investelite Research

    Investelite Research is the trusted Sebi registered investment advisor and most ethical investment advisor firm in India. Investelite Research offers best stock market tips, Intraday tips, Equity tips, Trading tips. Investelite Research is considered as one among top 10 investment aadvisorsin India.

    Our Services

    Value Pack

    1.Equity Value

    2.Future Value

    3.Option Value

    4.Nifty Futures

    5.Derivative Value

    6.Nifty Options

    Growth Services

    1. Equity Growth

    2. Future Growth

    3. Option Growth

    4. Bullion Pack

    5. Swing Future

    6. Derivative Growth

    7. Metals Pack

    8. Bullions Metals Combo Pack

    9. Swing Cash

    10. Swing Combo

    Prime Services

    1. Prime Equity

    2. Prime Future

    3. Prime Options

    4. BTST-STBT

    5. Prime Derivative

    6. HNI Combo

    7. HNI Cash

    8. HNI Future

    Share Market Trading Tips

    Intraday Trading Tips
    Investelite Academic
    Read blogs @

  • FredLuis

    Sounds interesting enough; maybe I’ll watch out for this. tile installation

  • Joe

    What a well written article, really appreciate the time you put in to this. I am going to have to read this a few times as there is a plethora of information to try and absorb. Visit my link for fence contractor

  • partoclinic

    hi guys please check my website
    http://partoclinic.com/

  • HPV Darman

    thanks for your perfect sharing. please chekout my website as well.

    https://hpvdarman.com/

  • Jillian Tutino
  • Handy Man

    This is a fantastic and I appreciate all this coding help. Bathroom Remodels

  • Handy Man

    This is fantastic and would love to hear more about it Alta Surveying

  • Joe

    Thank you for this post. Found it very informative.
    Business Exit Consulting

  • Soni Sharma

    Pretty great ideas. Thank you sharing such a nice one.
    Fencing Lincoln

  • JohnMixell

    Very useful!! Thanks to the author for coming up with this topic. This is a excellent! online marketing Fort Worth, TX

  • Bryan B

    Good job. Very informative article.
    Bankruptcy

  • arccmedia

    I read your blog frequently and I just thought I’d say keep up the amazing work! | electricians in lancaster ca

  • arccmedia

    This is a great help! Good thing I’ve read this. Thanks for sharing! advertising agencies bay area

  • arccmedia

    Your site has a lot of useful information for me https://www.hvac-washington-dc.com/

  • TimStiffer

    You made something super complex a little more simple for me to understand. Thanks for your hard work. Much love from the team at, Appliance Repair Kitchener, http://www.kitchenerappliancerepair.com

  • https://pauls-towing-ltd.business.site towingrichmond

    Best Towing Service near Richmond, BC
    Paul’s Towing Ltd
    Call us now at (604) 256-3927 to book emergency and non-emergency towing services in the region. Our operators will dispatch one of our tow trucks as soon as we receive your approval. Get a free no obligation quote today!

  • https://mobisoftinfotech.com richard devis
  • Soni Sharma

    Thanks for the information. fencecompanyspartanburgscpros.com

  • https://coquitlamstumpgrinding.com Coquitlam Stump Grinding Exper

    appliance repair
    Coquitlam Appliance Repair Experts also provides various other kinds of repairs including small home appliances and more

  • saba 033

    Good write-up, I¡¦m normal visitor of one¡¦s blog, maintain up the nice operate, and It is going to be a regular visitor for a long time. Scott Dietrich Gainesville VA

  • Robert

    Even a fast solid state drive is orders of magnitude slower than RAM. – Handyman

  • Robert

    Modern operating systems don’t waste memory. If nothing else is making use of it, the OS will make use of it until the space is needed. Therapy EDH

  • Yvette Katerine

    This tutorial aims to walk you through the process of installing one ore more instances of Ghost behind the NGINX server. NGINX is a fast and lightweight web server that, when configured in this manner. concrete patio augusta ga

  • Chris Antrim

    Great, thank you for sharing your thoughts. | Boise Commercial Roofers

  • Angie Lyn

    This guide helps us get started with Ghost.Thanks
    Foundation Repair Miami FL

  • Abby Conley

    this seems like difficult work. I’m not the best at coding

    professional waterproofing

  • Brett M

    Thanks for this great article you shared on this site. topnotchplumbinganddrain.com/

  • Georgia Miller

    This site is very helpful, the tutorials here are easy to understand. Their expertise is beyond great.

  • Scott Timmins

    This is very interesting. I’ve been working on learning to code for a bit of time now. Fascinating sometimes, frustrating others. sky lights

  • Jan Wil

    Looking forward to seeing this great information here. https://www.apexpowerandlight.com/

  • Pemuja Dollar

    Modern operating systems don’t waste memory. If nothing else is making use of it, the OS will make use of it until the space is needed
    cek gaji tiktok

  • Rosa Mannelli

    In addition to their rock-bottom price, their virtual machines have performed well and their staff has been competent and helpful. drywall repair

  • James Wood

    This is frequently referred to as “thrashing.” Even a fast solid state drive is orders of magnitude slower than RAM. I want to do it with my website.

  • bellid

    The technicality really amazes me. Thanks for sharing your ideas.
    Custom Gate Services

  • Chris Antrim

    I am looking forward to learn more about this. Will bookmarked your post for new updates. | Idaho Falls Roof Installation Experts

    Metal Roof Repair

  • Kadan

    Great work. Well written and presented article. Mad respect!
    Consulting Engineers

  • Chris Antrim

    An infection within the pulp chamber can even spread to the brain. People who don’t visit the dentist frequently are especially susceptible to developing dental abscesses. – Emergency Dental Care | Nampa Dental

  • Jennifer Smith

    Learned a lot for visiting this great site. https://www.epoxyflooringrochester.com/

  • Adele Adkins

    Thanks for sharing this information here. Glad I was able to see this. call us

  • Kadan

    I have a hard time trying to start and learn ghost. Thanks you so much for this guide!
    Business Review Services

  • samuel thompson

    Thank you so much for the detailed instruction, I’m going to try this one, and connect it to my main site the Best landscaper in wilmington

  • bellid

    Glad I found this. Just saying my thanks for the information, It is very helpful!
    Retaining Wall Contractor

  • Vance Three

    This is quite intriguing. I’ve been trying to learn to code for a while now. Sometimes fascinating, sometimes infuriating. | Lewisville build patio

  • Kram Thony

    Great work. Thank you for sharing this.
    stamped concrete

  • Patricia Miller

    Glad to visit this again. Thanks for the information. Click here

  • bellid

    Thanks for the guide. Your ideas are really helpful!
    Regards from Sylvan Lake Fabrication

  • Josh Jensen

    Glad that you shared this output. I will definitely try this soon. In the meantime, visit movingservicescottsdale.com if you’re looking for a reliable moving company in Scottsdale, AZ.

  • https://technoderivation.com Shivansh

    Very informative here. I learned a lot visiting our website TechnoDerivation

  • Builder16

    Very much appreciated. Thank you for this excellent article. Keep posting!
    Landscaping

  • Vance Three

    Greensboro also recommended of this to use a newer version for security reasons.

  • Amber Brion

    You explain that Ghost is a Node.js application and therefore requires a VPS and command line access, along with a rudimentary knowledge of Linux commands. You recommend using NGINX as a proxy to forward requests to the correct Ghost blog.

    You also recommend DigitalOcean as a hosting provider, citing their rock-bottom prices, excellent performance, and helpful staff. Their $5/month plan offers 512MB of RAM, 20GB of storage on a solid state drive, and plenty of data transfer. You note that the amount of RAM is the most important factor for hosting Ghost, as the amount of RAM an application uses varies depending on what it is doing.

    You suggest that there are other hosting providers available if someone is not interested in DigitalOcean, including Linode, Rackspace, Amazon EC2, and RamNode. You also mention that DigitalOcean offers a promo code, DIVEIN5, for a $5 credit and allows users to pay by the hour for experimentation. expertise

  • Amber Brion

    It seems like you have provided some helpful information on how to set up Ghost on a VPS, specifically using NGINX as a proxy server. You’ve also recommended DigitalOcean as a VPS provider, citing their low prices, solid state drive storage, and competent staff. You’ve noted that it’s important to have enough RAM to host active applications like Ghost, and that a 512MB Droplet from DigitalOcean could probably host a few Ghost blogs at once, depending on their popularity and system configuration.

    You’ve also suggested that readers should log in to their VM as root using SSH, change their password for security, and follow along with your tutorial using Ubuntu 12.04, although it’s possible to use any Linux distribution on any hosting provider. https://cincinnatiseo.org/

  • ampva200

    Even a fast solid state drive is orders of magnitude slower than RAM.

    Greetings from Delaware Drywallers

  • FKN

    Thanks for this great article you shared on this site. https://election-result.in/

  • Anthony Tutino
  • FKN

    Ponniyin Selvan: 2 has undoubtedly set high expectations for the audiences with its intriguing storyline, brilliant star cast, and breathtaking visuals. The movie has received a positive response from the audience, and its first-day box office collection is a testament to its popularity. Despite the challenges posed by the pandemic, the film has managed to earn a whopping Rs. 20 crores (early estimate) on its opening day in India alone, which is a great feat. https://boxofficecollection.co.in/

  • Builder16

    Nice post! Thanks for taking the time in sharing this great article in here.
    Tree Service Olathe

  • ampva200

    Greetings from http://www.drywallelpaso.com! I realize it is a bit technical, something the upcoming hosted service and DigitalOcean’s one-click Ghost image should help

  • https://www.srbijaoglasi.com mr.Mutombo

    If you’re considering setting up a blog, Ghost is a platform worth exploring. Despite being in beta with some rough edges and missing features, Ghost 0.3 shows great promise as a robust and user-friendly option for bloggers. Learn more about this platform and get started on creating your own blog with Ghost. sanja jagodic

  • https://www.srbijaoglasi.com mr.Mutombo
  • shapannsp@yahoo.com

    Actually, it’s pretty good to see! Tiler Adelaide

  • shapannsp@yahoo.com

    Thanks for sharing! Tiler Adelaide

  • shapannsp@yahoo.com

    Thanks for letting us know! Tiler Wollongong

  • shapannsp@yahoo.com

    Good to know about this! Tilers Wollongong Albion Park

  • shapannsp@yahoo.com

    Excellent post! Concreters in Wollongong

  • shapannsp@yahoo.com

    Thanks for sharing this to public! Adelaide Landscaping

  • shapannsp@yahoo.com

    Such a great post! Glenelg North

  • shapannsp@yahoo.com

    I visited Your blog and got a massive number of informative articles. I read many articles carefully and got the information that I had been looking for for a long time. Hope you will write such a helpful article in future. Thanks for writing.Tilers in Hobart

  • shapannsp@yahoo.com

    Very useful and informative post! Tiling Townsville

  • shapannsp@yahoo.com

    Thats what I was looking for! air conditioning service adelaide

  • shapannsp@yahoo.com

    Very informative post! tiler melbourne

  • shapannsp@yahoo.com

    To be honest, I generally don’t read. But, this article caught my attention.digital marketing adelaide

  • shapannsp@yahoo.com

    I am really impressed with your writing style. Keep it up! Landscapers Canberra

  • shapannsp@yahoo.com

    Many thanks for sharing this! Adelaide Coolroom Hire

  • shapannsp@yahoo.com

    Thanks for sharing! Sliding Doors Adelaide

  • shapannsp@yahoo.com

    It’s so kind of you! Solar Panels Adelaide

  • shapannsp@yahoo.com

    Many many thanks to you! Cleaning Services Adelaide

  • shapannsp@yahoo.com

    You presented your ideas and thoughts really well on the paper. Solar Panels Adelaide

  • shapannsp@yahoo.com

    Very informative content. Thanks. tow truck wollongong

  • shapannsp@yahoo.com

    Please keep up the good work! drum lessons adelaide

  • timothy price

    Great tutorial on installing multiple Ghost blogs behind NGINX on Ubuntu 12.04! I appreciate the detailed step-by-step instructions and explanations. It’s true that Ghost, being a Node.js application, requires a VPS and command line access to set up.

    I also agree with your recommendation of using DigitalOcean for hosting. I’ve had positive experiences with them as well. The $5/month Droplet with 512MB of RAM seems sufficient for hosting multiple Ghost blogs, depending on their popularity and configuration.

    The instructions for installing Node.js from source were clear and easy to follow. And the subsequent Ghost installation steps, including configuring the blogs and setting up Upstart for automatic startup, were well-explained.

    The NGINX installation and configuration section was helpful in understanding how to use NGINX as a proxy server to forward requests to the correct Ghost blogs. The provided example configuration for a Ghost blog was straightforward.

    Lastly, I appreciate the tips on monitoring memory usage and the recommended tools like free, top, and ps.

    Overall, this tutorial is a valuable resource for anyone looking to

    install multiple Ghost blogs behind NGINX on Ubuntu 12.04. Thank you for sharing your expertise!

    Orlando Custom Railings

  • Georgia Miller

    Setting up a blog with Ghost requires a VPS (Virtual Private Server) and command line access. Here is a step-by-step guide to installing Ghost behind an NGINX server:

    Choose a VPS provider: DigitalOcean, Linode, Rackspace, Amazon EC2, and RamNode are popular options. For this guide, let’s assume you’re using DigitalOcean.

    Create a VPS: Sign up for a DigitalOcean account and create a new Droplet. Choose the $5/month plan with 512MB of RAM.

    SSH into your VPS: Use SSH to log in to your VPS as root using the provided password. Change your password for security.

    Update package index: Run the command apt-get update to update the package index.

    Install unzip: Run the command apt-get install unzip to install the unzip tool.

    Install Node.js: Ghost is built on Node.js, so you need to install it. Run the following commands to compile and install Node.js:

    bash
    Copy code
    apt-get install build-essential
    cd ~/src
    wget http://nodejs.org/dist/v0.10.2......21.tar.gz
    tar -zxvf node-v0.10.21.tar.gz
    cd node-v0.10.21
    ./configure
    make
    make install
    Install Ghost: Create a directory for Ghost and download the Ghost archive. Unzip it and remove the archive. Install Ghost with the following commands:
    bash
    Copy code
    mkdir /var/ghost
    cd /var/ghost
    mkdir myghostblog
    cd myghostblog
    wget https://ghost.org/zip/ghost-0.3.3.zip
    unzip ghost-0.3.3.zip
    rm ghost-0.3.3.zip
    npm install –production
    Configure Ghost: Copy the example configuration file to config.js and open it with a text editor like nano. Update the url field with your domain name. Save the file.

    Set up additional blogs (optional): If you want to set up multiple blogs, repeat the steps from creating the Ghost directory to configuring Ghost for each blog.

    Set up Upstart: Create an Upstart configuration file for Ghost. Create a new file called ghost.conf in the /etc/init directory and fill it with the appropriate script to start Ghost. Save the file.

    Install NGINX: Run the command apt-get install nginx to install NGINX.

    Configure NGINX: Create a new site configuration file for your blog in the /etc/nginx/sites-available directory. Configure NGINX to pass traffic to your Ghost blog. Create a symbolic link in the /etc/nginx/sites-enabled directory to enable the configuration.

    Start the services: Start Ghost and NGINX with the following commands:

    sql
    Copy code
    service ghost start
    service nginx start
    Access your Ghost blog: Open your browser and visit your domain name to access your Ghost blog.
    Remember to manage your server’s memory and monitor the performance of your Ghost blog using tools like free, top, and ps.

    Please note that this guide is based on the information provided and assumes you have a basic knowledge of Linux commands. https://cincinnatiseo.io/

  • Georgia Miller

    Setting up a blog with Ghost can be an exciting venture. However, it’s important to note that Ghost is still in its early stages (version 0.3 at the time of writing) and may have some rough edges and missing features. That said, it shows promise as a blogging platform. https://cincinnatiseo.io/

  • Kelly

    Please note that Ubuntu 12.04 is an outdated version and is no longer supported with security updates. It’s highly recommended to upgrade to a newer and supported version of Ubuntu for better security and stability. Additionally, the specific steps and configurations may vary depending on your server setup and requirements. It’s important to refer to the official documentation and guides for NGINX and Ghost for detailed instructions tailored to your specific environment.

    https://generatorable.com/

  • Georgia Miller

    Installing and managing Ghost on a VPS can be a bit technical and require some command-line knowledge. If you’re not comfortable with these technical aspects, you might consider using a managed hosting service that specializes in Node.js applications or exploring other blogging platforms that offer a more user-friendly setup process. cincinnati-seo.com/

  • Kelly

    Ghost is a great blogging platform, and it’s definitely worth considering if you’re looking for something new. It’s still in beta, but it’s already very user-friendly and powerful.

    SEO Tampa

  • Georgia Miller

    The excerpt concludes before explaining the details of editing the configuration file to set up Ghost. Overall, the tutorial provides a step-by-step guide to installing and configuring Ghost on a VPS, making it accessible to readers with basic Linux knowledge. superiordraincleaning.com/

  • Georgia Miller

    It looks like you’re providing a detailed step-by-step guide on setting up a blog using the Ghost platform on a VPS (Virtual Private Server) with NGINX as the web server. This guide includes instructions for installing Node.js, installing and configuring Ghost, setting up NGINX, and managing memory. https://superiorconcreteandexcavation.com/

  • Philo

    I remember sometime trying to work this option for Ventanas Termopanel… what finally happened with ghost?

  • CodeF

    I hear someone speaking about this weeks ago and now I get it
    Limpieza De Alfombras

  • Kelly

    Yes, Ghost is a great option for setting up a blog. It is a self-hosted platform, which means that you will need to purchase a domain name and web hosting. However, Ghost is relatively easy to set up and use, even for beginners.

    https://whitewillowmeadows.com/

  • Rubén Melo

    This page and the whole sites gives great information. Thanks for your work
    Bateria a Domicilio

  • HeckT

    Ghost was a pretty good solution for me during 2013-2017. Good material
    Limpieza De Alfombras

  • Zara Brown

    This is interesting. Thank you for the information.
    housemansoutdoorsolutions.com

  • MDregion

    Very well explained and detailed. Thanks for this info
    Mudanzas A Regiones Precios

  • MudAnf

    Thanks for this very well explain article
    Servicio De Mudanzas

  • Pedro

    Your positivity is contagious and brightens every room. Limpieza de Alfombras

  • Manuel

    You consistently exceed expectations – well done! Bateria a Domicilio

  • Karina

    You consistently exceed expectations – well done! Baterias de Auto

  • MallaKing

    Thanks for this great article
    Mallas De Seguridad

  • Maria

    Challenges are stepping stones to success. Servicio De Mudanzas

  • Miguel

    Expertise enriches our team. Agua Purificada A Domicilio

  • Miguel

    Invaluable contributions drive progress. Mantencion Aire Acondicionado Santiago

  • Pablo

    Optimism and enthusiasm fuel progress Termopanel

  • Sofia

    Bringing out the best in others is admirable. Instalacion Aire Acondicionado

  • Georgia Miller

    It seems like you’re providing a tutorial or guide for setting up a blog using Ghost on a VPS (Virtual Private Server), particularly with a focus on DigitalOcean and using NGINX as a reverse proxy. You’re emphasizing that Ghost is a Node.js application, so it requires a different setup compared to PHP-based applications. concrete driveways

  • Pancho

    Your leadership qualities make you a natural leader. Servicio De Aseo

  • Jennifer

    Dedication and hard work are truly rewarding. Remodelacion De Casas

  • Jennifer

    Kindness and thoughtfulness make a difference. Ventanas Termopanel

  • Roberto

    Excellence sets a standard worth emulating.
    Fumigador A Domicilio

  • Kelly

    You will need to replace blog1.example.com with the domain name of your blog and localhost:2368 with the port number that Ghost is running on.

    https://triacusa.com

  • Pedro

    Consistent excellence is always commendable.
    Bateria A Domicilio

  • Pedro

    Invaluable contributions drive progress.
    Mudanzas En Concepcion

  • Builder16

    Glad to see this post.
    Accountants Brampton

  • Kelly

    Ghost is a promising platform with a focus on simplicity and content creation. It’s suitable for bloggers who appreciate a clean interface and prioritize content over advanced features. However, its beta stage and limited features might not be ideal for users who need a complete and robust blogging solution.

    Cable tray

  • John Kenneth Lejano

    Thank you so much for this kind of information. I hope that there’s more to come!

    Excavator with Operator

  • Kirk Maier

    Very interesting article!
    https://www.drywallgr.com/

  • Naoma Laopa

    The RAM is the most significant figure. Similar to the computer you’re using to read this, running programs live in the system memory, and how much of it they utilize changes according to their intended usage, click here..

  • Kelly

    This is a great start to an informative blog post about setting up a blog with Ghost on a VPS!
    photographer honolulu hawaii

  • Patricia Miller

    Thanks for sharing this one, I can finally use it. https://www.assistedonlinefilings.com/replacement-social-security-card.php

  • Builder16

    Very helpful blog tips. Thank you so much for sharing
    Plastic Surgery Fresno CA

  • https://www.newbirthdaywishes.com custom packaging boxes

    great content click here

  • Kelly

    That’s a great attitude! While the initial setup might be technically involved, it’s important to acknowledge the context and celebrate advancements.

    Back decompression naples

  • Patricia Miller

    Thank you so much for sharing this blog. Keep on posting. visit us

  • Patricia Miller

    Gonna share this with friends, keep on posting. online-application.org/social-security-administration-office/oklahoma/

  • Tiffany H

    Very valuable information! Thank you for simplifying this. concrete contractor visalia

  • jay

    There’s a certain finesse to making impactful moves without being in the spotlight, similar to how Florida Attorney Executive Recruiters subtly shape the future of the legal industry by matching top talent with the right firms. It’s like orchestrating a symphony without being seen. On a related note, Miami Attorney Headhunter is masterfully conducting their part in the legal recruitment space, really setting the stage for excellence. Speaking of excellence, have you checked out the latest tech gadgets? It’s incredible how they’re transforming our daily lives!