n8n - Hospedar num Raspberry Pi 5 - Diogo Machado - Site Pessoal
n8n - Hospedar num Raspberry Pi 5
Destaque
15 de November de 2025
12 visualizações
26 min de leitura

n8n - Hospedar num Raspberry Pi 5

O n8n é uma plataforma de automação de fluxos de trabalho mas com a vantagem de ser open-source. Neste artigo explico o que me levou a instalar n8n e pequenos testes realizados.

O início da minha jornada com o n8n

Olá!

A plataforma n8n está em grande destaque neste momento. Com a evolução dos LLM, AI Agents e MCP, as automatizações estáticas, como o RPA tradicional, estão a passar por uma fase de transformação e evolução.

Na verdade, o n8n foi o catalisador deste pequeno hobby. Tudo começou quando decidi testá-lo, inicialmente como parte de um trabalho de investigação no meu emprego, com o objetivo de analisar o seu potencial de utilização profissional.
Percebi rapidamente que o n8n podia ser instalado localmente e de forma totalmente gratuita.

O meu objetivo inicial era simples: instalar o n8n localmente e permitir que colegas de trabalho pudessem utilizá-lo através da minha conta, caso tivessem interesse. Com esse propósito definido (mal sabia eu que estava a iniciar uma verdadeira viagem de descoberta), decidi começar por o hospedar num Raspberry Pi 5.

Após adquirir o Raspberry Pi, iniciei a instalação do sistema operativo oficial, Debian. Logo percebi que não o iria usar apenas para o meu objetivo principal. Queria segmentar ferramentas e ambientes e nada melhor do que usar Docker para gerir a instalação do n8n e de outras aplicações.

Através do Docker, instalei o n8n e criei a minha conta. Depois de o ter a funcionar e hospedado localmente, faltava apenas um passo: torná-lo acessível para os meus colegas. Para isso, adquiri o domínio diexperiment.work através da Cloudflare.

Com o domínio configurado, começaram a surgir novas ideias: a criação deste site (algo que sempre quis fazer), a configuração de uma VPN (WireGuard) para aceder a aplicações locais e à minha rede doméstica, além da instalação de ferramentas como o Home Assistant e o Nextcloud, sobre as quais irei escrever artigos futuramente.

Ainda tenho muitas outras ideias em mente, mas, em resumo, o n8n foi o catalisador deste percurso e hobby, através do qual aprendi imenso.

Daqui segue o resumo detalhado dos comandos para efetuar a instalação do docker e n8n:

Abaixo segue o resumo detalhado dos comandos para efetuar a instalação do Docker, Docker Compose e configurar o n8n.


1. Instalar o Docker

curl -sSL https://get.docker.com | sh

2. Adicionar o utilizador ao grupo Docker (e reiniciar)

sudo usermod -aG docker $USER
sudo reboot

3. Instalar o Docker Compose

sudo apt install docker-compose -y

4. Criar o diretório do projeto

mkdir ~/n8n && cd ~/n8n

5. Criar o ficheiro .env

nano .env

Conteúdo do .env:

N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=user # O utilizador
N8N_BASIC_AUTH_PASSWORD=password # A password
N8N_HOST=192.168.X.XXX  # Substituir pelo IP do Raspberry Pi
N8N_PORT=5678
N8N_SECURE_COOKIE=false

# Nota: Ainda não estão configuradas as variáveis para a base de dados.
# Como poderão reparar na estrutura do meu YAML, estou a utilizar PostgreSQL e PostgreSQL-Vector.
# Base de dados normal e vectorial.

6. Verificar o IP do Raspberry Pi

hostname -I

7. Criar o ficheiro docker-compose.yml

nano docker-compose.yml

Conteúdo:

services:
  automation:
    image: n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    env_file:
      - .env
    environment:
      - N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
    volumes:
      - ./n8n_data:/home/node/.n8n
      - ./custom_nodes:/home/node/.n8n/custom:ro
      - ./n8n_temp:/tmp/n8n
    depends_on:
      - postgresql-vector
    networks:
      - n8n_network
    entrypoint: ["/bin/sh","-c","rm -rf /tmp/n8n/* ; exec n8n start"]

  postgresql-vector:
    image: pgvector/pgvector:pg16
    container_name: n8n_postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    networks:
      - n8n_network

networks:
  n8n_network:
    driver: bridge

#Apenas por curiosidade, Entrypoint é apenas um comando para iniciar o container: faz a limpeza de uma pasta temporária que utilizo nas minhas automações no n8n.

8. Criar a pasta de dados e corrigir permissões

mkdir -p ~/n8n/n8n_data
sudo chown -R 1000:1000 ~/n8n/n8n_data

9. Iniciar os containers

docker-compose up -d

10. Verificar se está em execução

docker ps

11. Parar os containers

docker-compose down

Irei publicar outros artigos relacionados com os pequenos testes e automações que realizei no n8n. Este artigo serviu apenas para explicar um pouco do percurso que me levou à instalação e apresentar um breve resumo da minha configuração.

Tags

#n8n #docker #raspberry pi

Compartilhar

Posts Relacionados