# Produção

*Para rodar o projeto em **produção**, é necessários um arquivo de ambiente. que deve possuir o nome "**.env"** e deve ser colocado na pasta ECLIPSE-V3*

<p class="callout warning">**A falta desse arquivo de ambiente pode acarretar em erros inesperados de build do docker!**</p>

---

<p class="callout danger">**Lembre de adicionar este arquivo na pasta <span style="color: rgb(185, 106, 217);">/ECLIPSE-V3</span>**</p>

### **.env:** 

```bash
# 🛢️ MONGO (usado pelo db)

MONGO_INITDB_ROOT_USERNAME=root # Nome do usuário root do banco
MONGO_INITDB_ROOT_PASSWORD=Senha-forte  # Gerar senha forte 
MONGO_INITDB_DATABASE=eclipse-db-deploy


# 🌐 API

API_PORT=3008
CONNECTION_STRING=mongodb://root:Senha-forte@eclipsev3-db-deploy:27017/eclipse-db-deploy?authSource=admin


# 🔐 Segurança

JWT_SECRET=Senha-forte # Necessário gerar uma chave forte
NEXTAUTH_SECRET=Senha-forte # Necessário gerar uma chave forte

# 🌐 CORS
#Adicionar domínios conforme necessário, separados por vírgula. 
#Exemplo: http://dominio1.com,http://dominio2.com,https://eclipse.defensoria.df.gov.br

CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173,http://localhost:80,http://localhost,http://eclipse-api,http://eclipse-api:5173,http://localhost:3008

# 💻 Next.js
NEXT_PUBLIC_APP_VERSION=3.3.09.25

NEXT_PUBLIC_API_URL=http://localhost:3008/api # trocar conforme o domínio
API_INTERNAL_URL=http://eclipse-api:3008 # URL interna para comunicação entre serviços
NEXTAUTH_URL=http://localhost:3000 # trocar conforme o domínio

#Exemplo de domínio -> NEXT_PUBLIC_API_URL=https://eclipse.defensoria.df.gov.br/api/v1
#                   -> NEXTAUTH_URL=https://eclipse.defensoria.df.gov.br


# 👮 Admin Inicial
BASE_ADMIN_PASSWORD=Senha-forte #Necessário gerar uma senha forte
BASE_ADMIN_EMAIL=admin@admin.com

# ✉️ E-mail
EMAIL_USER=admin123@gmail.com
PASSWORD_USER=senha-gerada
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false

# ⚙️ Ambiente
NODE_ENV=production

MOBILE_BASE_URL=http://localhost:3000 #env para rota mobile de verificação QRCode

```

<div id="bkmrk-%60%60%60env-%23-%F0%9F%8C%90-api-api_p"></div>---

<div id="bkmrk--3"></div>### **Rodando Docker**

<p class="callout info">**Lembre-se de criar o arquivo .<span style="color: rgb(230, 126, 35);">env</span> na <span style="text-decoration: underline;">pasta raíz!</span>**</p>

---

```bash
sudo docker compose up --build
```

---

<p class="callout warning">**AVISOS IMPORTANTES**</p>

<div id="bkmrk--6"></div>#### ❗ **Não utilize os valores padrões em produção! 

<div id="bkmrk-%E2%9D%97-n%C3%A3o-utilize-os-val"><div style="padding-left: 40px;">*Antes de subir o sistema para qualquer ambiente real, substitua os seguintes campos por valores seguros e válidos:*</div>- 🔐 **Segurança** (*Criptografia*):

<div style="padding-left: 40px;">***JWT\_SECRET*** e ***NEXTAUTH\_SECRET*** → Gere uma **chave segura** com pelo menos 32 caracteres.</div><div style="padding-left: 40px;">  
</div><div>- **👮 Corregedor Inicial**:

</div><div style="padding-left: 40px;">**BASE\_ADMIN\_EMAIL**→ Altere para um e-mail real e controlado por você.</div><div style="padding-left: 40px;">**BASE\_ADMIN\_PASSWORD**→ Crie uma **senha forte**.</div><div>  
</div></div><div id="bkmrk-%E2%9C%89%EF%B8%8F-envio-de-e-mails%3A">- ✉️ **Envio de E-mails:**

</div><div id="bkmrk-email_user-%E2%86%92-um-e-ma"><div style="padding-left: 40px;">**EMAIL\_USER** → Um e-mail **Gmail válido**.</div><div style="padding-left: 40px;">**PASSWORD\_USER** → A **senha de app** gerada em [https://myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords) com a verificação em duas etapas ativada.</div></div><div id="bkmrk--7" style="padding-left: 40px;"></div><div id="bkmrk-%F0%9F%9B%A2%EF%B8%8F-aten%C3%A7%C3%A3o-com-o-mon">- 🛢️ **Atenção com o MongoDB:**

</div><div id="bkmrk-se-voc%C3%AA-alterar-os-v"><div style="padding-left: 40px;">Se você alterar os valores de **MONGO\_INITDB\_ROOT\_USERNAME**, **MONGO\_INITDB\_ROOT\_PASSWORD** ou **MONGO\_INITDB\_DATABASE**, lembre-se de atualizar também o valor da **CONNECTION\_STRING** *<span style="text-decoration: underline;">manualmente</span>*.</div>  
<div style="padding-left: 40px;">❌ O arquivo **.env <span style="text-decoration: underline;">não</span>** suporta interpolação de variáveis. Por isso, a string de conexão não é gerada automaticamente com base nos valores acima.</div><div style="padding-left: 40px;">  
</div></div><p class="callout danger">**🔐 Nunca compartilhe arquivos .env com informações sensíveis publicamente (GitHub, fóruns etc.).**</p>