> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airys.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Variáveis de Ambiente

> Referência completa das variáveis de ambiente e opções de configuração do AirysChat

## O Arquivo .env

Usamos a gem `dotenv-rails` para gerenciar as variáveis de ambiente. Há um arquivo chamado `env.example` no diretório raiz deste projeto com todas as variáveis de ambiente definidas com valores vazios. Você pode definir os valores corretos de acordo com as seguintes opções. Depois de definir os valores, você deve renomear o arquivo para `.env` antes de iniciar o servidor.

## Configurar o URL do frontend (domínio)

Forneça o domínio do seu airyschat como o URL do frontend.

```bash theme={null}
FRONTEND_URL='https://your-airyschat-domain.tld'
```

## Variáveis de produção do Rails

Para implantação em produção, você deve definir as seguintes variáveis

```bash theme={null}
RAILS_ENV=production
SECRET_KEY_BASE=replace_with_your_own_secret_string
```

Você pode gerar `SECRET_KEY_BASE` usando o comando `rake secret` a partir da pasta raiz do projeto. Se você não tiver o rails instalado, use `head /dev/urandom | tr -dc A-Za-z0-9 | head -c 63 ; echo ''`.

<Note>
  A SECRET\_KEY\_BASE deve ser alfanumérica. Evite caracteres especiais ou símbolos.
</Note>

## Configuração do banco de dados

O Postgres pode ser configurado de duas maneiras: através de `DATABASE_URL` ou configurando variáveis independentes do Postgres.

### Configurar o Postgres

Defina a variável `DATABASE_URL` com o valor do URI de conexão do Postgres para conectar-se ao banco de dados.

O URI tem o formato

```bash theme={null}
postgresql://[user[:password]@][netloc][:port][,...][/dbname][?param1=value1&...]
```

Ou você pode definir as seguintes variáveis de ambiente para configurar o Postgres. Substitua os valores aqui pelos seus. Ignore isso se você já tiver configurado `DATABASE_URL`.

```bash theme={null}
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DATABASE=airyschat_production
POSTGRES_USERNAME=admin
POSTGRES_PASSWORD=password
```

### Configurar o Redis

Para desenvolvimento, você pode usar a seguinte URL para se conectar ao Redis. Para produção, configure sua URL do Redis.

```bash theme={null}
REDIS_URL='redis://127.0.0.1:6379'
```

Para autenticar conexões Redis feitas pelo servidor de aplicativos e pelo sidekiq, caso ele seja protegido por uma senha, use a seguinte variável de ambiente para definir a senha.

```bash theme={null}
REDIS_PASSWORD=
```

## Configurar e-mails

Para desenvolvimento, você não precisa de um provedor de e-mail. O AirysChat usa a gem [letter-opener](https://github.com/ryanb/letter_opener) para testar e-mails localmente

Para uso em produção, configure as seguintes variáveis.

```bash theme={null}
# pode ser `email@yourdomain.com` ou `BrandName <email@yourdomain.com>`
MAILER_SENDER_EMAIL=
```

e com base no seu servidor SMTP as seguintes variáveis

```bash theme={null}
SMTP_ADDRESS=
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_TLS=
SMTP_SSL=
```

### Postfix

Siga estas etapas se você quiser usar um servidor de e-mail auto-hospedado com o AirysChat. Este é o comportamento padrão a partir da `v2.12.0` e depende da variável de ambiente `SMTP_ADDRESS` não estar definida.

```
sudo apt install -y postfix
```

Escolha internet-site quando solicitado e digite o nome de domínio que você usou com a configuração do AirysChat para `System mail name`.

<Note>
  Por padrão, todos os principais provedores de nuvem bloquearam a porta 25 usada para o envio de e-mails como parte de seus esforços de combate a spam. Por favor, abra um ticket de suporte com o seu provedor de nuvem para habilitar o acesso de saída na porta 25 para que isso funcione. Consulte [AWS](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle), [GCP](https://cloud.google.com/compute/docs/tutorials/sending-mail), [Azure](https://learn.microsoft.com/en-us/azure/virtual-network/troubleshoot-outbound-smtp-connectivity) e [DigitalOcean](https://www.digitalocean.com/blog/smtp-restricted-by-default) para mais detalhes.
</Note>

Por favor, adicione também registros MX e PTR para o seu domínio. Se os seus e-mails estiverem sendo sinalizados pelo `Gmail` e `Outlook`, configure registros [SPF e DKIM](https://www.linuxbabe.com/mail-server/setting-up-dkim-and-spf) para o seu domínio também. Isso deve melhorar a sua reputação de e-mail.

### Amazon SES

```bash theme={null}
SMTP_ADDRESS=email-smtp.<region>.amazonaws.com
SMTP_AUTHENTICATION=plain
SMTP_ENABLE_STARTTLS_AUTO=true
SMTP_USERNAME=<Your SMTP username>
SMTP_PASSWORD=<Your SMTP password>
```

### SendGrid

<Info>
  Para esclarecimento, o `SMTP_USERNAME` deve ser definido com o texto literal apikey — esta não é a chave API real. O SendGrid usa 'apikey' como o nome de usuário padrão para seus serviços.
</Info>

```bash theme={null}
SMTP_ADDRESS=smtp.sendgrid.net
SMTP_AUTHENTICATION=plain
SMTP_DOMAIN=<your verified domain>
SMTP_ENABLE_STARTTLS_AUTO=true
SMTP_PORT=587
SMTP_USERNAME=apikey
SMTP_PASSWORD=<your Sendgrid API key>
```

### MailGun

```bash theme={null}
SMTP_ADDRESS=smtp.mailgun.org
SMTP_AUTHENTICATION=plain
SMTP_DOMAIN=<Your domain, this has to be verified in Mailgun>
SMTP_ENABLE_STARTTLS_AUTO=true
SMTP_PORT=587
SMTP_USERNAME=<Your SMTP username, view under Domains tab>
SMTP_PASSWORD=<Your SMTP password, view under Domains tab>
```

### Mandrill

Se você quiser usar o Mailchimp para enviar seus e-mails, use as seguintes variáveis de ambiente:

<Note>
  Mandrill é o serviço de e-mail transacional para o Mailchimp. Você precisa habilitar o e-mail transacional e fazer login no mandrillapp.com.
</Note>

```bash theme={null}
SMTP_ADDRESS=smtp.mandrillapp.com
SMTP_AUTHENTICATION=plain
SMTP_DOMAIN=<Your verified domain in Mailchimp>
SMTP_ENABLE_STARTTLS_AUTO=true
SMTP_PORT=587
SMTP_USERNAME=<Your SMTP username displayed under Settings -> SMTP & API info>
SMTP_PASSWORD=<Any valid API key, create an API key under Settings -> SMTP & API Info>
```

## Configurar idioma padrão

```bash theme={null}
DEFAULT_LOCALE='en'
```

## Configurar o armazenamento

O AirysChat usa o [active storage](https://edgeguides.rubyonrails.org/active_storage_overview.html) para armazenar anexos. A opção de armazenamento padrão é o armazenamento local em seu servidor.

Mas você pode alterar para usar qualquer um dos provedores em nuvem, como amazon s3, microsoft azure, google gcs etc. Consulte [configurando armazenamento na nuvem](/self-hosted/deployment/storage/supported-providers) para variáveis de ambiente adicionais necessárias.

```bash theme={null}
ACTIVE_STORAGE_SERVICE=local
```

Quando o armazenamento `local` é usado, os arquivos são armazenados no diretório `/storage` na pasta raiz do airyschat.

<Warning>
  É recomendado o uso de um provedor em nuvem para o armazenamento do seu airyschat para garantir o backup adequado dos anexos armazenados e evitar a perda de dados.
</Warning>

## Variáveis de Registro (Logging) do Rails

Por padrão, o AirysChat capturará logs de nível `info` em produção. Consulte [rails docs](https://guides.rubyonrails.org/debugging_rails_applications.html#log-levels) para as opções adicionais de nível de log.
Nós também manteremos 1 GB dos seus logs recentes e o seu último arquivo de log rotacionado.
Você pode fazer um ajuste fino nessas configurações usando as seguintes variáveis de ambiente

```bash theme={null}
# possible values: 'debug', 'info', 'warn', 'error', 'fatal' and 'unknown'
LOG_LEVEL=
# value in megabytes
LOG_SIZE= 1024
```

## Configurar Canal FB

Para usar o Canal FB, você deve criar um aplicativo do Facebook no portal do desenvolvedor. Você pode encontrar mais detalhes sobre como criar canais do FB [aqui](https://developers.facebook.com/docs/apps/#register)

```bash theme={null}
FB_VERIFY_TOKEN=
FB_APP_SECRET=
FB_APP_ID=
```

## Usando CDN para entrega de ativos

Com o lançamento da v1.8.0, estamos habilitando o suporte CDN para o AirysChat. Se você tem um site de alto tráfego, recomendamos configurar uma CDN para a entrega dos seus ativos. Leia o guia configurando o [CloudFront como sua CDN](/self-hosted/deployment/performance/cloudfront-cdn).

## Habilitar o cadastro de nova conta

Por padrão, o AirysChat não permitirá que os usuários criem uma conta \[multi-locação/multi-tenancy] a partir da página de login. No entanto, se você estiver configurando um servidor público, poderá habilitar o cadastro usando:

```bash theme={null}
ENABLE_ACCOUNT_SIGNUP=true
```

## Habilitar o upload direto para a nuvem de armazenamento

Por padrão, o AirysChat enviará os arquivos para o servidor da aplicação e então fará o envio para o armazenamento na nuvem. Nós introduzimos a funcionalidade de upload direto para que possamos enviar o arquivo diretamente para o armazenamento na nuvem. Isso foi construído de acordo com a nova funcionalidade de upload direto do rails documentada [aqui](https://edgeguides.rubyonrails.org/active_storage_overview.html#direct-uploads). Defina a variável de ambiente abaixo como true para usar o recurso de upload direto.

Certifique-se de seguir [este guia](https://edgeguides.rubyonrails.org/active_storage_overview.html#cross-origin-resource-sharing-cors-configuration) e definir a configuração CORS adequada em seu armazenamento na nuvem após definir `DIRECT_UPLOADS_ENABLED` como true.

```bash theme={null}
DIRECT_UPLOADS_ENABLED=true
```

## Google OAuth

Para habilitar o Google OAuth no AirysChat, você precisa fornecer o ID do cliente, o segredo do cliente e a URL de retorno de chamada (callback URL). Você pode encontrar as instruções para gerar os detalhes [aqui](https://support.google.com/cloud/answer/6158849).

Defina as variáveis de ambiente `GOOGLE_OAUTH_CLIENT_ID` e `GOOGLE_OAUTH_CLIENT_SECRET` na instalação do AirysChat usando os valores que você copiou do Google API Console. Defina a variável de ambiente `GOOGLE_OAUTH_CALLBACK_URL` com a URL de retorno de chamada que você usou no Google API Console. Aqui está um exemplo do mesmo

```bash theme={null}
GOOGLE_OAUTH_CLIENT_ID=369777777777-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
GOOGLE_OAUTH_CLIENT_SECRET=ABCDEF-GHijklmnoPqrstuvwX-yz1234567
GOOGLE_OAUTH_CALLBACK_URL=https://<your-server-domain>/omniauth/google_oauth2/callback
```

<Warning>
  A URL de retorno de chamada deve estar em conformidade com o formato no exemplo acima. Este endpoint não pode ser alterado no momento.
</Warning>

Após definir essas variáveis de ambiente, reinicie o servidor do AirysChat para aplicar as alterações. Agora, os usuários poderão fazer login usando as contas do Google.

## LogRocket

Para habilitar o LogRocket no AirysChat, você precisa fornecer a ID do projeto no LogRocket. Aqui estão os passos a seguir:

1. Abra o [site](https://logrocket.com/) do LogRocket e crie uma conta ou faça login em sua conta existente.
2. Após fazer o login, crie um novo projeto no LogRocket clicando em "Create new project".
3. Digite um nome para o seu projeto e salve a ID do projeto.
4. Defina a variável de ambiente `LOG_ROCKET_PROJECT_ID` em seu arquivo `.env` com a ID do projeto que você copiou do LogRocket.

```bash theme={null}
LOG_ROCKET_PROJECT_ID=abcd12/pineapple-on-pizza
```

Após definir esta variável de ambiente, reinicie o servidor do AirysChat para aplicar as alterações. Agora, o LogRocket começará a capturar sessões de usuário na sua instalação do AirysChat.
