<server_ip> - ip of the server the blog is being installed on - name for the server e.g. "myblog" - domain name e.g. "myblog.mycompany.com" <ghost_mysql_pw> - a password for a ghost user in mysql <ssl_email> - an email address for letsencrypt
Largely based on the following:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04 http://www.tecmint.com/install-mariadb-in-ubuntu-and-debian/
hostnamectl set-hostname <hostname>hostnamevim /etc/hosts- Add:
<server_ip> <domain> <hostname>after localhost
adduser adminadduser admin sudo
su admincd ~mkdir .ssh- [LOCAL]
scp ~/.ssh/id_rsa.pub admin@<server_ip>:/home/admin/.ssh/uploaded_key.pub cat uploaded_key.pub >> ~/.ssh/authorized_keysrm -r uploaded_key.pub
sudo apt-get updatesudo apt-get upgradesudo apt-get dist-upgrade
sudo adduser ghostsudo adduser ghost sudo@NOTE: should this really be a sudo user?!
sudo vim /etc/ssh/sshd_config- change:
- PermitRootLogin no
- PasswordAuthentication no
- add:
- AddressFamily inet
sudo systemctl restart sshsudo ufw allow OpenSSHsudo ufw enable
sudo apt-get updatecurl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.shsudo bash nodesource_setup.shsudo apt-get install nodejssudo apt-get install build-essentialnode -v= 6.10.2npm -v= 3.10.10sudo apt-get install nginxsudo ufw allow 'Nginx Full'@NOTE: I want SSL, would like to make this SSL only, can't do this before letsencrypt setup though?
Install:
sudo apt-get install software-properties-commonsudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://www.ftp.saix.net/DB/mariadb/repo/10.1/ubuntu xenial main'sudo apt-get updatesudo apt-get install mariadb-server
Configure:
sudo mysql_secure_installationmysql -u root -pCREATE USER ghost@localhost identified by '<ghost_mysql_pw>';CREATE DATABASE ghost_prod;GRANT ALL PRIVILEGES ON ghost_prod.* to 'ghost'@'localhost' IDENTIFIED BY '<ghost_mysql_pw>';@NOTE what are the expected steps here - I just did it all and plugged it into Ghost-CLI.
@NOTE: which user should I be here? Should it be different for installing vs running?!
su ghostsudo npm i -g ghost-clicd /var/www/sudo mkdir ghostsudo chown ghost:ghost ghostcd ghostghost install
Then fill out the prompts:
- Url:
- MySQL host: localhost
- MySQL user: ghost
- MySQL pass: <ghost_mysql_pw>
- MySQL db: ghost_prod
- SSL: yes
- SSL email: <ssl_email>
@Note: SSL setup then fails with Error code 1 if doesn't already point at <server_ip> and seems to also fail without sudo?
I was testing on Linode, rather than digital ocean. All the tutorials & playbooks I found for both included updating network settings & I didn't run into any problems with the admin username. I guess DO must set that up?!
I didn't quite follow this, and this was the part that I had the most problem with. Could you go into more detail about what the correct sequence of steps are?
Hmm, if I'm confused by this, I think other people will be too. I'll write more about this on the main issue in reply to Austin as well.