Como implementar um blog fantasma com o Docker

O Ghost é uma plataforma popular de criação de conteúdo escrita em JavaScript com Node.js. O software de código aberto vem com tudo o que você precisa para criar, tema, publicar e manter seu blog.

O Ghost é um software de código aberto suportado pelo serviço hospedado oficial do Ghost (Pro). Você pode instalá-lo em seu servidor adicionando Node.js e usando a CLI do Ghost para configurar sua pilha. O Ghost também está disponível como uma imagem do Docker que agrupa todas as dependências para você.

Neste guia, usaremos o Docker para colocar rapidamente um novo blog do Ghost em funcionamento. Instale o Docker e o Docker Compose em seu host antes de continuar. Embora você possa implementar o Ghost apenas com o Docker, o Compose facilita o fornecimento e o gerenciamento das definições de configuração que seu site precisa para começar.

índice

  1. Iniciando um contêiner fantasma
    1. Configuração fantasma
  2. Use um banco de dados externo
  3. Encaminhando tráfego para seu contêiner
  4. Gerenciamento de atualização fantasma
  5. Usando ghost-cli
  6. Resumo

Iniciando um contêiner fantasma

Você pode iniciar um site básico do Ghost com um único comando do Docker:

 docker run -d -p 2368:2368 --name simple-ghost ghost:4

Isso fará com que o Ghost apareça em sua porta padrão de 2368. Visite http://localhost:2368 para ver o site ou http://localhost:2368/ghost para acessar o painel de administração do Ghost. Você precisará fornecer algumas configurações de primeira execução para concluir a instalação do Ghost e criar uma conta de usuário inicial.

Essa abordagem é ótima para experimentação rápida se você estiver apenas testando o Ghost. No entanto, ainda não configuramos o armazenamento persistente, portanto, seus dados serão perdidos quando o contêiner parar.

Aqui está um exemplo mais completo usando o Docker Compose para configurar o Ghost com um volume do Docker. Monte um volume no diretório /var/lib/ghost/content para armazenar dados do Ghost fora do contêiner.

 version: "3" services: ghost: image: ghost:4 ports: - 8080:2368 environment: url: https://ghost.example.com volumes: - ghost:/var/lib/ghost/content restart: except- volumes parados: fantasma:

Este arquivo Compose mostra algumas outras alterações na configuração do contêiner. A porta 2368 exposta pelo contêiner mapeia para a porta 8080 em seu host, permitindo que você use localhost:8080 para acessar o Ghost. A política de reinicialização é alterada para a unless-stopped para garantir que seu site seja iniciado automaticamente após a reinicialização do host.

Agora use o Compose para visualizar seu site:

 docker-compose up -d

Configuração fantasma

O Ghost oferece suporte a vários parâmetros de configuração para personalizar seu comportamento e configurar seu site. Ao usar o Docker, você pode fornecer esses valores como variáveis ​​de ambiente.

Os arquivos de configuração do Ghost usam objetos JSON aninhados para armazenar valores. Você pode converter chaves JSON em seus equivalentes de variáveis ​​de ambiente substituindo cada nível da árvore por caracteres __ (sublinhado duplo):

 # em um arquivo de configuração JSON { "mail": { "transport": "SMTP" } } # como uma variável de ambiente mail__transport=SMTP

Use o campo de environment em seu docker-compose.yml para fornecer estes parâmetros ao seu contêiner do Ghost:

 versão: serviços "3": ghost: environment: mail__transport: SMTP

Consulte a documentação do Ghost para obter uma lista completa de opções compatíveis. Você pode configurar um sistema de e-mail, usar uma URL separada para acessar o painel de administração, ignorar caminhos de diretório e habilitar opções de privacidade por meio das variáveis ​​de ambiente disponíveis.

A opção url é especialmente importante, pois é necessária para sites de produção ao vivo. Isso define a URL que os visitantes externos usarão para acessar seu site. Defina-o para o nome de domínio do seu site em seu docker-compose.yml :

 ambiente: url: https://ghost.example.com

Use um banco de dados externo

Por padrão, o Ghost usa um banco de dados SQLite armazenado como um arquivo no diretório de conteúdo do seu site. Ele permanecerá como parte do volume do Docker criado anteriormente. Em vez disso, você pode usar um banco de dados MySQL externo fornecendo detalhes de conexão via database de dados – variáveis ​​de ambiente padrão:

 services : ghost : # ... ambiente : database__client : mysql database__connection__host : ghost_mysql database__connection__user : root database__connection__password : databasePw database__connection__database : ghost ghost_mysql : image : mysql:5.7 expor : - 3306 environment : MYSQL_DATABASE : ghost MYSQL_ROOT_PASSWORD : databasePw volumes : -mysql_DATABASE : ghost MYSQL_ROOT_PASSWORD : databasePw volumes var/lib/mysql restart : volumes a menos que sejam parados : mysql:

Este arquivo Compose inclui outro serviço que executa o MySQL em um contêiner adicional. As variáveis ​​de ambiente são definidas no serviço Ghost para fornecer detalhes de conexão do MySQL. Um volume mysql separado é criado para preservar os arquivos do banco de dados.

O Compose conecta automaticamente os serviços a uma rede do Docker. O Ghost pode acessar o contêiner ghost_mysql usando o nome do serviço como o nome do host. Se você quiser usar um banco de dados MySQL não dockerizado existente, poderá remover o arquivo de definição de serviço ghost_mysql e fornecer o endereço IP, o nome do esquema do banco de dados e as credenciais do usuário do servidor MySQL.

Encaminhando tráfego para seu contêiner

Seu site do Ghost agora deve estar funcionando, mas ainda está exposto na porta 8080. Se você não estiver executando mais nada em seu host, poderá atribuir a porta 80 ou 443 para ser acessada diretamente por meio do nome de domínio do seu servidor. Em outras situações, use um proxy reverso como o NGINX para encaminhar o tráfego da Web para o contêiner do Ghost.

Adicione NGINX ao seu host:

 sudo apt update sudo apt install nginx # Permite tráfego HTTP/HTTPS através do firewall sudo ufw allow 80 sudo ufw allow 443

Defina um host NGINX para seu site em /etc/nginx/sites-available/ghost.example.com :

 servidor { server_name ghost.example.com; index index.html; access_log /var/log/nginx/ghost_access.log error_log /var/log/nginx/ghost_error.log error; local / { proxy_pass http://127.0.0.1:8080; proxy_redirect desligado; proxy_set_header Host $http_host; proxy_set_header X-Original-IP $remote_addr; } }

Este arquivo configura o NGINX para encaminhar o tráfego para ghost.example.com através da porta 8080 em diante localhost , que estava anteriormente vinculado ao seu contêiner do Ghost. Habilite o novo arquivo de configuração conectando-o ao diretório sites-enabled NGINX:

 sudo ln -s /etc/nginx/sites-available/ghost.example.com /etc/nginx/sites-enabled/ghost.example.com

Reinicie o NGINX para aplicar as alterações:

 sudo service nginx restart

Agora você pode configurar o SSL com o serviço gratuito Let's Encrypt. Adicione o Let's Encrypt Certbot para automatizar a emissão e renovação de certificados:

 sudo apt instalar certbot

Use o Certbot para obter certificados para seu site NGINX:

 sudo certbot --nginx

O Certbot lerá seus sites NGINX e gerará certificados para seus campos de configuração server_name . Reconfigure automaticamente o NGINX para servir o certificado com seu site. Agora você deve conseguir acessar seu blog do Ghost visitando seu nome de domínio por HTTPS.

Embora tenhamos focado no NGINX neste artigo, existem outras opções para fazer proxy do tráfego da Web por meio do contêiner do Ghost. Traefik é um grande concorrente que tem suporte de primeira classe para o Docker. A implantação de uma instância do Traefik permite configurar roteamento automático e SSL por meio das tags do Docker que você configuraria em seu contêiner do Ghost.

Gerenciamento de atualização fantasma

Você pode atualizar o Ghost substituindo o contêiner do Docker do seu site por um novo que execute uma versão atualizada da imagem do Ghost. Como o conteúdo do seu site é armazenado com segurança em um volume separado do Docker, ele será preservado quando o volume for reanexado ao novo contêiner.

Se você estiver marcando uma versão principal da imagem em seu docker-compose.yml , por exemplo, ghost:4 , você pode atualizar para a versão secundária mais recente executando docker-compose up com o sinalizador --pull :

 docker-compose up -d --pull

Isso informa ao Compose para procurar alterações na tag de imagem e extrair uma versão atualizada quando disponível. Substitua seus contêineres por novas instâncias usando a versão mais recente da imagem que corresponde à tag.

Quando você quiser alterar a tag que está usando, atualize o arquivo de image referenciado em seu docker-compose.yml . Repita docker-compose up -d para extrair a imagem e iniciar novos contêineres. Por exemplo, se o Ghost v5 for lançado no futuro, convém alterar seu docker-compose.yml para image: ghost:5 para alternar para a nova versão principal.

O Docker facilita a obtenção de atualizações do Ghost extraindo a imagem mais recente e substituindo os contêineres. No entanto, você ainda precisa prestar atenção às alterações que está aplicando. Verifique o registro de alterações do Ghost antes de fazer uma atualização importante, caso precise executar etapas adicionais para concluir a migração.

Usando ghost-cli

ghost-cli está disponível dentro da imagem do Ghost Docker. Este utilitário é usado para configurar e manter o Ghost quando instalado em ambientes tradicionais sem contêineres.

Você pode fazer login ghost-cli pelo Docker usando o comando ghost com docker exec . Aqui está um exemplo que usa o subcomando version para revelar a versão do Ghost que você está usando:

 docker exec -it my-ghost-container ghost version

Embora muitos componentes ghost-cli funcionem, alguns não são compatíveis com ambientes dockerizados. Comandos como install , setup , update e uninstall estão quebrados, sem sentido ou contrários às práticas recomendadas quando usados ​​com a imagem do Ghost Docker. O Ghost e todas as suas dependências são incorporadas à imagem e não precisam ser "instaladas"; as atualizações devem ser aplicadas iniciando um novo contêiner, conforme mostrado acima.

Resumo

O Ghost é uma plataforma de blog moderna que oferece um painel limpo, conteúdo avançado avançado e recursos de criação de temas e suporte para personalização. Usar o Docker para hospedar o Ghost simplifica o processo de configuração, reduz o número de pacotes de SO necessários e ajuda a tornar seu site mais portátil entre ambientes.

Depois que seu blog dockerizado estiver funcionando, use a documentação de desenvolvimento padrão do Ghost para gerenciar seu site e seu conteúdo. Você pode configurar assinaturas, boletins informativos, temas personalizados e integrações de API usando os recursos integrados da plataforma.

  • Como converter PNG para JPG no Windows 10 ou 11
  • Mais de 90 temas WordPress, plugins de backdoor no ataque da cadeia de suprimentos

descubra mais conteúdo

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é o fantasma do Docker?

O Ghost é uma plataforma de blogs gratuita e de código aberto escrita em JavaScript e distribuída sob a licença MIT , projetada para simplificar o processo de publicação online para blogueiros individuais, bem como publicações online.

Como instalo o Ghost Docker?

Como instalar o Ghost CMS com o Docker no Ubuntu 20.04

  1. Pré-requisitos.
  2. Passo 1 – Configure o Firewall UFW.
  3. Passo 2 – Instale o Certbot e obtenha o certificado SSL.
  4. Etapa 3 – Instale o Docker e o Docker Compose.
  5. Passo 4 – Instale o Ghost. Criar arquivo de composição do Docker.
  6. Passo 5 – Execute o Site.
  7. Etapa 6 – Configuração completa.
  8. Passo 7 – Atualize o Ghost.

O que é o cão de guarda Docker?

O pacote Python docker-watchdog fornece um serviço em segundo plano que monitora os hosts de contêiner do Docker por períodos de inatividade e executa um desligamento automático do host depois que um limite de inatividade predefinido é atingido .

O que é o supervisor Docker?

Ferramenta de gerenciamento de solicitações e descoberta de mídia para o ecossistema Plex. Foto. Overseerr é um aplicativo de software gratuito e de código aberto para gerenciar solicitações para sua biblioteca de mídia . Ele se integra aos seus serviços existentes, como Sonarr, Radarr e Plex!

Ir arriba