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

# Configuração de Desenvolvimento no Windows

> Guia completo para configurar seu ambiente de desenvolvimento Windows para contribuição no AirysChat usando o WSL2.

# Configuração de Desenvolvimento no Windows

Este guia guiará você pela configuração de seu ambiente de desenvolvimento no Windows para contribuir com o AirysChat. Usaremos o Windows Subsystem for Linux 2 (WSL2), que fornece a melhor experiência de desenvolvimento no Windows.

## Requisitos

Você precisa instalar o Windows Subsystem for Linux 2 (WSL2) na sua máquina com Windows.

### Pré-requisitos

* Windows 10 versão 2004 ou superior (Build 19041 ou superior) ou Windows 11
* Privilégios de administrador na sua máquina Windows

## Passo 1: Ativar o Modo de Desenvolvedor

O primeiro passo é ativar o "Modo de Desenvolvedor" no Windows. Você pode fazer isso abrindo as Configurações e navegando até "Atualização e Segurança". Lá, escolha a aba à esquerda que diz "Para Desenvolvedores". Ligue a opção "Modo de desenvolvedor" para ativá-lo.

<img src="https://mintcdn.com/airys/1FWn-RJM-8Ky_sbQ/contributing-guide/project-setup/img/developer-mode.jpg?fit=max&auto=format&n=1FWn-RJM-8Ky_sbQ&q=85&s=657a125c397336b8f41c68cd170b9ae2" width="500" alt="Ativar Modo de Desenvolvedor" data-path="contributing-guide/project-setup/img/developer-mode.jpg" />

## Passo 2: Ativar o Windows Subsystem for Linux

Em seguida, você deve ativar o Windows Subsystem for Linux. Abra o "Painel de Controle" e vá em "Programas e Recursos". Clique no link à esquerda "Ativar ou desativar recursos do Windows". Procure a opção "Subsistema do Windows para Linux" e marque a caixa de seleção ao lado dela.

<img src="https://mintcdn.com/airys/1FWn-RJM-8Ky_sbQ/contributing-guide/project-setup/img/enable-wsl.jpg?fit=max&auto=format&n=1FWn-RJM-8Ky_sbQ&q=85&s=0d1177c60667a03e1fdeca28cce63dab" width="500" alt="Ativar WSL" data-path="contributing-guide/project-setup/img/enable-wsl.jpg" />

Você também precisará ativar a "Plataforma de Máquina Virtual" para o WSL2. Certifique-se de que ambas as caixas de seleção estejam marcadas:

* ✅ Subsistema do Windows para Linux
* ✅ Plataforma de Máquina Virtual

Depois de ativar esses recursos, reinicie o computador.

## Passo 3: Instalar o WSL2 e o Ubuntu

### Opção 1: Usando a Microsoft Store (Recomendado)

1. **Abra a Microsoft Store** e pesquise por "Ubuntu"
2. **Instale o Ubuntu 22.04 LTS** (ou a última versão LTS)
3. **Inicie o Ubuntu** pelo Menu Iniciar

### Opção 2: Usando Linha de Comando

Abra o PowerShell como Administrador e execute:

```powershell theme={null}
# Install WSL2 with Ubuntu
wsl --install -d Ubuntu-22.04

# Set WSL2 as default version
wsl --set-default-version 2
```

## Passo 4: Configuração Inicial do Ubuntu

Quando você iniciar o Ubuntu pela primeira vez, você será solicitado a criar uma conta de usuário:

```bash theme={null}
# Create a username and password when prompted
# This will be your Linux user account
```

Atualize os pacotes do sistema:

```bash theme={null}
sudo apt update && sudo apt upgrade -y
```

## Passo 5: Instalar Dependências Principais

Você precisa instalar as dependências principais do Linux para instalar o Ruby e outras ferramentas.

```bash theme={null}
sudo apt-get update
sudo apt-get install -y git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev
```

## Instalando o RVM e o Ruby

Instale as dependências adicionais necessárias para o RVM:

```bash theme={null}
sudo apt-get install -y libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
```

Instale o RVM e a versão 3.2.2 do Ruby:

```bash theme={null}
# Add RVM GPG keys
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

# Install RVM
curl -sSL https://get.rvm.io | bash -s stable

# Load RVM into current session
source ~/.rvm/scripts/rvm

# Install Ruby 3.2.2
rvm install 3.2.2
rvm use 3.2.2 --default

# Verify installation
ruby -v
```

## Instalar o Node.js

O AirysChat requer a versão 20 do Node.js. Instale o Node.js do NodeSource usando os seguintes comandos:

```bash theme={null}
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
```

Verifique a instalação do Node.js:

```bash theme={null}
node --version
# Should output: v20.x.x
```

## Instalar o pnpm

Usamos o `pnpm` como gerenciador de pacotes para obter melhor desempenho:

```bash theme={null}
# Install pnpm globally
npm install -g pnpm

# Verify installation
pnpm --version
```

## Instalar o PostgreSQL

O banco de dados usado no AirysChat é o PostgreSQL. Use os seguintes comandos para instalar o PostgreSQL:

```bash theme={null}
sudo apt install -y postgresql postgresql-contrib
```

O procedimento de instalação criou uma conta de usuário chamada postgres, associada à função padrão do Postgres. Para usar o PostgreSQL, você pode fazer login nessa conta:

```bash theme={null}
sudo -u postgres psql
```

Instale as dependências do `libpq-dev` para o Ubuntu:

```bash theme={null}
sudo apt-get install -y libpq-dev
```

Inicie o serviço do PostgreSQL:

```bash theme={null}
sudo service postgresql start
```

Configure o PostgreSQL para iniciar automaticamente:

```bash theme={null}
echo 'sudo service postgresql start' >> ~/.bashrc
```

Crie um usuário de banco de dados:

```bash theme={null}
# Switch to postgres user and create a superuser
sudo -u postgres createuser --superuser $USER

# Set password for your user
sudo -u postgres psql -c "ALTER USER $USER PASSWORD 'password';"
```

## Instalar o Servidor Redis

O AirysChat usa o servidor Redis para atribuições de agentes e relatórios. Para instalar o `redis-server`:

```bash theme={null}
sudo apt-get install -y redis-server
```

Inicie o serviço do Redis:

```bash theme={null}
sudo service redis-server start
```

Configure o Redis para iniciar automaticamente:

```bash theme={null}
echo 'sudo service redis-server start' >> ~/.bashrc
```

Habilite o Redis para iniciar na inicialização do sistema:

```bash theme={null}
sudo systemctl enable redis-server.service
```

## Instalar o ImageMagick

O AirysChat usa o ImageMagick para processamento de imagens:

```bash theme={null}
sudo apt-get install -y imagemagick libmagickwand-dev
```

## Configurar o Git

Configure o Git com suas informações:

```bash theme={null}
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
```

## Configuração Específica para Windows

### Instalar o VS Code com a Extensão WSL

1. **Instale o Visual Studio Code** no Windows em [https://code.visualstudio.com/](https://code.visualstudio.com/)
2. **Instale a extensão Remote - WSL** do marketplace de Extensões
3. **Abra seu projeto no WSL** executando `code .` do seu terminal WSL

### Configurar Permissões de Arquivo

O WSL2 pode ter problemas de permissão de arquivo. Corrija-os:

```bash theme={null}
# Add to ~/.bashrc for better file permissions
echo 'umask 022' >> ~/.bashrc

# Configure Git to ignore file mode changes
git config --global core.filemode false
```

## Verificação do Ambiente

Verifique se todas as instalações estão funcionando corretamente:

```bash theme={null}
# Check all versions
ruby --version        # Should be 3.2.2
node --version         # Should be v20.x.x
pnpm --version        # Should show pnpm version
psql --version        # Should show PostgreSQL version
redis-cli ping        # Should output: PONG
convert --version     # Should show ImageMagick version
git --version         # Should show Git version
```

## Solução de Problemas Comuns

<Accordion title="A instalação do WSL falha">
  **Solução**: Certifique-se de que a virtualização está ativada na BIOS e que os recursos do Windows estão ativados corretamente:

  1. Reinicie o computador e entre nas configurações da BIOS
  2. Ative a virtualização Intel VT-x ou AMD-V
  3. Ative o Hyper-V nos Recursos do Windows
  4. Reinicie e tente a instalação novamente
</Accordion>

<Accordion title="O terminal do Ubuntu não abre">
  **Solução**: Redefina o WSL ou reinstale o Ubuntu:

  ```powershell theme={null}
  # Reset Ubuntu (will delete all data)
  wsl --unregister Ubuntu-22.04
  wsl --install -d Ubuntu-22.04
  ```
</Accordion>

<Accordion title="O PostgreSQL falha ao iniciar">
  **Solução**: Verifique se o serviço do PostgreSQL no Windows está causando conflito:

  ```bash theme={null}
  # Stop Windows PostgreSQL service first (run in Windows Command Prompt as Admin)
  net stop postgresql-x64-14

  # Then start WSL2 PostgreSQL
  sudo service postgresql start
  ```
</Accordion>

<Accordion title="Erros de permissão negada">
  **Solução**: Corrija as permissões de arquivos:

  ```bash theme={null}
  # For the entire project
  find . -type f -exec chmod 644 {} \;
  find . -type d -exec chmod 755 {} \;

  # For executable files
  chmod +x bin/*
  ```
</Accordion>

<Accordion title="Desempenho lento">
  **Solução**: Certifique-se de que o código está armazenado no sistema de arquivos do WSL2:

  ```bash theme={null}
  # Good: Store code here (fast)
  /home/username/projects/airyschat

  # Avoid: Storing code here (slow)
  /mnt/c/Users/Username/projects/airyschat
  ```
</Accordion>

Se você encontrar problemas durante a configuração:

* **Erros Comuns**: Verifique [Erros Comuns](/contributing-guide/common-errors)
* **Documentação do WSL2**: [Documentação da Microsoft para WSL](https://docs.microsoft.com/en-us/windows/wsl/)
* **Comunidade no Discord**: Junte-se ao nosso [Discord](https://discord.com/invite/cJXdrwS)
* **Issues do GitHub**: [Crie uma issue](https://github.com/airyschat/airyschat/issues)

***

Seu ambiente de desenvolvimento Windows com o WSL2 agora está pronto para o desenvolvimento do AirysChat! 🪟🐧
