# Get Started: Guia de Instalação

---

- [Clonando o Repositório](#clonando-o-repositorio)
- [Pré-requisitos](#pre-requisitos)
- [Configuração Inicial](#configuracao-inicial)
- [Iniciando o Ambiente](#iniciando-o-ambiente)
- [Resolução de Problemas](#resolucao-de-problemas)

<a name="clonando-o-repositorio"></a>
## Clonando o Repositório

Antes de configurar o ambiente local, clone o repositório do projeto para sua máquina:

```bash
git clone https://gitlab.grupocriar.com.br/php/e-silobag/api-general.git
cd api-general
```

<a name="pre-requisitos"></a>
## Pré-requisitos

Certifique-se de que sua máquina atenda aos seguintes requisitos:

1. **Docker** e **Docker Compose** instalados.
2. A **porta 80** deve estar livre. Se serviços como **Apache** ou **Nginx** estiverem em execução, pare-os.
3. Sistema operacional compatível com o Docker (Linux, macOS ou Windows com WSL2 configurado).

<a name="configuracao-inicial"></a>
## Configuração Inicial

Antes de iniciar o ambiente, faça as seguintes configurações:

1. Navegue até o diretório `docker/local` do projeto:

```bash
cd docker/local
```

2. Copie o arquivo `.env.example` para `.env` e configure os dados do banco de dados de acordo com as informações fornecidas no arquivo `docker/local/.env`:

```bash
cp .env.example .env
```

3. Edite o arquivo `.env` gerado, configurando as variáveis de ambiente relacionadas ao banco de dados. Use as credenciais de banco de dados local contidas no arquivo `docker/local/.env`.


**Certifique-se de ajustar o valor de `DB_PASSWORD` de acordo com a senha definida no arquivo `docker/local/.env`.**

4. Após configurar o `.env`, você pode prosseguir para a instalação do ambiente.

<a name="iniciando-o-ambiente"></a>
## Iniciando o Ambiente

Para configurar o ambiente local pela primeira vez:

1. Navegue até o diretório `docker/local` do projeto:

```bash
cd docker/local
```

2. Execute o script de instalação:

```bash
./install.sh
```

Esse script irá:
- Construir os contêineres necessários.
- Instalar as dependências do projeto.
- Configurar o ambiente local.

Para iniciar o ambiente nas execuções subsequentes, utilize:

```bash
./start.sh
```

<a name="resolucao-de-problemas"></a>
## Resolução de Problemas

### Porta 80 em uso

Se a porta 80 estiver em uso, identifique e encerre o processo conflitante:

```bash
sudo lsof -i :80
sudo kill -9 <PID>
```

### Docker não inicia os contêineres

Verifique se o Docker está em execução na máquina host e tente reiniciar o serviço:

```bash
sudo systemctl restart docker
```

### Dependências do Composer não foram instaladas

Caso você receba erros relacionados às dependências do Composer, tente rodar o seguinte comando dentro do contêiner:

```bash
docker compose exec app composer install
```
ou

```bash
docker compose exec app composer update
```


---

SE encontrar, abra uma issue no repositório do projeto ou um card no Kanban do <a href="https://projetos.grupocriar.com.br/workgroups/group/106/tasks/" target="_blank">Bitrix</a>🛠️