Ghost adalah platform penerbitan sumber modern yang dibangun di atas platform Node.js. Ini sepenuhnya dapat disesuaikan dan mudah digunakan, memungkinkan Anda untuk mempublikasikan konten Anda dengan kurva pembelajaran hampir nol.
Dalam tutorial ini kami akan menunjukkan kepada Anda cara menerapkan blog Ghost yang aman di server Ubuntu 18.04 menggunakan Nginx sebagai proxy, sertifikat SSL Let's Encrypt gratis, Node.js versi LTS terbaru, dan MySQL/MariaDB sebagai backend database .
Prasyarat #
Sebagai prasyarat untuk mengikuti tutorial ini, Anda memerlukan:
- Menurut persyaratan sistem Ghost resmi, Anda memerlukan setidaknya 1G RAM. Jika Anda memiliki server dengan RAM kurang dari 1 GB, Anda dapat membuat file swap.
- Nama domain yang menunjuk ke IP server publik Anda. Dalam tutorial ini kita akan menggunakan
example.com
. - Nginx diinstal dengan mengikuti Cara Menginstal Nginx di Ubuntu 18.04.
- Firewall dikonfigurasi dengan mengikuti Cara Mengatur Firewall dengan UFW di Ubuntu 18.04. Pastikan port
80
dan443
terbuka.
Sebelum melanjutkan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.
Menginstal Node.js dan Benang #
Pada saat penulisan artikel ini, versi Node.js yang direkomendasikan untuk Ghost adalah v8 carbon LTS. Kami akan menginstal Node.js dari repositori NodeSource.
Aktifkan repositori NodeSource untuk Node.js v8 menggunakan curl
berikut ini perintah:
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
Instal Node.js dengan mengetik:
sudo apt install nodejs
Untuk metode instalasi lainnya, lihat panduan Cara Memasang Node.js di Ubuntu 18.04. Untuk menginstal yarnfirst, aktifkan repositori Yarn di sistem Anda dengan perintah berikut:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
Setelah repositori diaktifkan, instal benang dengan:
sudo apt update
sudo apt-get -o Dpkg::Options::="--force-overwrite" install yarn
Menginstal MySQL #
Ghost mendukung database MySQL, MariaDB dan SQLite. Dalam tutorial ini, kita akan menggunakan MySQL yang merupakan database yang direkomendasikan saat Anda menjalankan Ghost dalam mode produksi.
Instal paket MySQL dengan perintah berikut:
sudo apt install mysql-server
Jalankan mysql_secure_installation
perintah untuk meningkatkan keamanan instalasi MySQL:
sudo mysql_secure_installation
Anda akan diminta untuk mengonfigurasi VALIDATE PASSWORD PLUGIN
yang digunakan untuk menguji kekuatan kata sandi pengguna MySQL. Ada tiga tingkat kebijakan validasi kata sandi, rendah, sedang dan kuat. Tekan ENTER
jika Anda tidak ingin menyiapkan plugin validasi sandi.
Pada prompt berikutnya Anda akan diminta untuk mengatur kata sandi untuk pengguna root MySQL.
Setelah Anda mengatur kata sandi root, skrip juga akan meminta Anda untuk menghapus pengguna anonim, membatasi akses pengguna root ke mesin lokal dan menghapus database pengujian. Anda harus menjawab Y
(ya) untuk semua pertanyaan.
Selanjutnya kita perlu mengubah metode otentikasi dari auth_socket
ke mysql_native_password
, sehingga penginstal Ghost dapat mengakses server MySQL kami. Untuk melakukannya, masuk ke server MySQL sebagai pengguna root:
sudo mysql
dan jalankan kueri berikut yang akan menetapkan kata sandi pengguna root MySQL saat menggunakan mysql_native_password
metode:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_pasword';
FLUSH PRIVILEGES;
Pastikan Anda mengubah very_strong_pasword
dengan kata sandi yang kuat.
Menginstal Ghost-CLI #
Kami akan menginstal Ghost menggunakan utilitas Ghost CLI resmi. Utilitas ini memungkinkan Anda untuk menginstal atau memperbarui Ghost dalam satu perintah.
Ghost CLI tersedia sebagai paket npm. Perintah berikut akan menginstal Ghost CLI pada sistem Ubuntu Anda secara global:
sudo yarn global add ghost-cli
Membuat lokasi pemasangan Ghost #
Kami akan mengunduh dan menginstal Ghost di /var/www/ghost
direktori, yang merupakan lokasi instalasi yang disarankan.
Untuk membuat jenis direktori:
sudo mkdir -p /var/www/ghost
Ubah kepemilikan direktori menjadi pengguna Anda:
sudo chown $USER:$USER /var/www/ghost
$USER
adalah variabel lingkungan yang menyimpan nama pengguna Anda.
Setel izin direktori yang benar:
sudo chmod 775 /var/www/ghost
Menginstal Ghost #
Sekarang setelah Anda menginstal Ghost CLI dan semua prasyarat sudah lengkap, kita bisa mulai dengan instalasi.
Ubah ke /var/www/ghost
direktori.
cd /var/www/ghost
Untuk memulai instalasi, jalankan ghost install
, yang akan menginstal dan mengonfigurasi Ghost, mengonfigurasi Nginx sebagai proxy terbalik, dan mengamankan situs dengan sertifikat SSL mari kita enkripsi gratis.
ghost install
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
System checks failed with message: 'Linux version is not Ubuntu 16'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using `ghost install local` instead.
? Continue anyway? (y/N) y
Penginstal akan memeriksa sistem Anda dan mencetak beberapa peringatan seperti yang ditunjukkan di atas. Ketik y
untuk melanjutkan dan penginstal akan mengunduh dan menginstal Ghost:
ℹ Checking operating system compatibility [skipped]
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.24.9
✔ Finishing install process
Selanjutnya Anda akan diminta untuk mengatur URL blog Anda dan informasi MySQL Anda. Berikan username dan password root yang telah kita setup di Installing MySQL
bagian dan gunakan nama database default ghost_prod
.
? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod
Pemasang akan membuat pengguna sistem bernama ghost
dan akan menanyakan apakah Anda ingin membuat pengguna MySQL hantu, ketik Yes
.
✔ Configuring Ghost
✔ Setting up instance
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? Yes
✔ Setting up "ghost" mysql user
Selanjutnya, penginstal akan menanyakan apakah Anda ingin mengatur Nginx. Konfirmasikan dengan mengetik Yes
.
? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/example.com.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com.conf /etc/nginx/sites-available/example.com.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Running sudo command: nginx -s reload
✔ Setting up Nginx
Setelah Nginx diatur, penginstal akan menanyakan apakah Anda ingin mengatur SSL. Konfirmasikan dengan mengetik Yes
dan wizard konfigurasi akan meminta Anda untuk memasukkan alamat email Anda dan kemudian akan menghasilkan sertifikat SSL Let's Encrypt gratis untuk domain Anda dan mengkonfigurasi Nginx.
? Do you wish to set up SSL? Yes
? Enter your email (used for Let's Encrypt notifications) [email protected]
Running sudo command: mkdir -p /etc/letsencrypt
Running sudo command: ./acme.sh --install --home /etc/letsencrypt
Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain example.com --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail [email protected]
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
✔ Creating ssl config file at /var/www/ghost/system/files/example.com-ssl.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com-ssl.conf /etc/nginx/sites-available/example.com-ssl.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com-ssl.conf /etc/nginx/sites-enabled/example.com-ssl.conf
Running sudo command: nginx -s reload
✔ Setting up SSL
Selanjutnya, penginstal akan menanyakan apakah Anda ingin menyiapkan layanan systemd. Ketik Y
untuk menerima dan penginstal akan membuat layanan systemd baru bernama ghost_example-com dan mengaktifkannya untuk memulai saat boot:
? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_example-com.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_example-com.service /lib/systemd/system/ghost_example-com.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd
Terakhir, penginstal akan menyiapkan database dan menanyakan apakah Anda ingin memulai Ghost, ketik Yes
.
Running sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? Yes
Running sudo command: systemctl is-active ghost_example-com
✔ Ensuring user is not logged in as ghost user
✔ Checking if logged in user is directory owner
✔ Checking current folder permissions
Running sudo command: systemctl is-active ghost_example-com
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
Running sudo command: systemctl start ghost_example-com
✔ Starting Ghost
Running sudo command: systemctl is-enabled ghost_example-com
Running sudo command: systemctl enable ghost_example-com --quiet
✔ Starting Ghost
You can access your publication at https://example.com
Next, go to your admin interface at https://example.com/ghost/ to complete the setup of your publication
Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config
Selesaikan penyiapan Ghost #
Buka browser Anda, buka antarmuka admin Ghost Anda di https://example.com/ghost/
dan Anda akan disajikan dengan layar berikut:
Untuk memulai, klik Create your account
tombol.
Anda akan diarahkan ke layar Buat akun Anda, di mana Anda harus memasukkan judul Blog Anda, serta akun Anda Nama lengkap, Alamat email, dan Kata Sandi:
Setelah Anda mengisi detail dan mengklik Invite your team
tombol.
Pada layar ini Anda akan diminta untuk memasukkan alamat email kolaborator Anda. Anda cukup mengklik I'll do this later, take me to my blog!
link dan Anda akan diarahkan ke dasbor Ghost:
Dari sini, Anda dapat membuat postingan baru, menambahkan pengguna, dan mengubah konfigurasi Ghosts.