Este guia foi originalmente criado por ZaNgA. Agradecemos sinceramente a sua contribuição.
Este tutorial orienta-o através da configuração de um ZimaBoard como um servidor de laboratório doméstico compacto e fiável ou servidor edge:
- Instalar o Ubuntu LTS mais recente (minimal) no ZimaBoard
- Configurar dois discos SATA num espelho RAID‑1 usando
mdadm - Instalar e validar o Docker Engine
O guia assume familiaridade básica com a linha de comandos Linux e usa o Ubuntu Server LTS (minimal, sem interface gráfica).
1. Pré-requisitos
Hardware
- ZimaBoard (qualquer modelo)
- Teclado USB + monitor HDMI ou acesso série/SSH
- Pen USB (≥ 4 GB)
- 2× discos SATA (SSD ou HDD, mesmo tamanho recomendado)
- Cabos de alimentação e dados SATA (incluídos com o ZimaBoard)
Software
- Ubuntu Server latest LTS ISO (minimal)
- Ferramenta de criação: Balena Etcher, Rufus, ou
dd
2. Transferir Ubuntu Server LTS (Minimal)
- Vá à página oficial de transferências do Ubuntu
- Transfira o Ubuntu Server LTS (por exemplo, 24.04 LTS)
- Não são necessários pacotes adicionais — o ISO do servidor já é minimal
3. Criar o USB de Arranque
No Linux:
sudo dd if=ubuntu-24.04-live-server-amd64.iso of=/dev/sdX bs=4M status=progress oflag=sync |
Substitua /dev/sdX pelo seu dispositivo USB.
No Windows/macOS:
- Use Balena Etcher ou Rufus
4. Instalar o Ubuntu no ZimaBoard
- Insira a pen USB no ZimaBoard
- Ligue-o e pressione DEL ou F7 para entrar na BIOS
- Defina o USB como primeiro dispositivo de arranque
- Guarde e reinicie
Escolhas do Instalador
- Idioma e teclado: conforme preferência
- Rede: DHCP (predefinição)
- Proxy: deixar vazio
- Mirror: mirror predefinido do Ubuntu
Configuração de Armazenamento (Importante)
- Selecione Disposição de armazenamento personalizada
- Instale o Ubuntu apenas no eMMC interno
- NÃO formate ainda os discos SATA
Disposição típica:
/no eMMC- Sem swap (opcional)
Proceda com a instalação e reinicie.
5. Ativar o Ubuntu Pro (Plano Gratuito)
O Ubuntu Pro fornece manutenção de segurança estendida (ESM) e recursos adicionais de endurecimento. Para uso pessoal e em pequena escala, o Ubuntu Pro é gratuito para até 5 máquinas.
5.1 Obter um Token Gratuito do Ubuntu Pro
- Visite o site do Ubuntu Pro
- Inicie sessão com uma conta Ubuntu One
- Copie o seu token do Ubuntu Pro
5.2 Anexar o Ubuntu Pro
No ZimaBoard:
sudo pro attach <YOUR_TOKEN_HERE> |
Verificar estado:
pro status |
Deverá ver esm-infra e esm-apps ativados.
5.3 Ativar Serviços Recomendados
sudo pro enable esm-infra esm-apps |
Opcional (recomendado para servidores):
sudo pro enable livepatch |
Livepatch permite correções de segurança do kernel sem reiniciar.
5.4 Atualizar o Sistema
sudo apt update && sudo apt full-upgrade -y |
6. Atualizar o Sistema Base
Inicie sessão e atualize:
sudo apt update && sudo apt full-upgrade -y |
7. Identificar os Discos SATA
Listar dispositivos de bloco:
lsblk -o NAME,SIZE,TYPE,MODEL |
Exemplo:
sda 1.8T disk Samsung_SSD |
Vamos espelhar /dev/sda e /dev/sdb.
8. Instalar Ferramentas RAID
sudo apt install -y mdadm |
Durante a instalação, escolha Sim quando perguntado para iniciar arrays RAID automaticamente.
9. Criar o Espelho RAID‑1
Limpar Assinaturas Existentes (Recomendado)
sudo wipefs -a /dev/sda |
Criar o Array
sudo mdadm --create /dev/md0 \ |
Monitorizar progresso de sincronização:
cat /proc/mdstat |
10. Criar um Sistema de Ficheiros
Formatar o array (exemplo: ext4):
sudo mkfs.ext4 /dev/md0 |
Criar um ponto de montagem:
sudo mkdir -p /srv/data |
Montar:
sudo mount /dev/md0 /srv/data |
11. Persistir a Configuração RAID
Guardar configuração mdadm
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf |
Persistir a Montagem
Obter UUID:
blkid /dev/md0 |
Editar /etc/fstab:
sudo nano /etc/fstab |
Adicionar:
UUID=<uuid> /srv/data ext4 defaults,nofail 0 2 |
Testar:
sudo umount /srv/data |
12. Instalar Docker Engine
Instalar Dependências
sudo apt install -y ca-certificates curl gnupg |
Adicionar Chave GPG do Docker
sudo install -m 0755 -d /etc/apt/keyrings |
Adicionar Repositório Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ |
Instalar Docker
sudo apt update |
13. Configuração Pós-Instalação do Docker
Permitir que o seu utilizador execute Docker sem sudo:
sudo usermod -aG docker $USER |
Testar Docker:
docker run --rm hello-world |
14. (Opcional) Usar Armazenamento RAID para Docker
Recomendado para contentores e volumes:
sudo systemctl stop docker |
Editar configuração do Docker:
sudo nano /etc/docker/daemon.json |
Adicionar:
{ |
Reiniciar Docker:
sudo systemctl start docker |
15. Verificações de Saúde e Manutenção
Verificar estado do RAID:
cat /proc/mdstat |
Ativar monitorização SMART:
sudo apt install -y smartmontools |
16. Básicos do Docker Compose e Exemplos
O Docker Compose é a forma recomendada para definir e gerir aplicações multi-contentor no seu ZimaBoard.
Instalar Plugin do Docker Compose
Se seguiu a secção Docker Engine acima, o plugin Compose já está instalado.
Verificar:
docker compose version |
17.1 Criar uma Disposição de Diretório Padrão
Usar o array RAID‑1 para dados persistentes é a melhor prática:
sudo mkdir -p /srv/data/compose |
Cada aplicação obtém a sua própria pasta:
/srv/data/compose/ |
17.2 Exemplo 1: Portainer (Interface de Gestão Docker)
Criar diretório:
mkdir -p /srv/data/compose/portainer |
Criar docker-compose.yml:
version: "3.8" |
Iniciar:
docker compose up -d |
Aceder:
http://<zimaboard-ip>:9000 |
17.3 Exemplo 2: Servidor de Ficheiros Samba (no Armazenamento RAID)
Criar diretório:
mkdir -p /srv/data/compose/samba |
Criar pasta partilhada:
mkdir -p /srv/data/share |
docker-compose.yml:
version: "3.8" |
Iniciar:
docker compose up -d |
17.4 Exemplo 3: Uptime Kuma (Monitorização de Serviços)
Criar diretório:
mkdir -p /srv/data/compose/uptime-kuma |
docker-compose.yml:
version: "3.8" |
Aceder:
http://<zimaboard-ip>:3001 |
17.5 Exemplo 4: Monitorização Básica (cAdvisor + Node Exporter)
Criar diretório:
mkdir -p /srv/data/compose/monitoring |
docker-compose.yml:
version: "3.8" |
17.6 Comandos Comuns do Docker Compose
# Iniciar serviços |
18. Resultado
Agora tem:
- Ubuntu LTS minimal no eMMC
- Um array RAID‑1 espelhado para segurança dos dados
- Um Docker Engine totalmente funcional