Strapi te da varias opções de deployment para o seu projeto ou aplicação. Strapi pode ser implantado em hospedagem tradicionais de servidores ou serviços como o Heroku, AWS, Azure entre outros. As documentações a seguir abordam como desenvolver em local com o Strapi e deploy Strapi com varias opções de hospedagem.
DICA:
O Deploying databases junto com o Strapi é abordado no Databases Guide.
Configuração
1. configure
Atualize as configurações de produção com o IP e o nome do domínio em que o projeto estará em execução.
Atalho- ./config/environments/production/server.json.\
2.Lance o servidor
Antes de executar seu servidor em produção, você precisa criar seu painel de administração para produção
Se você precisar de um arquivo server.js para poder executar node server.js em vez do npm run start, crie um arquivo ./server.js da seguinte maneira:
Configurações avançadas
Se você deseja hospedar a administração em outro servidor que não a API, consulte esta seção dedicada.
Docker
nesta sessão, você não ira achar um guia especifico para implantar seu aplicativo com o Docker
Nós recentemente atualizamos o strapi/strapi-docker GitHub repository que contem todas as informações necessárias para usar o Strapi com o Docker Amazon AWS
esse guia passo a passo para implantação do projeto do Strapi para Amazon AWS EC2. Esse guia vai conectar a um Amazon AWS RDS para gerenciar e hospedar o database. Opcionalmente, esse guia ira te mostrar como conectar, hospedar e servir imagens no Amazon AWS S3. Antes de iniciar este guia, você deve ter criado um Strapi project, para usar na implantação no AWS
Requisito de instalação do Amazon AWS e criação de um não Root User do IAM
Você deve ter um Amazon AWS gratuito antes de executar essas etapas.
As práticas recomendadas para o uso dos serviços da AWS Amazon afirmam não usar Root account e usar o serviço IAM (AWS Identity and Access Management) service . Seu usuário root é, portanto, usado apenas para poucas tarefas selecionadas. Por exemplo, para cobrança, você cria um usuário Administrador e um Grupo para essas coisas. E outras tarefas mais rotineiras são realizadas com um Usuário IAM comum.
1. siga as instruções para criar seu Usuário e Grupo de Administrador IAM Admin
entre como Root
crie uma função de administrador (Administrador role)
2. Em seguida, crie um usuário regular para a criação e gerenciamento do seu projeto Strapi
Copie o link de entrada de Usuários do IAM encontrado aqui:IAM Console e, em seguida, efetue logout do usuário root e entre no usuário administrador que você acabou de criar.
Volte ao console do IAM pesquisando o IAM e clicando ou acessando aqui: IAM Console
Clique em Usuários, no menu à esquerda, e clique em Adicionar Usuário:
1. Na tela Set user details:
Forneça um nome de usuário.
Tipo de acesso: verifique ambos Programmatic access e AWS Management Console access
Gere automaticamente uma senha ou clique em Senha Personalizada e forneça uma.
OPCIONAL: Para simplificar, desmarque a opção Require password reset.
Clique em Next: Permissions
2. Na tela Set Permissions, faça o seguinte:
Clique em Create group, nomeie-o, por exemplo Desenvolvedores e escolha as políticas apropriadas em Npolicy Name:
procure ec2 e verifique AmazonEC2FullAccess
procure RDS e verifique AmazonRDSFullAccess
pesquise s3 e verifique AmazonS3FullAccess
Clique em Create group
Clique para Add user to group e verifique o grupo de desenvolvedores para adicionar o novo usuário.
Clique em Next: Tags.
3. Adicionar tags (opcional)
Esta etapa é opcional e baseada no seu fluxo de trabalho e escopo do projeto.
Clique em Next: Review
4. Review
Revise as informações e verifique se estão corretas. Use Anterior para corrigir qualquer coisa.
Clique em Create user
5. Sucesso
Essas são credenciais muito importantes. Se você não executar essas etapas, precisará redefinir sua ID da chave de acesso e a chave de acesso secreta posteriormente.
Baixe o arquivo .csv e armazene-o em um local seguro. Contém o nome do usuário, o link de login, o ID da chave de acesso e a chave de acesso secreta.
OPCIONAL: adicione essas credenciais ao seu * Password Manager **.
Clique no link de acesso do AWS Management Console Access sign-in. Isso fará com que você saia do Administrador.
3. Faça login no seu AWS Management Console como seu usuário comum
Agora você pode prosseguir para as próximas etapas.
Recursos adicionais do usuário do IAM
IAM Best Practices
Instructions to reset Access key ID and Secret access key
Execute uma maquina virtual do EC2
A Amazon chama um servidor privado virtual, um virtual server ou uma Amazon EC2 instance. Para usar este serviço, você iniciará a Instância (Instance). Nesta seção, você estabelecerá credenciais do IAM, lançará uma nova instância e configurará regras de segurança primária.
1. No AWS Management Console e como o seu usuário comum
Encontre Services, pesquise ec2 e clique em EC2, Virtual Servers no Cloud
2. Selecione a região apropriada
No menu superior, perto do seu nome de usuário da conta IAM, selecione, pelo dropdown, O region mais apropriado para hospedar seu projeto Strapi. Por exemplo, Leste dos EUA (N.Virginia) ou Ásia-Pacífico (Hong Kong). Você deve se lembrar dessa region para configurar outros serviços na AWS e servir esses serviços da mesma region.
3. Clique no botão azul Instância de inicialização
Selecione Ubuntu Server 18.04 LTS (HVM), SSD volume type
Verifique se General purpose + t2.small está marcado.
DICA
t2.small é o menor tipo de instância em que o Strapi é executado. t2.nano e t2.micro NÃO funcionam. No momento, a implantação da interface de administração do Strapi requer mais de 1g de RAM. Portanto, é necessária uma instância t2.small ou maior.
Clique no botão cinza Next: Configure Instance Details e Next: Add Storage
Na Etapa 4: adicionar armazenamento, verifique o GenSSD (gb2) e clique em Next: Add tags.
Na Etapa 5: adicionar tags, adicione tags para se adequar ao seu projeto ou deixe em branco e clique em Next: Configure Security Group
Na Etapa 6: Configurar grupo de segurança, defina as configurações de segurança da seguinte maneira:
Atribuir um grupo de segurança: Marque como Create a new security group
Nome do grupo de segurança: nomeie-o, Ex: strapi
Descrição: escreva uma descrição curta, Ex: configurações de segurança da instância strapi
Você deve ter uma regra: Type: SSH, Protocol: TCP, Poert Range 22, Source: 0.0.0.0/0 (todos os endereços IP). Caso contrário, adicione-o.
Clique no botão cinza “Add rule” para adicionar cada uma dessas regras:
Type: SSH, Protocol: TCP, Port Range 22, Source: ::/0
Type: HTTP, Protocol: TCP, Port Range 80, Source: 0.0.0.0/0, ::/0
Type: HTTPS, Protocol: TCP, Port Range 443, Source:0.0.0.0/0, ::/0
Type: Custom TCP Rule, Protocol: TCP, Port Range 1337, Source: 0.0.0.0/0 Description: Strapi for Testing Port Ess0,as regras são regras básicas de configuração e segurança. Convém restringir e limitar essas regras com base em seu próprio projeto e políticas organizacionais.
DICA
Depois de configurar as regras e o nome de domínio do Nginx com os aliases adequados, você precisará excluir a regra referente à porta 1337, pois é para testar e configurar o projeto - não para produção.
Clique no botão azul Review and Launch
Revise os detalhes, na Etapa 7: Revisar o Início da Instância e clique no botão azul Launch. Agora, você precisa selecionar um par de chaves existente ou criar um novo par de chaves. Para criar um novo par de chaves, faça o seguinte:
Selecione a opção dropdown Create a new key pair
Nomeie o nome do par de chaves, por exemplo ec2-strapi-key-pair
ATENÇÃO
Baixe o arquivo de chave privada (arquivo .pem). Este arquivo é necessário, portanto, observe onde foi baixado.
Depois de baixar o arquivo, clique no botão azul Launch Instances.
Sua instância está em execução agora. Continue com os próximos passos.
Instale um banco de dados PostgreSQL no AWS RDS
A Amazon chama seus serviços de hospedagem de database de RDS. Existem várias opções de database e estão disponíveis. Neste guia, o PostgreSQL é usado como exemplo, e as etapas são semelhantes para cada um dos outros database suportados pelo Strapi. (MySQL, MondoDB, PostgreSQL, MariaDB, SQLite). Você configurará uma RDS instance para hospedar seu postgresql database.
DICA
O Amazon RDS NÃO possui uma camada de avaliação totalmente gratuita. Depois de concluir este guia, se você estiver apenas testando, lembre-se de excluir o database. Caso contrário, você será cobrado.
1. Navegue até o serviço AWS RDS
No menu superior, clique em Services e faça uma pesquisa por rds, clique em RDS, Managed Relational Database Service
2. Selecione sua region
Na barra de menus superior, selecione a region igual à instância do EC2, por exemplo, UE (Paris) ou Leste dos EUA (N. Virgina).
3. Crie o database
Clique no botão laranja Create database. Siga estas etapas para concluir a instalação do database PostgreSQL:
Opções de mecanismo: Clique no PostgreSQL, versão PostgreSQL 10.x-R1
Modelos: clique em Free Tier.
Configurações
Identificador da instância do database Dê um nome ao seu database, por exemplo strapi-database
Configurações de credenciais: este é seu nome de usuário e senha do database psql.
Nome de usuário principal: mantenha como postgres ou altere (opcional)
Desmarque a opção Auto generate a password e digite uma nova senha secreta.
Conectividade e Configuração de conectividade adicional: defina Publicly accessible como Yes.
OPCIONAL: revise outras opções (tamanho da instância do database, armazenamento, conectividade) e modifique de acordo com as necessidades do seu projeto.
Você precisa dar um nome ao database. Em Additional configuration:
Configuração adicional e, em seguida, Initial database name: dê um nome ao seu banco de dados, por exemplo strapi.
Revise o restante das opções e clique no botão laranja Create database.
Após alguns minutos, você pode atualizar sua página e verificar se seu banco de dados foi criado com sucesso.
Configurar o S3 para hospedagem de imagens
A Amazon chama os serviços de armazenamento no Cloud S3. Você cria um bucket, que contém os arquivos, imagens, pastas, etc ... que podem ser acessados e veiculados pelo seu aplicativo. Este guia mostra que você precisa usar o Amazon S3 para hospedar as imagens do seu projeto.
1. Navegue para o Amazon S3
No menu superior, clique em Services e faça uma pesquisa por s3, clique em Scalable storage in the cloud.
2. Crie o bucket
Clique no botão azul Create bucket:
Atribua um nome exclusivo ao seu bucket, em Bucket name, por exemplo meu-projeto-nome-imagens.
Selecione a region mais apropriada, em Region, ex. UE (Paris) ou Leste dos EUA (N. Virgina).
Clique em Next.
Configure as opções apropriadas para o seu projeto na página Configure Options e clique em next.
Em Block public access:
Desmarque a opção Block all public access e defina as permissões da seguinte maneira:
Desmarque a opção Block new public ACLs and uploading public objects (recomendado)
Desmarque a opção Bloquear acesso público a buckets e objetos concedidos por qualquer ACL (lista de controle de acesso)
Marque Block public access to buckets and objects granted through new public bucket policies
Marque Block public and cross-account access to buckets and objects through any public bucket policies
Selecione Do not grant Amazon S3 Log Delivery group write access to this bucket
Clique em Next.
Revise e clique em Create bucket.
Configurar o EC2 como um servidor Node.js.
Você configurará seu servidor EC2 como um servidor Node.js. Incluindo configuração básica e Git.
Você precisará do seu endereço IP EC2:
No console da AWS, navegue até o AWS EC2. No menu superior, clique em Serviços e faça uma pesquisa por ec2, clique em Virtual Servers in the cloud.
Clique em 1 Running Instance e observe o endereço IPv4 OP público. Por exemplo. 34.182.83.134.
1. Configure o arquivo .pem
Você baixou, em uma etapa anterior, o arquivo .pem do usuário. por exemplo. ec2-strapi-key-pair.pem. Isso precisa ser incluído em cada tentativa de SSH no servidor EC2. Mova seu arquivo .pem para ~ / .ssh /, siga estas etapas:
Na sua máquina local, navegue até a pasta que contém o arquivo .pem. por exemplo. Downloads
Mova o arquivo .pem para ~ / .ssh / e defina as permissões de arquivo: atalho: ./path-to/.pem-file/
2. Faça login no seu servidor como o usuário padrão do ubuntu:
DICA
No futuro, sempre que você fizer login no servidor EC2, será necessário adicionar o caminho ao arquivo .pem, por exemplo ssh -i ~ / .ssh / ec2-strapi-key-pair.pem ubuntu@12.123.123.11.
3. Instale o Node.js com o npm:
Atualmente, o Strapi suporta o Node.js v10.x.x. As etapas a seguir instalarão o Node.js no servidor EC2.
O último comando node -v && npm -v deve gerar dois números de versão, por exemplo. v10.x.x, 6.x.x.
4. Crie e altere o diretório padrão do npm.
As etapas a seguir são baseadas em como resolver permissões de acesso no npmjs.com:
Crie um diretório .npm-global e configure o caminho para este diretório para node_modules
Instale e configure a versão do Git no seu servidor
Uma maneira conveniente de manter seu aplicativo Strapi e atualizá-lo durante e após o desenvolvimento inicial é usar o Git. Para usar o Git, você precisará instalá-lo na sua instância do EC2. As instâncias do EC2 devem ter o Git instalado por padrão, para que você verifique primeiro se ele está instalado e se não estiver instalado, será necessário instalá-lo.
O próximo passo é configurar o Git no seu servidor.
1. Verifique se o Git está instalado
Se você vir uma versão 2.x.x do git, o Git estará instalado. Verifique com o seguinte comando:
2. OPCIONAL: Instale o Git.
DICA
Faça apenas se não estiver instalado, como acima. Por favor, siga estas instruções sobre como instalar o Git no Ubuntu 18.04
3. Defina as configurações globais de nome de usuário e email: Setting up Git - Your Identity
Após instalar e configurar o Git na sua instância do EC2. Continue para o próximo passo.
Preparar e clonar o projeto Strapi no servidor
Essas instruções assumem que você já criou um projeto Strapi e o possui em um repositório GitHub.
Você precisará atualizar o arquivo database.json para configurar o Strapi para conectar-se ao database do RDS. E você precisará instalar um pacote npm chamado pg no local no seu servidor de desenvolvimento.
DICA
A instalação do pacote pg é necessária apenas se você estiver usando o PostgresSQL como seu database.
1. Instale pg no seu projeto Strapi.
Na sua máquina de desenvolvimento, navegue até o diretório Strapi project root: Atalho: ./my-project/
2. Edite o arquivo database.json.
Copie / cole o seguinte:
atalho: ./my-project/config/environments/production/database.json
3. Instale o plug-in AWS S3 do provedor Strapi:
Atalho: ./my-project/ .
Este plugin permitirá configurações para cada ambiente ativo.
4. Envie suas alterações locais para o repositório GitHub do seu projeto.
5. Implante no GitHub
Em seguida, você implementará seu projeto Strapi na instância do EC2, clonando-o no GitHub no seu terminal e conectado à sua instância do EC2 como usuário do ubuntu:
Em seguida, navegue até a pasta my-project, o root do Strapi. Você precisará executar o npm install para instalar os pacotes para o seu projeto.
atalho: ./my-project/
Em seguida, você precisa instalar o PM2 Runtime e configurar o arquivo ecosystem.config.js
6. Instale o PM2 Runtime
O PM2 Runtime permite manter seu projeto Strapi ativo e recarregá-lo sem tempo de inatividade.
Verifique se você está conectado como um usuário não root. Você instalará o PM2 globalmente:
Agora, você precisará configurar um arquivo ecosystem.config.js. Este arquivo irá definir variáveis env que conectam o Strapi ao seu database. Também será usado para reiniciar o seu projeto sempre que forem feitas alterações nos arquivos do próprio sistema de arquivos Strapi (como quando uma atualização chegou do Github). Você pode ler mais sobre este arquivo aqui.
Você precisará abrir o seu editor nano e copiar / colar o seguinte:
Em seguida, substitua o conteúdo do padrão no arquivo, pelo seguinte:
Seu projeto Strapi agora deve estar disponível em http://your-ip-address:1337/ .
DICA
Antes, a port 1337 tinha acesso permitido para fins de teste e configuração. Após configurar o NGINX, a port 1337 precisa ter acesso negado.
7. Configure o PM2 Runtime para iniciar o projeto na inicialização do sistema.
Siga as etapas abaixo para iniciar o aplicativo na inicialização do sistema.
DICA
Essas etapas são baseadas no PM2 Runtime Startup Hook Guide
Gere e configure um script de inicialização para iniciar o PM2, ele irá gerar um Script de Inicialização para copiar / colar, faça o seguinte:
OPCIONAL: você pode testar se o script acima funciona sempre que o sistema é reiniciado com o comando sudo reboot. Você precisará fazer login novamente com seu usuário não root e, em seguida, executar a lista pm2 e o status systemctl pm2-ubuntu para verificar se tudo está funcionando.
Configurar o plug-in Strapi Provider AWS S3
As próximas etapas envolvem a configuração do Strapi para conectar-se ao bucket do AWS S3.
1. Localize o seu IP público IPv4:
Faça login como usuário comum no seu painel EC2
Clique em 1 Instâncias em execução.
Abaixo, na guia Descrição, localize seu IP público IPv4
2. Em seguida, crie seu usuário administrador e faça login no Strapi:
Vá para http: // seu endereço IP: 1337 /
Preencha o formulário de inscrição.
Clique em Pronto para iniciar
3. Configure o plug-in com suas credenciais de bucket:
No menu à esquerda, clique em Plug-ins e, em seguida, na cog wheel localizada à direita de Files Upload
Pelo Dropdown, em Providers, selecione Amazon Web Service S3 e insira os detalhes da configuração: Você pode encontrar o Access API Token, e o secret access Token no arquivo configuration.csv que você baixou anteriormente ou se os salvou no seu gerenciador de senhas.
Access API Token: esse é seu ID da chave de acesso
Secret Access Token: esta é a sua chave de acesso secreto. Navegue de volta para o seu painel Amazon S3:
Region: é a sua região selecionada, por exemplo. UE (Paris)
Bucket: é o nome do seu bucket, por exemplo. my-project-name-images
Defina o tamanho máximo permitido (em MB) para um valor: por exemplo. 10mb
Selecione LIGADO para ativar o upload de arquivo
Clique no botão Salvar.
Agora você pode testar o upload da imagem e encontrará suas imagens sendo carregadas no Amazon AWS S3
Configurar um webhook
Desde que seu projeto seja configurado no GitHub, você precisará configurar seu Strapi Project Repository com um webhook. O artigo a seguir fornece informações adicionais para as etapas abaixo: Guia de Criação de Webhooks do GitHub.
Você precisará acessar a guia Configurações do seu Strapi Project Repository:
1.Navegue e clique em Settings do seu repositório.
2.Clique em Webhooks e clique em Add Webhooks.
3.Os campos são preenchidos assim:
URL da carga útil: digite http://your-ip-address:8080
Tipo de conteúdo: selecione application/json
Quais eventos você gostaria de acionar este webhook: Selecione Just the push event
Segredo: digite YourSecret
Ativo: marque a caixa de seleção
4.Revise os campos e clique em Add Webhook.
Em seguida, você precisa criar um script Webhook no seu servidor. Esses comandos criam um novo arquivo chamado webhook.js, que contém duas variáveis:
No editor nano, copie / cole o script a seguir, mas substitua your_secret_key e repo com os valores que correspondem ao seu projeto, depois salve e saia.
(Esse script cria uma variável chamada PM2_CMD que é usada depois de extrair do GitHub para atualizar seu projeto. O script primeiro muda para o diretório inicial e, em seguida, executa a variável PM2_CMD como pm2 restart strapi. O projeto usa o ecosystem.config.js como ponto de iniciar seu aplicativo.)
Permita que a port se comunique com outside web traffic para a port 8080:
No seu painel do AWS EC2:
No menu à esquerda, clique em Security Groups
Marque com a caixa de seleção o nome do grupo correto, por exemplo strapi,
Na parte inferior da tela, na guia Entrada, clique em Edit e, em seguida, em Add regra:
Tipo: TCP personalizado
Protocolo: TCP
Port Range: 8080
Origem: Custom 0.0.0.0/0, :: / 0
Em seguida, salve
Antes, você configure o pm2 para iniciar os serviços (seu projeto Strapi) sempre que a instância do EC2 for reiniciada ou iniciada. Agora você fará o mesmo para o script webhook.
Instale o webhook como um serviço Systemd
Execute echo $PATH e copie a saída para uso na próxima etapa.
Crie um arquivo webhook.service:
No editor nano, copie / cole o script a seguir, mas certifique-se de substituir o ubuntu em dois lugares se você alterou o usuário padrão do ubuntu e cole o $PATH de cima.
ATENÇÃO
APAGUE OS #COMMENTS ANTES DE SALVAR e salve e saia.
Ative e inicie o novo serviço para que ele inicie quando o sistema inicializar:
Verifique o status do webhook:
Você pode testar seu webhook seguindo as instruções aqui.
Passos adicionais a serem seguidos
Você pode adicionar um nome de domínio ou usar um nome de subdomínio para o seu projeto Strapi. Você precisará instalar o NGINX e configurá-lo.
DICA
Após a configuração do NGINX, por questões de segurança, é necessário desativar o acesso à port na Port 1337. Você pode fazer isso facilmente no Painel do EC2. Em Security Groups (menu à esquerda), clique na caixa de seleção do grupo, por exemplo. strapi e, abaixo, na inbound tab, clique em Edit e exclua a regra para Port Range: 1337 clicando no x.
Para instalar o SSL, você precisará instalar e executar o Certbot por Let's Encrypt.
Configure o Nginx com suporte a HTTP / 2 para o Ubuntu 18.04.
Seu projeto Strapi foi instalado em uma instância do AWS EC2 usando o Ubuntu 18.04.
Digital Ocean
Este é um guia passo a passo para implantar um projeto Strapi no Digital Ocean. Os bancos de dados podem estar em um Digital Ocean Droplet ou hospedados externamente como um serviço. Antes de iniciar este guia, você deveria ter criado um projeto Strapi.
Requisitos de instalação do Digital Ocean
Você deve ter uma conta Digital Ocean antes de executar estas etapas.
Crie uma "Droplet"
A Digital Ocean chama um servidor privado virtual, um Droplet. Você precisa criar um novo Droplet para hospedar seu projeto Strapi.
1. Faça login na sua conta Digital Ocean.
2. Crie uma Droplet clicando em New Droplet.
Escolha estas opções:
Ubuntu 18.04 x64
Padrão STARTER
Escolha um plano de preços apropriado. Por exemplo, preços: US $ 10 / mês (role para a esquerda)
DICA
Atualmente, o plano de US $ 5 / mês não é suportado, pois o Strapi não será construído com 1G de RAM. No momento, a implantação da interface de administração do Strapi requer mais de 1g de RAM. Portanto, é necessário um Droplet padrão mínimo de $ 10 / mês ou instância maior.
Escolha uma region do datacenter mais próxima do seu público, por exemplo, Nova York.
OPCIONAL: selecione opções adicionais, por exemplo, [x] IPv6.
Adicione sua chave SSH
DICA
Recomendamos que você adicione sua chave SSH para melhorar a segurança.
No seu terminal, use pbcopy <~ / .ssh / id_rsa.pub para copiar sua chave pública SSH existente, no computador de desenvolvimento, para a área de transferência.
Clique em Nova chave SSH e cole na sua chave SSH. Nomeie essa chave SSH e clique em Salvar. (Instruções adicionais sobre a criação e o uso de chaves SSH podem ser encontradas aqui.)
OPCIONAL: Escolha um nome de host ou deixe como está.
Clique no botão verde Create.
O Digital Ocean criará seu Droplet e indicará o progresso com uma barra de porcentagem. Quando isso estiver concluído, você poderá continuar com as próximas etapas.
Configure o servidor de produção e instale o Node.js
Essas próximas etapas ajudarão você a configurar um servidor de produção e configurar um usuário não root para gerenciar seu servidor.
Siga os documentos oficiais do Digital Ocean para a configuração inicial do servidor usando o Ubuntu 18.04. Esses documentos farão com que você conclua as seguintes ações:
1. Registrando e configurando o acesso do usuário root ao seu servidor com SSH
3. Concedendo privilégios administrativos ao novo usuário
4. Configurando um firewall básico.
5. Conceder acesso regular ao usuário ao servidor com autenticação de chave SSH.
Em seguida, instale o Node.js:
6. Você instalará o Node.js.
Use as instruções na seção Instalar nó usando um PPA dos documentos oficiais da Digital Ocean para instalar um servidor Node.js. pronto para produção.
Após concluir as etapas para instalar o Node.js, o NPM e o "pacote essencial de construção", você alterará manualmente o diretório padrão do npm. As etapas a seguir são baseadas em como resolver permissões de acesso no npmjs.com:
Crie um diretório .npm-global e configure o caminho para este diretório para node_modules
Agora você está pronto para continuar na próxima seção.
Instale e configure a versão do Git no seu servidor
Uma maneira conveniente de manter seu aplicativo Strapi e atualizá-lo durante e após o desenvolvimento inicial é usar o Git. Para usar o Git, você precisará instalá-lo no seu Droplet. As Droplets devem ter o Git instalado por padrão, para que você verifique primeiro se ele está instalado e se não estiver instalado, será necessário instalá-lo.
O próximo passo é configurar o Git no seu servidor.
1. Verifique se o Git está instalado
Se você vir uma versão 2.x.x do git, o Git estará instalado. Verifique com o seguinte comando:
2. OPCIONAL: Instale o Git.
::: nota Execute esta etapa apenas se não estiver instalado, como acima. Por favor, siga estas instruções sobre como instalar o Git no Ubuntu 18.04. :::
3. Complete as configurações globais de nome de usuário e email: Configurando o Git
Depois de instalar e configurar o Git no seu Droplet. Continue na próxima etapa, instalando um database.
Instale o database para seu projeto
O Digital Ocean possui uma excelente documentação referente à instalação e uso dos principais database que funcionam com o Strapi. As etapas anteriores acima devem ser concluídas antes de continuar. Você pode encontrar links e outras instruções abaixo:
PostgreSQL
1.Instale o PostgresSQL no Ubuntu 18.04 (até a Etapa 4 - Criando um novo banco de dados).
Conclua as etapas para instalar o PostgreSQL, adicione um usuário e crie um database.
2.Para se conectar a um database PostgreSQL com o Strapi, ele precisa ter uma senha ou, especificamente, declarar que não há senha, observando uma string vazia. Siga estes comandos do seu terminal para alterar o usuário que você criou e adicione uma senha:
OPCIONAL: Se em desenvolvimento, seu projeto Strapi usa SQLite, você precisará instalar um pacote de dependência chamado pg:
No seu computador de desenvolvimento:
Atalho: ./my-project/
O pacote pg é instalado automaticamente no local se você escolher o PostgreSQL como a opção inicial do database quando configurar o Strapi pela primeira vez.
Você precisará do nome do database, nome de usuário e senha para uso posterior, observe-os.
Configuração de Desenvolvimento Local
Você deve ter o Git instalado e configurado no local.
Você deve ter criado um repositório para o seu projeto Strapi e ter seu projeto de desenvolvimento inicializado para este repositório.
No seu editor de código, você precisará editar um arquivo chamado database.json. Substitua o conteúdo do arquivo pelo seguinte.
Atalho: ./config/environments/production
Continue na próxima seção, Implantar no GitHub.
Implantar no Github
Em seguida, você implantará seu projeto Strapi no seu Droplet, clonando-o no GitHub.
No seu terminal, efetue login como seu usuário não root no Droplet:
Em seguida, navegue até a pasta my-project, o Root do Strapi. Agora você precisará executar o npm install para instalar os pacotes para o seu projeto.
Atalho: ./my-project/
Strapi usa a port: 1337 por padrão. Você precisará configurar seu firewall ufw para permitir o acesso a essa port, para fins de teste e instalação. Depois de instalar e configurar o NGINX, é necessário sudo ufw deny 1337 para fechar a port ao traffic externo.
Seu projeto Strapi agora está instalado no seu Droplet. Você tem mais algumas etapas antes de poder acessar o Strapi e criar seu primeiro usuário.
Em seguida, você precisará instalar e configurar o PM2 Runtime.
Instalar e configurar o PM2 Runtime
O PM2 Runtime permite manter seu projeto Strapi ativo e recarregá-lo sem tempo de inatividade.
Verifique se você está conectado como um usuário não root. Você instalará o PM2 global:
O arquivo ecosystem.config.js
Você precisará configurar um arquivo ecosystem.config.js. Este arquivo gerenciará as variáveis de conexão do database que o Strapi precisa para se conectar ao seu database. O ecosystem.config.js também será usado pelo pm2 para reiniciar seu projeto sempre que forem feitas alterações nos arquivos no próprio sistema de arquivos Strapi (como quando uma atualização chegar do GitHub). Você pode ler mais sobre este arquivo aqui.
Você precisará abrir o seu editor nano e copiar / colar o seguinte:
Em seguida, substitua o conteúdo do boilerplate no arquivo, pelo seguinte:
O pm2 agora está configurado para usar um ecosystem.config.js para gerenciar a reinicialização do aplicativo após alterações. Esta é uma prática recomendada.
OPCIONAL: você pode ver seu projeto e configurar seu primeiro usuário administrador, criando um usuário administrador.
DICA
Antes, a port 1337 tinha acesso permitido para fins de teste e configuração. Após configurar o NGINX, a port 1337 precisa ter acesso negado.
Siga as etapas abaixo para iniciar o aplicativo na inicialização do sistema.
DICA
Essas etapas são modificadas na documentação do Digital Ocean para configurar o PM2.
Gere e configure um script de inicialização para iniciar o PM2, ele irá gerar um Script de Inicialização para copiar / colar, faça o seguinte:
Copie / cole o comando gerado:
Em seguida, salve a nova lista de processos e ambiente do PM2. Em seguida, inicie o serviço com systemctl:
OPCIONAL: você pode testar se o script acima funciona sempre que o sistema é reiniciado com o comando sudo reboot. Você precisará fazer login novamente com seu usuário não root e, em seguida, executar a lista pm2 e o status systemctl pm2-your-name para verificar se tudo está funcionando.
Continue abaixo para configurar o webhook.
Configurar um webhook no Digital Ocean / GitHub
Desde que seu projeto seja configurado no GitHub, você precisará configurar seu Repositório de Projetos Strapi com um webhook. Os artigos a seguir fornecem informações adicionais para as etapas abaixo: Guia de Criação de Webhooks do GitHub e Guia Digital Ocean para WebHooks do GitHub.
Você precisará acessar a guia Configurações do seu Repositório de Projetos Strapi:
1.Navegue e clique em Settings do seu repositório.
2.Clique em Webhooks e clique em Add Webhook.
3.Os campos são preenchidos assim:
Payload URL: digite http://your-ip-address:8080
Tipo de conteúdo: selecione application/json
Quais eventos você gostaria de acionar este webhook: Just the push event
Segredo: digite YourSecret
Ativo: marque a caixa de seleção
Revise os campos e clique em Add Webhook.
Em seguida, você precisa criar um script Webhook no seu servidor. Esses comandos criam um novo arquivo chamado webhook.js, que contém duas variáveis:
No editor nano, copie / cole o script a seguir, mas substitua your_secret_key e repo com os valores que correspondem ao seu projeto, depois salve e saia.
Esse script cria uma variável chamada PM2_CMD que é usada depois de extrair do GitHub para atualizar seu projeto. O script primeiro muda para o diretório inicial e depois executa a variável PM2_CMD como pm2 restart strapi.
Permita que a port se comunique com o outside web traffic para a port 8080:
Antes, você configurava o pm2 para iniciar os serviços (seu projeto Strapi) sempre que o Droplet é reiniciado ou iniciado. Agora você fará o mesmo para o script webhook.
Instale o webhook como um serviço Systemd
Execute echo $ PATH e copie a saída para uso na próxima etapa.
Crie um arquivo webhook.service:
No editor nano, copie / cole o script a seguir, mas certifique-se de substituir seu nome em dois lugares pelo seu nome de usuário. Anteriormente, você executou echo $ PATH, copie isso para a variável Environment=PATH= e salve e saia:
Ative e inicie o novo serviço para que ele inicie quando o sistema inicializar:
Verifique o status do webhook:
Você pode testar seu webhook seguindo as instruções aqui.
Mais etapas a serem seguidas
Você pode adicionar um nome de domínio ou usar um nome de subdomínio para o seu projeto Strapi. Você precisará instalar o NGINX e configurá-lo.
Negar traffic para a port 1337. Você configurou um proxy usando o Nginx, agora precisa bloquear o acesso executando o seguinte comando:
Para instalar o SSL, você precisará instalar e executar o Certbot por Let's Encrypt.
Configure o Nginx com suporte a HTTP / 2 para o Ubuntu 18.04.
Seu projeto Strapi foi instalado em um Digital Ocean Droplet usando o Ubuntu 18.04.
Heroku
Este é um guia passo a passo para implantar um projeto Strapi no Heroku. Os bancos de dados que funcionam bem com o Strapi e o Heroku são fornecidas instruções sobre como começar.
Requisitos de instalação do Heroku
Você deve ter o Git instalado e configurado no local.
Você deve ter uma conta gratuita Heroku antes de executar estas etapas.
Se você já possui a Heroku CLI instalada localmente no seu computador. Vá para Login no Heroku.
1. Instalação da CLI Heroku
Faça o download e instale a CLI Heroku para o seu sistema operacional:
Mac OS
Também disponível via Homebrew:
Ubuntu
Execute o seguinte no seu terminal:
Windows
Faça o download do instalador apropriado para sua instalação do Windows:
2. Faça o login no Heroku a partir da sua CLI
Em seguida, você precisa fazer login no Heroku a partir do seu computador.
Siga as instruções e retorne à sua linha de comando.
3. Crie um novo projeto (ou use um existente)
Crie um novo projeto Strapi (se você deseja implantar um projeto existente, vá para a etapa 4).
NOTA
Se você planeja usar o MongoDB com seu projeto, consulte a seção criar um projeto Strapi com MongoDB da documentação e, em seguida, vá para a etapa 4
atalho: ./
Use fios para instalar o projeto Strapi (recomendado). Instale o fio com esses documentos.
Use npm / npx para instalar o projeto Strapi.
DICA
Quando você usa --quickstart para criar um projeto Strapi no local, é usado um database SQLite que não é compatível com o Heroku. Portanto, outra opção de database deve ser escolhida.
4. Atualize .gitignore
Adicione a seguinte linha no final de .gitignore:
Atalho: ./my-project/.gitignore
Mesmo que seja geralmente recomendado a versão deste arquivo, ele pode criar problemas no Heroku.
5. Inicie um repositório Git e comprometa seu projeto
Inicie o repositório Git e comprometa seu projeto.
atalho: ./my-project/
6. Crie um projeto Heroku
Crie um novo projeto Heroku.
atalho: ./my-project/
Você pode usar o heroku create custom-project-name, para que o Heroku crie um URL de nome do projeto personalizado.heroku.com. Caso contrário, o Heroku irá gerar automaticamente um nome de projeto aleatório (e URL) para você.
NOTA
Se você já possui um aplicativo de projeto Heroku. Você usaria a seguinte etapa para inicializar sua pasta de projeto local:
atalho: ./my-project/
Seu ambiente de desenvolvimento local agora está instalado e configurado para funcionar com o Heroku. Você tem um novo projeto Strapi e um novo aplicativo Heroku pronto para ser configurado para trabalhar com um banco de dados e entre si.
7. Configuração do banco de dados Heroku
Abaixo, você encontrará opções de banco de dados ao trabalhar com o Heroku. Escolha o banco de dados correto (por exemplo, PostgreSQL, MongoDB etc.) e siga essas instruções.
PostgreSQL
Heroku Postgres
Siga estas etapas para implantar seu aplicativo Strapi no Heroku usando o PostgreSQL:
1. Instale o complemento Heroku Postgres para usar o Postgres.
Para tornar as coisas ainda mais fáceis, o Heroku fornece um poderoso sistema de complementos. Nesta seção, você usará o complemento Heroku Postgres, que fornece um plano "Hobby Dev" gratuito. Se você planeja implantar seu aplicativo em produção, é altamente recomendável mudar para um plano pago.
atalho: ./my-project/
2. Recupere credenciais do database
O complemento expõe automaticamente as credenciais do database em uma única variável de ambiente acessível pelo seu aplicativo. Para recuperá-lo, digite:
atalho: ./my-project/
Isso deve imprimir algo assim: DATABASE_URL: postgres: // ebitxebvixeeqd: dc59b16dedb3a1eef84d4999sb4baf@ec2-50-37-231-192.compute-2.amazonaws.com: 5432 / d516fp1u21ph7b.
(Este URL é lido da seguinte forma: * postgres: // USERNAME: PASSWORD @ HOST: PORT: DATABASE_NAME *)
3. Defina variáveis de ambiente
O Strapi espera uma variável para cada configuração de conexão com o banco de dados (host, nome de usuário etc.). Portanto, no URL acima, você deve definir várias variáveis de ambiente na configuração do Heroku:
Substitua esses valores acima pelos seus valores reais.
4. Atualize seu arquivo de configuração do database
Substitua o conteúdo de database.json pelo seguinte:
atalho: ./config/environments/production/database.json.
5. Instale o módulo do nó pg
A menos que você tenha instalado originalmente o Strapi com o PostgreSQL, é necessário instalar o módulo do pg node.
atalho: ./my-project/
MongoDB
MongoDB Atlas
(O uso do Strapi e do MongoDB requer diferentes configurações e etapas de configuração. Você não pode usar --quickstart para desenvolver um projeto do MongoDB Strapi.)
Siga estas etapas para implantar um aplicativo Strapi com MongoDB no Heroku.
Você deve ter concluído as etapas para usar o Strapi com o MongoDB Atlas - até 4. Recupere credenciais do banco de dados.
1. Defina variáveis de ambiente
Ao configurar o database do MongoDB Atlas, você anotou uma cadeia de conexão. Semelhante a isso:
mongodb://paulbocuse:<password>@strapidatabase-shard-00-00-fxxx6c.mongodb.net:27017,strapidatabase-shard-00-01-fxxxc.mongodb.net:27017,strapidatabase-shard-00-02-fxxxc.mongodb.net:27017/test?ssl=true&replicaSet=strapidatabase-shard-0&authSource=admin&retryWrites=true&w=majority
Portanto, no MongoDB Atlas, você deve definir duas variáveis de ambiente na configuração do Heroku (para DATABASE_URL e DATABASE_NAME). Defina as variáveis de ambiente usando os seguintes comandos:
heroku config:set DATABASE_URI="mongodb://paulbocuse:<password>@strapidatabase-shard-00-00-fxxx6c.mongodb.net:27017,strapidatabase-shard-00-01-fxxxc.mongodb.net:27017,strapidatabase-shard-00-02-fxxxc.mongodb.net:27017/test?ssl=true&replicaSet=strapidatabase-shard-0&authSource=admin&retryWrites=true&w=majority"
heroku config:set DATABASE_NAME="my-database-name"
Substitua os valores <password> e my-database-name pelos seus valores reais.
2. Atualize seu arquivo de configuração do banco de dados
Substitua o conteúdo de database.json pelo seguinte:
atalho: ./config/environments/production/database.json.
8. Confirme suas alterações
Atalho: ./my-project/
9.Implantar
Atalho: ./my-project/
A implantação pode levar alguns minutos. No final, os logs exibirão o URL do seu projeto (por exemplo, https://mighty-taiga-80884.herokuapp.com). Você também pode abrir seu projeto usando a linha de comando:
Atalho: ./my-project/
Se você vir a página de boas-vindas do Strapi, instalou, configurou e implantou corretamente seu projeto do Strapi no Heroku. Agora você precisará configurar seu usuário administrador, pois o banco de dados de produção é totalmente novo (e vazio).
Agora você pode continuar com o Tutorial - Criando um usuário administrador, se tiver alguma dúvida sobre como proceder.
ATENÇÃO
Por motivos de segurança, o plug-in Content Type Builder está desativado na produção. Para atualizar a estrutura do conteúdo, faça as alterações localmente e implante novamente.
Atualizações do projeto
Quando o Strapi é implantado no Heroku, o Heroku define a variável de ambiente como NODE_ENV=producion. No modo de produção, o Strapi desativa o construtor de tipo de conteúdo (por motivos de segurança). Além disso, se você quiser alterar o modo de produção padrão no Heroku, ele não funcionará, pois o sistema de arquivos é temporário. Strapi grava arquivos no servidor quando você atualiza os tipos de conteúdo e essas atualizações desaparecem quando o Heroku reinicia o servidor.
Portanto, modificações que exigem gravação na criação de modelo ou em outros arquivos json, por exemplo Para criar ou alterar tipos de conteúdo, é necessário fazer essas alterações no ambiente de desenvolvimento e depois enviar as alterações para o Heroku.
Ao continuar desenvolvendo seu aplicativo com o Strapi, convém usar o controle de versão ou continuar usando o Git push heroku master para confirmar e enviar alterações diretamente para o Heroku.
atalho: ./my-project/
Uploads de arquivos
Como nas atualizações do projeto no Heroku, o sistema de arquivos não suporta o upload local de arquivos, pois eles serão limpos quando o Heroku "alternar" o dinamômetro. Esse tipo de sistema de arquivos é chamado ephemeral, o que significa que o sistema de arquivos dura apenas até a reinicialização do dinamômetro (com o Heroku isso acontece sempre que você reimplementar ou durante a reinicialização regular, o que pode acontecer a cada poucas horas ou todos os dias).
Devido ao sistema de arquivos do Heroku, você precisará usar um provedor de upload como o AWS S3, Cloudinary ou Rackspace. Você pode visualizar a documentação para instalar provedores aqui e uma lista de provedores de Strapi e da comunidade em npmjs.com.