# Configuração Inicial do Servidor

Esta etapa prepara o sistema operacional antes de instalar qualquer programa. Siga os passos na ordem indicada.

---

## 1. Abrindo o Terminal como Administrador

Para executar os comandos abaixo, você precisa ter permissão de administrador (também chamado de *root*). Digite o comando abaixo e pressione **Enter**. Quando o sistema pedir a senha, digite-a e pressione **Enter** novamente (os caracteres não aparecem na tela — isso é normal).

```bash
sudo su
```

> **O que esse comando faz:** Eleva seus privilégios para administrador do sistema, permitindo fazer alterações importantes.

---

## 2. Atualizando o Sistema e Instalando Ferramentas Básicas

### 2.1 – Atualizar os programas instalados e remover o PHP

Execute o bloco de comandos abaixo. Ele vai atualizar todos os programas do sistema, remover o PHP (que não será usado) e instalar o agendador de tarefas `cron`.

```bash
apt update && apt upgrade && \
apt remove php* && \
apt install cron
```

> **Quando aparecer uma pergunta de confirmação**, digite `S` e pressione **Enter** para continuar.

### 2.2 – Instalar ferramentas de monitoramento e utilitários

O comando abaixo instala um conjunto de ferramentas úteis para gerenciar o servidor:

```bash
apt install ntp ntpdate crudini htop software-properties-common iperf logrotate bmon netcat-traditional mtr -y
```

**Para que serve cada ferramenta:**

<table id="bkmrk-ferramenta-o-que-faz"><thead><tr><th>Ferramenta</th><th>O que faz</th></tr></thead><tbody><tr><td>`ntp` / `ntpdate`</td><td>Mantém o horário do servidor sempre sincronizado com a internet</td></tr><tr><td>`crudini`</td><td>Facilita a edição de arquivos de configuração</td></tr><tr><td>`htop`</td><td>Mostra em tempo real o uso de CPU e memória do servidor</td></tr><tr><td>`software-properties-common`</td><td>Permite adicionar novas fontes de instalação de programas</td></tr><tr><td>`iperf`</td><td>Testa a velocidade da rede</td></tr><tr><td>`logrotate`</td><td>Gerencia e rotaciona os arquivos de log automaticamente</td></tr><tr><td>`bmon`</td><td>Monitora o tráfego de rede em tempo real</td></tr><tr><td>`netcat-traditional`</td><td>Ferramenta para testar conexões de rede</td></tr><tr><td>`mtr`</td><td>Diagnostica problemas de rota na rede</td></tr></tbody></table>

---

## 3. Configurando o Horário do Servidor

O servidor precisa ter o horário correto para funcionar bem. Os comandos abaixo definem o fuso horário como **Brasília (America/Sao\_Paulo)** e sincronizam o relógio com servidores de tempo oficiais do Brasil.

```bash
echo "America/Sao_Paulo" > /etc/timezone && \
dpkg-reconfigure --frontend noninteractive tzdata
```

```bash
service ntp stop && \
ntpdate a.ntp.br
```

```bash
service ntp start
```

> **O que acontece aqui:**
> 
> 1. O fuso horário é definido para Brasília
> 2. O serviço de tempo é parado temporariamente
> 3. O relógio é sincronizado com o servidor `a.ntp.br` (servidor oficial do NIC.br)
> 4. O serviço de tempo é reiniciado para manter a sincronização contínua

---

## 4. Configurando o Idioma do Sistema

Os comandos abaixo definem o idioma do sistema como **Português do Brasil (pt\_BR.UTF-8)**:

```bash
echo "LANG=\"pt_BR.UTF-8\"" >> /etc/environment && \
echo "LANGUAGE=\"pt_BR.UTF-8:en\"" >> /etc/environment && \
echo "" > /etc/default/locale
```

```bash
echo "LANG=\"pt_BR.UTF-8\"" >> /etc/default/locale && \
echo "LANGUAGE=\"pt_BR.UTF-8:en\"" >> /etc/default/locale && \
echo "pt_BR.UTF-8 pt_BR.UTF-8" >> /etc/locale.alias && \
dpkg-reconfigure --frontend noninteractive locales && \
locale-gen --no-purge --lang pt_BR
```

> **O que esse bloco faz:** Configura o sistema para exibir mensagens, datas, formatos numéricos e outros textos em português do Brasil. O inglês (`en`) fica como idioma secundário caso alguma tradução não esteja disponível.

---

## 5. Configurando a Segurança

Nesta etapa, dois recursos de segurança padrão do Linux são desativados: o **AppArmor** e o **UFW (firewall)**. Isso é necessário porque o ambiente Docker que será instalado posteriormente possui seu próprio sistema de controle de acesso, e manter esses dois ativos pode causar conflitos.

```bash
systemctl stop apparmor && \
systemctl disable apparmor
```

```bash
/usr/sbin/update-rc.d -f apparmor remove && \
ufw disable && \
reboot
```

> ⚠️ **Atenção:** O servidor será **reiniciado automaticamente** ao final deste passo (`reboot`). Após a reinicialização, você poderá continuar para a próxima etapa da instalação.

> **O que é cada recurso desativado:**
> 
> - **AppArmor:** Sistema de controle de acesso que restringe o que cada programa pode fazer. Será substituído pelo controle do Docker.
> - **UFW (Uncomplicated Firewall):** Gerenciador de firewall padrão do Ubuntu/Linux Mint. Também será gerenciado pelo Docker.

---

## Próximo Passo

Após a reinicialização do servidor, continue para: **[Instalação do DWService](https://kb.illimitar.pro/books/instalacao-do-servidor-standalone-via-docker-linux-mint-221-xia-ubuntu-2404-lts-noble/page/instalacao-do-dwservice)**