Como implantar o Ghost v0.11 LTS no Debian 8

O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde seu lançamento em 2013. Ele coloca o foco no conteúdo e nos blogs. O mais atraente do Ghost é seu design simples, limpo e responsivo. Você pode escrever as postagens do seu blog usando um telefone celular. O conteúdo do Ghost é escrito usando o idioma Markdown. O Ghost é um ajuste perfeito para indivíduos ou pequenos grupos de escritores.

Neste guia, vamos configurar e implantar um blog seguro Ghost v0.11.x LTS em um VPS Debian 8 usando Let's Encrypt , Certbot , Node.js , NPM , NGINX e MySQL .

Exigências

  • Registre (compre) um nome de domínio.
  • Instância do servidor Debian 8 com no mínimo 1 GB de RAM .
  • Usuário Sudo.

Antes de você começar

  1. Verifique a versão Debian:

    lsb_release -ds
    # Debian GNU/Linux 8.9 (jessie)
    
  2. Crie uma nova conta de usuário não raiz :

    adduser johndoe --gecos "John Doe"
    
  3. Torne-o superusuário adicionando-o ao sudogrupo:

    usermod -aG sudo johndoe
    
  4. Mude para o novo usuário:

    su - johndoe
    
  5. Atualize o software do seu sistema operacional:

    sudo apt-get update && sudo apt-get upgrade -y
    
  6. Configure o fuso horário:

    sudo dpkg-reconfigure tzdata
    
  7. Instale as ferramentas necessárias:

    sudo apt-get install -y build-essential zip unzip git apt-transport-https
    
  8. Reinicialize o sistema, se necessário:

    sudo shutdown -r now
    

Instale o Certbot

NOTA : Antes de iniciar esta etapa, verifique se você definiu registros DNS para o seu domínio.

Nós estamos indo para usar Criptografar Vamos CA e FEP cliente Certbot 's para obter SSL / TLS certificado para o nosso Santo blog. Não se esqueça de substituir todas as instâncias blog.domain.tldpelo seu nome de domínio.

  1. Instale o software de gerenciamento de certificados Certbot (anteriormente chamado Let's Encrypt Client ) feito com Python:

    sudo -s
    printf "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list.d/jessie-backports.list
    exit        
    sudo apt-get update
    sudo apt-get install -y certbot -t jessie-backports
    
  2. Verifique a versão do Certbot:

    certbot --version
    # certbot 0.10.2
    
  3. Obtenha o certificado RSA usando o método de autenticação independente (plug-in):

    sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --agree-tos
    
    # IMPORTANT NOTES:
    #  - Congratulations! Your certificate and chain have been saved at 
    /etc/letsencrypt/live/blog.domain.tld/fullchain.pem. 
    #  Your cert will expire on YYYY-MM-DD. . . .
    #  . . .
    

    Após seguir as etapas anteriores, seu certificado e sua chave privada estarão no /etc/letsencrypt/live/blog.domain.tlddiretório

Instale o Node.js e o NPM

NOTA : No momento, o Ghost suporta apenas as versões 4.5 e 6.9 ou superior do Node.js.

O Ghost é criado no Node.js. Vamos instalar a versão recomendada para o Ghost que está v6 Boron LTSno momento desta redação.

  1. Faça o download e instale o Node.js v6 LTS:

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
  2. Verifique a versão do Node.js e do NPM:

    node -v && npm -v
    # v6.11.2
    # 3.10.10
    

Instale o MySQL

Por padrão, o Ghost vem configurado para usar um banco de dados SQLite, que não requer configuração.

Como alternativa, o Ghost também pode ser usado com um banco de dados MySQL alterando a configuração do banco de dados. Você deve criar um banco de dados e um usuário primeiro e depois alterar a configuração existente do sqlite3.

  1. Faça o download e instale o MySQL:

    sudo apt-get install -y mysql-server
    

    NOTA : Durante a instalação, você será solicitado a fornecer a senha de usuário "root" do MySQL. Você deve definir uma senha segura para o usuário "root" do MySQL.

  2. Verifique a versão do MySQL:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.5.57, for debian-linux-gnu (x86_64) using readline 6.3
    
  3. Verifique se o daemon MySQL foi iniciado e está executando:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Execute o mysql_secure_installationscript para proteger um pouco o seu banco de dados:

    sudo mysql_secure_installation
    
  5. Entre no MySQL como usuário root:

    mysql -u root -p
    # Enter password:
    
  6. Crie um novo banco de dados e usuário MySQL:

    create database dbname;
    grant all on dbname.* to 'user' identified by 'password';
    
  7. Saia do MySQL:

    exit
    

Instale o NGINX

  1. Faça o download e instale a versão principal mais recente do NGINX no repositório oficial do NGINX:

    wget https://nginx.org/keys/nginx_signing.key
    sudo apt-key add nginx_signing.key
    rm nginx_signing.key
    sudo -s
    printf "deb https://nginx.org/packages/mainline/debian/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/debian/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
    exit
    sudo apt-get update
    sudo apt-get install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
    
  2. Verifique se está instalado, verificando a versão do NGINX:

    sudo nginx -v
    # nginx version: nginx/1.13.4
    
  3. Verifique o status, ative e inicie o serviço NGINX (daemon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Crie o /etc/nginx/ssldiretório e gere um novo grupo Diffie-Hellman ( DH ):

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Crie um diretório de log para o blog.domain.tldhost virtual:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Configure o NGINX como um servidor proxy reverso HTTP ( S ):

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Cole o seguinte em /etc/nginx/conf.d/ghost.conf:

    # domain: blog.domain.tld
    # public: /var/www/ghost
    
    upstream ghost_app {
        server 127.0.0.1:2368;
        keepalive 32;
    }
    
    server {
        listen [::]:80 default_server;
        listen 80 default_server;
        listen [::]:443 ssl http2 default_server;
        listen 443 ssl http2 default_server;
    
        server_name blog.domain.tld; # Change to your domain/hostname
        root /var/www/ghost; # Change to the path where Ghost is
    
        error_log /var/log/nginx/blog.domain.tld/error.log;
        access_log /var/log/nginx/blog.domain.tld/access.log;
    
        client_max_body_size 100M;
    
        ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.pem;
        ssl_dhparam ssl/dhparams-2048.pem;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
    
        ssl_buffer_size 4K;
    
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50M;
        ssl_session_tickets off;
    
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.pem;
    
        resolver 8.8.8.8 8.8.4.4 valid=300s;
    
        location / {
            proxy_pass http://ghost_app;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_hide_header X-Powered-By;
    
            proxy_http_version 1.1;
            proxy_set_header Connection "";
    
        }
    }
    
  8. Salve e teste a configuração do NGINX para erros de sintaxe:

    sudo nginx -t
    
  9. Recarregue a configuração do NGINX:

    sudo systemctl reload nginx.service
    

Instalar o Ghost

NOTA : Se você deseja hospedar vários blogs Ghost no mesmo VPS, cada instância do Ghost deve estar em execução em uma porta separada.

  1. Crie o diretório raiz do documento:

    sudo mkdir -p /var/www/
    
  2. Crie um novo ghostusuário:

    sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
    
  3. Download Ghost:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
    
  4. Descompacte o Ghost no /var/www/ghostdiretório (local de instalação recomendado):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Navegue para o novo ghostdiretório:

    cd /var/www/ghost
    
  6. Mude a propriedade do /var/www/ghostdiretório:

    sudo chown -R ghost:ghost .
    
  7. Mudar para novo ghostusuário:

    sudo su - ghost
    
  8. Navegue para a raiz do documento /var/www/ghost:

    cd /var/www/ghost
    
  9. Instale o Ghost apenas com dependências de produção. Quando isso termina, o Ghost está instalado:

    npm install --production
    
  10. Configurar Santo mudando url, maile databasepropriedade da produção objeto dentro de config.jsarquivo:

    cp config.example.js config.js
    vim /var/www/ghost/config.js
    
    
    var path = require('path'),
        config;
    
    config = {
    // ### Production
    // When running Ghost in the wild, use the production environment.
    // Configure your URL and mail settings here
    production: {
        url: 'https://blog.domain.tld',
        mail: {
            transport: 'SMTP',
            options: {
                service: 'Mailgun',
                auth: {
                    user: '',
                    pass: ''
                }
            }
        },
        database: {
            client: 'mysql',
            connection: {
                host: '127.0.0.1',
                user: 'your_database_user',
                password: 'your_database_password',
                database: 'your_database_name',
                charset: 'utf8'
            },
            debug: false
        },
        // . . .
        // . . .
    

    NOTA : Você também deve definir as configurações de correio. Consulte a documentação oficial do Ghost sobre como fazer isso.

  11. Inicie o Ghost no ambiente de produção:

    npm start --production
    

    Agora o Ghost estará em execução. O front-end do blog e a interface administrativa estão protegidos com HTTPS e o HTTP / 2 também está funcionando. Você pode abrir o navegador e visitar o site em https://blog.domain.tld. Não se esqueça de substituir blog.domain.tldpelo seu nome de domínio.

  12. Encerre o processo do Ghost pressionando CTRL+ Ce saia do ghostusuário de volta ao usuário root:

    exit
    

Executando o Ghost como um serviço do sistema

Se você fechar sua sessão de terminal com seu VPS, seu blog também será desativado. Isso não é bom. Para evitar isso, vamos usar o Systemd. Ele manterá nosso blog atualizado 24 horas por dia, 7 dias por semana.

  1. Crie o ghost.servicearquivo de unidade Systemd. Execute sudo vim /etc/systemd/system/ghost.servicee copie / cole o seguinte conteúdo:

    [Unit]
    Description=Ghost - the professional publishing platform
    Documentation=https://docs.ghost.org/v0.11.11/docs
    After=network.target
    
    [Service]
    Type=simple
    # Edit WorkingDirectory, User and Group as needed
    WorkingDirectory=/var/www/ghost
    User=ghost
    Group=ghost
    ExecStart=/usr/bin/npm start --production
    ExecStop=/usr/bin/npm stop --production
    Restart=always
    SyslogIdentifier=Ghost
    
    [Install]
    WantedBy=multi-user.target
    
  2. Ative e inicie ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Verificar ghost.servicestatus:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Navegue https://blog.domain.tld/ghost/e crie um usuário administrador do Ghost. Faça isso o mais rápido possível!

Conclusão

É isso aí. Agora temos um blog Ghost totalmente funcional. Seu servidor está entregando conteúdo via HTTP / 2 quando suportado pelo cliente. Se você quiser alterar o tema padrão do Ghost chamado Casper para um personalizado, basta baixar e descompactar o tema na /var/www/ghost/content/themespasta e selecioná-lo na interface de administração do Ghost, localizada em https://blog.domain.tld/ghost.



Instalando o Fork CMS no CentOS 7

Instalando o Fork CMS no CentOS 7

Usando um sistema diferente? Fork é um CMS de código aberto escrito em PHP. O código fonte do Forks está hospedado no GitHub. Este guia mostra como instalar o Fork CM

Como instalar o Typetter CMS no CentOS 7

Como instalar o Typetter CMS no CentOS 7

O Typesetter é um CMS de código aberto escrito em PHP, focado na facilidade de uso com a edição True WYSIWYG e armazenamento de arquivos simples. Neste artigo, instalaremos

Como instalar o MODX Revolution em um CentOS 7 LAMP VPS

Como instalar o MODX Revolution em um CentOS 7 LAMP VPS

Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto

Como instalar o MODX Revolution em um LAMP VPS do Fedora 26

Como instalar o MODX Revolution em um LAMP VPS do Fedora 26

Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto

Como instalar o Neos CMS no CentOS 7

Como instalar o Neos CMS no CentOS 7

O Neos é um sistema inovador de gerenciamento de conteúdo de código aberto, ótimo para criar e editar conteúdo online. Com autores e editores em mente, o Neo

Executando o WordPress no OpenBSD 6.5 com o HTTPBS do OpenBSDs

Executando o WordPress no OpenBSD 6.5 com o HTTPBS do OpenBSDs

Introdução Quanto mais próximo você mantiver sua instalação do OpenBSD do padrão e sem tantos pacotes adicionados, mais seguro será. Enquanto o mais commo

Instale o WordPress no OpenBSD 6.2

Instale o WordPress no OpenBSD 6.2

Introdução O WordPress é o sistema de gerenciamento de conteúdo dominante na internet. Ele fornece tudo, desde blogs a sites complexos, com conteúdo dinâmico

Instale e configure um blog do Ghost v1.0.0 no Ubuntu 16.04

Instale e configure um blog do Ghost v1.0.0 no Ubuntu 16.04

O Ghost é uma plataforma de publicação de código aberto moderna, construída no Node.js com um cliente de administrador do Ember.js., uma API JSON e uma API de tema fornecida pelo Handlebars.js. Ghos

Como implantar o Ghost v0.11 LTS no CentOS 7.3

Como implantar o Ghost v0.11 LTS no CentOS 7.3

Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde a sua 201

Como instalar o Dotclear no Debian 9 (Stretch)

Como instalar o Dotclear no Debian 9 (Stretch)

Usando um sistema diferente? Dotclear é um mecanismo de blog muito simples. É de código aberto e fácil de usar. Este tutorial passará pela instalação em

Como implantar vários sites Wordpress usando o Virtualmin e o Ansible no Ubuntu 16.04

Como implantar vários sites Wordpress usando o Virtualmin e o Ansible no Ubuntu 16.04

Um uso comum de um servidor virtual Vultr é hospedar sites do Wordpress. Este guia mostra como automatizar a configuração de um servidor virtual a partir do scratc

Configurando o WordPress com o WooCommerce no CentOS 6

Configurando o WordPress com o WooCommerce no CentOS 6

As instâncias do Vultr são uma ótima maneira de executar seu blog WordPress, mas uma extensão mais notável do WordPress é o WooCommerce, um plug-in de comércio eletrônico que estende a

Configurando a Plataforma de Publicação Ghost Professional no OpenBSD 6

Configurando a Plataforma de Publicação Ghost Professional no OpenBSD 6

O Ghost é o maior e mais recente iniciante a rivalizar com o WordPress. O desenvolvimento de temas é rápido e fácil de aprender, porque os desenvolvedores do Ghost decidiram usar os dois

Como instalar o MODX Revolution em um FreeBSD 11 FAMP VPS

Como instalar o MODX Revolution em um FreeBSD 11 FAMP VPS

Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável e de código aberto, escrito em PHP. É eu

Como implantar o Ghost v0.11 LTS no Ubuntu 16.04

Como implantar o Ghost v0.11 LTS no Ubuntu 16.04

Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde a sua 201

Como instalar o MODX Revolution em um VPS Debian 9 LAMP

Como instalar o MODX Revolution em um VPS Debian 9 LAMP

Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto

Como instalar o MODX Revolution em um Ubuntu 16.04 LAMP VPS

Como instalar o MODX Revolution em um Ubuntu 16.04 LAMP VPS

Usando um sistema diferente? O MODX Revolution é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido, flexível, escalável, gratuito e de código aberto

Como implantar o Ghost v0.11 LTS no Fedora 25

Como implantar o Ghost v0.11 LTS no Fedora 25

Usando um sistema diferente? O Ghost é uma plataforma de blog de código aberto que vem ganhando popularidade entre desenvolvedores e usuários comuns desde a sua 201

Instalando o Fork CMS no Ubuntu 16.04 LTS

Instalando o Fork CMS no Ubuntu 16.04 LTS

Usando um sistema diferente? Fork é um CMS de código aberto escrito em PHP. O código fonte do Forks está hospedado no GitHub. Este guia mostra como instalar o Fork CM

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.