Ghost: Difference between revisions
From Newroco Tech Docs
Jump to navigationJump to search
(Created page with "==Installation== First install mysql <pre>apt-get install mysql-server</pre> Open mysql and set a password for root <pre>mysql -u root ALTER USER 'root'@'localhost' IDENTI...") |
No edit summary |
||
| Line 85: | Line 85: | ||
Now you can go to the link provided by the ghost installer at the end and finish the installation on the web interface | Now you can go to the link provided by the ghost installer at the end and finish the installation on the web interface | ||
==Theme development== | |||
Revision as of 09:21, 17 January 2022
Installation
First install mysql
apt-get install mysql-server
Open mysql and set a password for root
mysql -u root ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
And put the password in /root/.my.cnf
Install postfix
apt-get install mailutils
Install Node.js
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash apt-get install -y nodejs
Install Ghost-CLI
npm install ghost-cli@latest -g
Install Ghost
mkdir -p /var/www/sitename chown <user>:<user> /var/www/sitename chmod 775 /var/www/sitename cd /var/www/sitename ghost install
Instalation questions:
- Blog URL: http://blog.mydomain.com (NOTE: I've used http because the encryption is done one the proxy, otherwise it will end up in a redirect loop)
- MySQL hostname: localhost
- MySQL username / password: root and password (NOTE: it will use the root only to create a DB and a user with rights for that DB)
- Ghost database name: blog
- Set up a ghost MySQL user?: yes
- Set up NGINX?: no (NOTE: nginx will be used to proxy pass to the ghost port, but since we already have a proxy no need to use nginx)
- Set up SSL?: no (SSL is handled on the proxy)
- Set up systemd?: yes
- Start Ghost?: yes
The installer will give you a link to visit so you can finish the installation, but hold on that just a bit.
Edit /var/www/blog/config.production.json to make it listen on the VM's IP instead of just local
"server": {
"port": 2368,
"host": "0.0.0.0"
},
Edit the same file and configure ghost to use the local SMTP server to send emails
"mail": {
"transport": "SMTP",
"options": {
"hosts": "127.0.0.1",
"port": 25,
"tls": {
"rejectUnauthorized": false
}
}
},
Restart the ghost service
systemctl restart ghost_blog-mydomain-com.service
On the proxy point the domain to port 2368 instead of the default 80/443. The proxy vhost should look like this:
<VirtualHost *:443>
ServerName blog.mydomain.com
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
<Location />
SSLRequireSSL
</Location>
ProxyPass / http://ip.add.rr.ess:2368/
ProxyPassReverse / http://ip.add.rr.ess:2368/
CustomLog /var/log/apache2/blog.mydomain.access.log combined
ErrorLog /var/log/apache2/blog.mydomain.error.log
SSLCertificateFile /etc/letsencrypt/live/blog.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/blog.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Now you can go to the link provided by the ghost installer at the end and finish the installation on the web interface