In continuation of Installing Ghost on Ubuntu, Nignx and MySQL - Part 2 Finally we arrive at the Ghost part mostly... Install Node.js sudo apt-get update curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs sudo apt-get install -y build-essential Step: Check node.js version (v4.5.0 - in my case). This will also install npm (node package manager - v2.15.9 - in my case). If by any case npm is not installed then do sudo apt-get install npm node -v npm -v Install MySQL sudo apt-get update sudo apt-get install mysql-client mysql-server This will install MySQL 5.7.13 by default, during installation process you will be prompted to enter / set password for the MySQL root user (make sure it is complex enough, do not ignore). You can always change password of your root user of » Read more

 Jsinh        

In continuation of Installing Ghost on Ubuntu, Nignx and MySQL - Part 1 Now that you have secured your SSH connections, it is time to put up a firewall to secure all inbound network traffic. Configuring UFW Step: Install UFW (Uncomplicated firewall - not complicated at all, promise) sudo apt-get update sudo apt-get install ufw Step: Add rules to allow inbound SSH (custom we configured previously) and HTTP (on port 80) traffic. sudo ufw allow http sudo ufw allow <your custom SSH port configured previously> Step: Enable UFW and check status sudo ufw enable sudo ufw status verbose You can check if your firewall is blocking other ports except SSH custom port and HTTP 80 using PortQryUI on windows or just telnet on windows using Telnet client feature or linux sudo apt-get install telnet (just to be sure). Also you can disable serving ping request (ICMP) on your » Read more

 Jsinh        

I am using DigitalOcean for hosting my Ghost blog. Any instance of hosting in DigitalOcean environment are called Droplets (wonder why?). Mostly setting up a Ghost blog in DigitalOcean environment is pretty much easy. But after few days I realized that the setup is good enough for 'getting up and running' and I had to fiddle and fix many thing to reach my satisfactory goals. Offcourse I give full credits to all articles and knowledge-base provied by DigitalOcean team. Things that makes me write up this lengthy post: Ghost ready droplet gives only basic setup of Ghost. Had to add more steps to secure my droplet to some extent. Wanted to host Ghost with MySQL instead of Sqlite3. Setup Ghost instance in a way so that I can add more Ghost instances or other websites in same droplet. I have divided this process into three part (this is Part 1 » Read more

 Jsinh