# Guia de Instalação do Passbolt em Hospedagem Compartilhada

<div class="container" id="bkmrk-"></div>### Pré-requisitos

Para a execução deste processo, o usuário deve:

<div class="container" id="bkmrk-possuir-acesso-root-">- Possuir acesso root ao servidor com AlmaLinux 9 ou Semelhantes.
- Ter instalado Git no servidor.
- Contar com PHP (versão compatível, ex.: PHP 7.4 ou superior) e as extensões necessárias (php-cli, php-fpm, php-gd, php-mbstring, php-json, php-curl, php-xml, php-intl).
- Ter um servidor de banco de dados (MariaDB/MySQL) disponível e criado para o usuário.
- Configurar um servidor web (Nginx ou Apache) para servir a aplicação.
- Possuir um domínio ou subdomínio apontando para o servidor.
- Possuir ssl configurado para o domínio ou subdomínio.
- Possuir a conta de hospedagem preparada para receber a instalação, passos acima.

---

</div>### Instrução de Trabalho

A seguir, são apresentados os passos necessários para a instalação do Passbolt CE a partir do código fonte:

<div class="container" id="bkmrk--1"></div>#### Passo 1: Atualização do Sistema e Instalação de Dependências

Atualize o sistema e instale os pacotes essenciais:

```
dnf update -y
dnf install -y git composer php php-cli php-fpm php-gd php-mbstring php-json php-curl php-xml php-intl
```

<p class="callout info">Verifique se o as dependências que estão sendo baixadas correspondem a versão por exemplo **php81-gd-devel**</p>

<div class="container" id="bkmrk--2"></div><p class="callout warning">Grande parte das extensões já estão baixadas nativamente junto ao painel de controle instalado.</p>

#### Passo 2: Clonagem do Repositório do Passbolt

Clone o repositório oficial do Passbolt a partir do GitHub para o diretório desejado (por exemplo, `/home/passbolt/public_html`):

```
git clone https://github.com/passbolt/passbolt_api.git /path/para/a/public/do/dominio
```

<p class="callout warning">Mova os arquivos de dentro da pasta do clone para a public</p>

<div class="container" id="bkmrk--3"></div>#### Passo 3: Instalação das Dependências via Composer

<p class="callout info">A API Passbolt usa uma chave OpenPGP para o servidor para autenticar e assinar as solicitações JSON de saída. Para melhor compatibilidade use a mesma versão do GnuPG para geração das chaves e para o módulo php.</p>

```bash
gpg --batch --no-tty --gen-key <<EOF
  Key-Type: default
  Key-Length: 3072
  Subkey-Type: default
  Subkey-Length: 3072
  Name-Real: John Doe
  Name-Email: email@domain.tld
  Expire-Date: 0
  %no-protection
  %commit
EOF
```

<p class="callout info">Substitua Name-Real e Name-Email pelo o proprietário da instalação.</p>

Para exibir a nova chave:

```
gpg --armor --export-secret-keys email@domain.tld
```

Depois de criar a chave, anote a impressão digital, ela será solicitada posteriormente no processo de instalação. Você pode obter a impressão digital da chave do servidor da seguinte maneira.

```bash
gpg --list-keys --fingerprint | grep -i -B 2 'email@domain.tld'
```

Copie as chaves públicas e privadas para o local de configuração do passbolt:

```
gpg --armor --export-secret-keys email@domain.tld > /path/para/a/public/do/dominio/config/gpg/serverkey_private.asc
gpg --armor --export email@domain.tld > /path/para/a/public/do/dominio/config/gpg/serverkey.asc
```

#### Passo 4: Instalação das Dependências via Composer

Navegue até o diretório do Passbolt e instale as dependências PHP utilizando o Composer:

```
cd /path/para/a/public/do/dominio
curl -sS https://getcomposer.org/installer | php
composer.phar install --no-dev
```

<p class="callout info">A instalação do composer também será necessária!</p>

<div class="container" id="bkmrk--4"></div>#### Passo 4: Crie um arquivo de configuração passbolt

Baseado no arquivo de configuração /config/passbolt-default.php, configure o ambiente conforme o necessário.

```
cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php
```

Em seguida, edite o arquivo para definir os parâmetros essenciais.

- URL base completo do aplicativo
- Configuração do banco de dados
- Configurações de e-mail
- Fingerprint da chave OpenGPG do servidor.

<div class="container" id="bkmrk--5"></div>#### Passo 6: Execução das Migrações e Instalação do Passbolt

Com o ambiente configurado, execute as migrações do banco de dados e instale o Passbolt utilizando os comandos do CakePHP:

```
cd /path/para/a/public/do/dominio/
bin/cake migrations migrate
bin/cake passbolt install
```

O comando `bin/cake passbolt install` iniciará o assistente de instalação, que guiará a criação de chaves e a configuração inicial do aplicativo.

<div class="container" id="bkmrk--7"></div>#### Passo 7: Configuração do Servidor Web

Configure o seu servidor web para apontar para a pasta `webroot` do Passbolt. A seguir, um exemplo de configuração para o Nginx:

```
# Exemplo de configuração Nginx para Passbolt
server {
    listen 80;
    server_name seu-dominio.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name seu-dominio.com;
    root /var/www/passbolt/webroot;
    index index.php;

    ssl_certificate /caminho/do/certificado.crt;
    ssl_certificate_key /caminho/da/chave.key;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

```

<div class="container" id="bkmrk--8"></div>#### Passo 8: Finalização via Interface Web

Após configurar o servidor web, acesse o Passbolt através do navegador utilizando o domínio configurado (`https://seu-dominio.com`). Na interface, realize o healthcheck, e finalize as pendencias apontadas por ele.

<div class="container" id="bkmrk--9">---

</div>### Conclusão

Com a execução dos passos descritos, o Passbolt CE estará instalado a partir do código fonte em seu ambiente de hospedagem compartilhada. O procedimento envolve a clonagem do repositório, configuração do ambiente via Composer, definição dos parâmetros no arquivo de configuração, configuração do banco de dados, execução das migrações e ajustes no servidor web.

Finalize a instalação pela interface web e proceda com a criação dos usuários conforme as necessidades da sua equipe. Para dúvidas ou suporte adicional, consulte a [documentação oficial do Passbolt](https://www.passbolt.com/docs/hosting/install/ce/from-source/) e os fóruns da comunidade.

<details id="bkmrk-informacoes-de-controle-de-versao"><summary>Informações de controle de versão</summary>

#### Assunto

Instalação do Passbolt CE via código fonte em ambiente de hospedagem compartilhada com AlmaLinux 9

#### Introdução

Este documento descreve o procedimento para instalar o Passbolt Community Edition (CE) a partir do código fonte. Baseia-se nas instruções oficiais disponíveis em [Passbolt – Install from source](https://www.passbolt.com/docs/hosting/install/ce/from-source/) e assume que o usuário possui acesso root total ao servidor.

#### Palavras-Chave

&lt;Passbolt | Código Fonte | AlmaLinux 9 | Hospedagem Compartilhada | Instalação&gt;

#### Segurança da Informação

Este documento é destinado ao uso interno e deve ser manuseado conforme as políticas de segurança da informação da organização.

#### Dados da Revisão

<table border="1" style="width: 100%; border-collapse: collapse; height: 46.5938px;"><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;">Data: 02/09/2024</td><td style="height: 46.5938px;">Rev.: 1.0</td><td style="height: 46.5938px;">Criado por: Gabriel Prado</td><td style="height: 46.5938px;">Aprovado por: </td><td style="height: 46.5938px;">Visibilidade: Interno</td></tr></tbody></table>

</details>