August 3, 2020
Ghost Setup
# Login via SSH
ssh [email protected]_server_ip
# Create a new user and follow prompts
adduser <user>
# Add user to superuser group to unlock admin privileges
usermod -aG sudo <user>
# Then log in as the new user
su - <user>
# Update package lists
sudo apt-get update
# Update installed packages
sudo apt-get upgrade
# Install NGINX
sudo apt-get install nginx
sudo ufw allow 'Nginx Full'
# Install MySQL
sudo apt-get install mysql-server
# To set a password, run
sudo mysql
# Now update your user with this password
# Replace 'password' with your password, but keep the quote marks!
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
# Then exit MySQL
quit
# and login to your Ubuntu user again
su - <user>
# Add the NodeSource APT repository for Node 12
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash
# Install Node.js
sudo apt-get install -y nodejs
sudo npm install [email protected] -g
# We'll name ours 'ghost' in this example; you can use whatever you want
sudo mkdir -p /var/www/ghost
# Replace <user> with the name of your user who will own this directory
sudo chown <user>:<user> /var/www/ghost
# Set the correct permissions
sudo chmod 775 /var/www/ghost
# Then navigate into it
cd /var/www/ghost
ghost install
This is a companion discussion topic for the original entry at https://henrywithu.com/ghost-setup/