Neste artigo, vamos aprender como instalar o Ghost CMS em um servidor Ubuntu com NGINX, Node.js, MySQL e Systemd.
Mas antes, vamos descrever uma breve introdução deste poderoso CMS, seus recursos e ferramentas.
Ghost é um sistema de gerenciamento de conteúdo (CMS) de código aberto projetado para blogueiros profissionais, publicações e profissionais de marketing de conteúdo.
Ele é construído com Node.js e utiliza uma arquitetura moderna e leve que o torna fácil de usar e estender.
Uma das principais características do Ghost CMS é sua interface de usuário limpa e intuitiva, que permite que os usuários criem e publiquem conteúdo de maneira fácil e sem distrações.
No geral, o Ghost é um CMS poderoso e flexível que é perfeito para blogueiros profissionais, publicações e profissionais de marketing de conteúdo que procuram uma plataforma limpa, moderna e fácil de usar.
Recursos e Benefícios do Ghost CMS
A plataforma inclui um editor rich text que suporta formatação, embeds e imagens, além de uma poderosa API que permite que os desenvolvedores criem integrações e funcionalidades personalizadas.
O Ghost também tem um forte foco em performance e segurança, com recursos como lazy loading, otimização automática de imagens e cache de conteúdo para garantir que os sites carreguem rapidamente e eficientemente.
A plataforma também é totalmente responsiva, então o conteúdo fica ótimo em qualquer dispositivo.
Além de suas principais funcionalidades de blogging, o Ghost também oferece uma série de recursos avançados para criadores de conteúdo profissionais, como newsletters, assinaturas e associações.
Esses recursos permitem que os usuários construam uma audiência leal e monetizem seu conteúdo através de acesso pago ou doações.
O único requisito para este tutorial é que você tenha um servidor Ubuntu instalado.
Recomendamos a DigitalOcean para instalar seu servidor Ubuntu.
Com seu servidor Ubuntu devidamente instalado, siga as etapas abaixo.
1. Instale o NGINX
Antes atualize o servidor com este comando:
sudo apt-get update
Agora instale o Nginx com este comando:
sudo apt-get install nginx
Se ufw ativado, use o comando abaixo para permitir o Nginx:
sudo ufw allow 'Nginx Full'
2. Instale o MySQL
sudo apt-get install mysql-server
Durante o processo de instalação, você será solicitado a definir uma senha para o usuário root do MySQL.
Certifique-se de escolher uma senha forte e lembre-se dela, pois você precisará dela mais tarde.
Quando a instalação estiver concluída, execute o seguinte comando para proteger sua instalação do MySQL:
mysql_secure_installation
Será feita uma série de perguntas para proteger a sua instalação do MySQL.
Recomenda-se responder “sim” a todas elas. Depois que a configuração estiver concluída, o MySQL deve ser instalado e executado em seu sistema Ubuntu.
3. Instale Node.js e npm
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
4. Crie um novo diretório para a instalação do Ghost
sudo mkdir -p /var/www/ghost
Em geral, é recomendável executar o Ghost como um usuário não-root com privilégios limitados por motivos de segurança.
Para fazer isso, você precisará criar um novo usuário e grupo para o Ghost e conceder a eles a propriedade dos arquivos e diretórios do Ghost.
Aqui estão as etapas para definir as permissões corretas para o Ghost:
1. Crie um novo usuário e grupo para o Ghost:
sudo adduser --system ghost
2. Conceda ao usuário e ao grupo do Ghost a propriedade do diretório de instalação do Ghost:
sudo chown -R ghost:ghost /path/to/your/ghost/installation
3. Defina as permissões corretas no diretório de instalação do Ghost e seu conteúdo:
sudo chmod -R 775 /path/to/your/ghost/installation
4. Defina as permissões corretas no arquivo de configuração do Ghost:
sudo chmod 664 /path/to/your/ghost/installation/config.production.json
Navegue até o diretório:
cd /var/www/ghost
5. Baixe e instale o Ghost
sudo npm i -g ghost-cli@latest
ghost install
Siga as instruções para concluir a instalação.
6. Configure o Nginx
sudo nano /etc/nginx/sites-available/default
Adicione o seguinte bloco de código ao arquivo, substituindo your_domain por seu nome de domínio:
server {
listen 80;
server_name your_domain;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
Salve o arquivo e saia.
Reinicie o nginx:
sudo service nginx restart
7. Configure o MySQL
Para usar o MySQL com o Ghost CMS, você precisará configurar o Ghost para usar um banco de dados MySQL.
Você pode fazer isso editando o arquivo config.production.json no diretório de instalação do Ghost.
Procure a seção database e altere a propriedade client para mysql.
Para fazer isso, siga estas etapas:
Abra o arquivo config.production.json em um editor de texto.
Você pode usar um editor de linha de comando como nano ou vi, ou um editor gráfico como gedit ou Sublime Text. Por exemplo:
nano config.production.json
Localize a seção database no arquivo. Deve ser algo como isto:
"database": {
"client": "sqlite3",
"connection": {
"filename": "/var/lib/ghost/content/data/ghost.db"
}
}
Altere a propriedade client para mysql:
"database": {
"client": "mysql",
"connection": {
"filename": "/var/lib/ghost/content/data/ghost.db"
}
}
Adicione os detalhes de conexão necessários para seu banco de dados MySQL.
O objeto connection deve incluir as seguintes propriedades:
- host: o nome do host ou endereço IP do servidor MySQL. Normalmente, isso ocorre localhost se o servidor MySQL estiver sendo executado na mesma máquina que o Ghost.
- user: o nome de usuário de um usuário MySQL que tem acesso ao banco de dados.
- password: a senha para o usuário MySQL.
- database: o nome do banco de dados que você deseja usar para o Ghost.
Aqui está um exemplo de como a seção database pode parecer com essas propriedades adicionadas:
"database": {
"client": "mysql",
"connection": {
"host": "localhost",
"user": "your_mysql_username",
"password": "your_mysql_password",
"database": "your_mysql_dbname"
}
}
Substitua your_mysql_username, your_mysql_password e your_mysql_dbname pelos valores apropriados para sua configuração do MySQL.
Salve o arquivo e saia do editor de texto.
Reinicie o Ghost para aplicar as alterações:
ghost restart
8. Instale o certificado SSL Let’s Encrypt
Para instalar um certificado SSL Let’s Encrypt em seu servidor, você precisará usar a ferramenta Certbot. Aqui estão os passos básicos para fazer isso:
Use os seguintes comandos para instalar o Certbot:
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
Obtenha um certificado para o seu domínio.
Execute o seguinte comando, substituindo your_domain pelo seu nome de domínio:
sudo certbot --nginx -d your_domain
Siga os prompts para concluir o processo de geração do certificado. Isso envolverá concordar com os termos de serviço do Let’s Encrypt e fornecer um endereço de e-mail para avisos de renovação.
Se o certificado foi obtido com sucesso, você deverá ver uma mensagem indicando que o certificado foi instalado.
Teste seu certificado visitando seu site usando HTTPS. O certificado deve ser válido e a conexão deve ser segura.
Para renovar automaticamente seu certificado antes que ele expire, você pode configurar uma tarefa cron para executar o comando certbot renew.
Edite o arquivo crontab com o seguinte comando:
sudo crontab -e
Adicione a seguinte linha ao arquivo para executar o comando de renovação uma vez por semana:
0 0 * * 0 certbot renew --quiet
Isso garantirá que seu certificado seja renovado automaticamente antes de expirar.
9. Configure o NGINX para usar um cerificado SSL
Para fazer isso, edite o arquivo de configuração nginx do seu site Ghost (por exemplo, /etc/nginx/sites-available/default) e adicione as seguintes linhas:
listen 443 ssl;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
Substitua /path/to/your/certificate.crt e /path/to/your/private.key pelos caminhos para seu certificado SSL e chave privada, respectivamente.
Reinicie o nginx para aplicar as alterações:
sudo service nginx restart
Seu site Ghost agora deve estar usando SSL/TLS para proteger as conexões.
10. Configure o Systemd (Se não tiver)
Systemd é a ferramenta de gerenciamento de processos recomendada para manter o Ghost funcionando sem problemas.
Crie um novo arquivo de serviço systemd para o Ghost:
sudo nano /etc/systemd/system/ghost.service
Adicione o seguinte conteúdo ao arquivo, substituindo /path/to/your/ghost/installation pelo caminho para a instalação do Ghost:
[Unit]
Description=Ghost blogging platform
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/your/ghost/installation
ExecStart=/usr/bin/npm start --production
User=your_user
Restart=always
[Install]
WantedBy=multi-user.target
Salve o arquivo e saia.
Habilite o serviço:
sudo systemctl enable ghost
Inicie o serviço:
sudo systemctl start ghost
Agora o Ghost CMS deve estar sendo executado como um serviço systemd e será iniciado automaticamente na inicialização.
Conclusão
Espero que este artigo tenha ajudado você a aprender como instalar o Ghost CMS no Ubuntu.
Qualquer dúvida, deixe um comentário!