> ## 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.

# Guia de implantação de produção para VM Linux

> Implante o AirysChat no Ubuntu 24.04 LTS usando o script de instalação automatizado

## Implantando em uma VM Linux

Este guia o ajudará a instalar o **AirysChat** no **Ubuntu 24.04 LTS**. Preparamos um script de implantação para você executar. Consulte o script e sinta-se à vontade para fazer alterações de acordo com o sistema operacional, se você estiver em um sistema que não seja Ubuntu.

<iframe width="100%" height="443" src="https://www.youtube-nocookie.com/embed/vu_61D1VFAk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />

## Passos para instalar

<Note>
  Se você planeja usar um domínio com o airyschat, adicione um registro A antes de prosseguir. Consulte a seção `Configurando o domínio de instalação` abaixo.
</Note>

### 1. Crie um arquivo install.sh

```bash theme={null}
wget https://get.airyschat.app/linux/install.sh
chmod +x install.sh
```

### 2. Execute o script

O script cuidará da configuração inicial do **AirysChat**.

```bash theme={null}
./install.sh --install
```

### 3. Acesse sua instalação

A Instalação do **AirysChat** agora estará acessível em `http://{your_ip_address}:3000` ou se você optou pela configuração de domínio, estará em `https://airyschat.mydomain.com`.

<Note>
  Isso também instalará o CLI do AirysChat (`cwctl`) a partir do AirysChat v2.7.0. Use `cwctl --help` para saber mais.
</Note>

## Configurando O Domínio de instalação

1. Crie um registro `A` para `airyschat.mydomain.com` no seu sistema de gerenciamento de domínio e aponte para o endereço IP da instalação.
2. Continue com o script de instalação digitando `yes` quando solicitado sobre a configuração do domínio.
3. Digite o seu domínio. O script se encarregará de configurar o Nginx e o SSL via LetsEncrypt.
4. Sua instalação do AirysChat deve estar acessível de `https://airyschat.mydomain.com` agora.

## Configure as variáveis de ambiente necessárias

Para que sua instalação do AirysChat funcione corretamente, você precisaria configurar as variáveis de ambiente essenciais, como `FRONTEND_URL`, Mailer e uma configuração de armazenamento em nuvem. Consulte **[Variáveis de ambiente](/self-hosted/configuration/environment-variables)** para obter a lista completa.

### 1. Faça login como usuário airyschat e edite o arquivo .env

```bash theme={null}
# Faça login como usuário airyschat
sudo -i -u airyschat
cd airyschat
nano .env
```

### 2. Atualize as variáveis de ambiente

Consulte **[Variáveis de ambiente](/self-hosted/configuration/environment-variables)** e atualize as variáveis necessárias. Salve o arquivo `.env`.

### 3. Reinicie o servidor AirysChat

<Note>
  Se você tem o CLI do AirysChat (`cwctl`) instalado, use `cwctl -r`.
</Note>

```bash theme={null}
sudo systemctl restart airyschat.target
```

## Atualizando para uma versão mais recente do AirysChat

Sempre que uma nova versão do AirysChat for lançada, use as etapas a seguir para atualizar sua instância.

<Note>
  Se você tem o CLI do AirysChat (`cwctl`) instalado, use `cwctl --upgrade` para atualizar sua instalação do AirysChat.
</Note>

Para instalar o `cwctl`, consulte [esta](#install-or-upgrade-airyschat-cli) seção abaixo.

<Note>
  Se você estiver em uma versão mais antiga do AirysChat (\< 2.7), siga as etapas de atualização manual abaixo se enfrentar erros com o `cwctl`.
</Note>

Execute as seguintes etapas em sua VM. Faça alterações com base no seu sistema operacional se você estiver em um sistema que não seja Ubuntu.

```bash theme={null}
# Faça login como usuário AirysChat
sudo -i -u airyschat

# Navegue até o diretório do AirysChat
cd airyschat

# Puxe a versão mais recente da branch master
git checkout master && git pull

# Certifique-se de que a versão do ruby esteja atualizada
rvm install "ruby-3.3.3"
rvm use 3.3.3 --default

# Atualize as dependências
bundle
pnpm i

# Recompile os assets
rake assets:precompile RAILS_ENV=production

# Migre o schema do banco de dados
RAILS_ENV=production bundle exec rake db:migrate

# Volte para o usuário root
exit

# Copie os targets atualizados
cp /home/airyschat/airyschat/deployment/airyschat-web.1.service /etc/systemd/system/airyschat-web.1.service
cp /home/airyschat/airyschat/deployment/airyschat-worker.1.service /etc/systemd/system/airyschat-worker.1.service
cp /home/airyschat/airyschat/deployment/airyschat.target /etc/systemd/system/airyschat.target

# Recarregue os arquivos do systemd
systemctl daemon-reload

# Reinicie o servidor airyschat
systemctl restart airyschat.target
```

## Executando o Rails Console

<Note>
  Se você tem o CLI do AirysChat (`cwctl`) instalado, use `cwctl -c`.
</Note>

```bash theme={null}
# Faça login como usuário AirysChat
sudo -i -u airyschat

# Navegue até o diretório do AirysChat
cd airyschat

# inicie o rails console
RAILS_ENV=production bundle exec rails c
```

## Visualizando Logs

<Note>
  Se você tem o CLI do AirysChat (`cwctl`) instalado, use `cwctl -l web` ou `cwctl -l worker`.
</Note>

Execute os seguintes comandos no seu shell ubuntu

```bash theme={null}
# logs do servidor rails
journalctl -u airyschat-web.1.service -f

# logs do sidekiq
journalctl -u airyschat-worker.1.service -f
```

## Instalar ou Atualizar o CLI do AirysChat

Se você usou uma versão mais antiga do script de instalação (\< 2.0), você não terá o `cwctl` no seu PATH. Para instalar/atualizar o CLI do AirysChat,

```bash theme={null}
wget https://get.airyschat.app/linux/install.sh -O /usr/local/bin/cwctl && chmod +x /usr/local/bin/cwctl
cwctl --help
```

<Note>
  O comando acima requer acesso root para instalar o `cwctl` em `/usr/local/bin`.
</Note>

## Solução de problemas

### Se a pré-compilação falhar

Se a etapa de pré-compilação de assets falhar com `ActionView::Template::Error (Webpacker can't find application.css in /home/airyschat/airyschat/public/packs/manifest.json)` ou se você enfrentar problemas ao reiniciar o servidor, tente o seguinte comando e reinicie o servidor.

```bash theme={null}
RAILS_ENV=production rake assets:clean assets:clobber assets:precompile
```

Este comando limparia os assets compilados existentes e recompilaria todos os assets. Leia mais sobre isso [aqui](https://edgeguides.rubyonrails.org/command_line.html#bin-rails-assets)
