Skip to content

guilhermelaz/n8n-toolkit

Repository files navigation

N8N Toolkit API

API leve de ferramentas úteis para integração com N8N, desenvolvida com FastAPI.

Funcionalidades

  • Conversão de HTML para PDF: Converte conteúdo HTML em arquivos PDF de alta qualidade

Estrutura do Projeto

.
├── app/                  # Pacote principal da aplicação
│   ├── api/              # Camada de API
│   │   ├── models/       # Modelos de dados Pydantic
│   │   ├── routes/       # Rotas da API
│   │   └── app.py        # Configuração da aplicação FastAPI
│   ├── core/             # Configurações e componentes principais
│   │   ├── config.py     # Configurações da aplicação
│   │   └── security.py   # Implementação de segurança
│   ├── services/         # Serviços de negócio
│   └── utils/            # Utilitários
├── main.py               # Ponto de entrada principal
├── run.py                # Script para execução da aplicação
├── Dockerfile            # Configuração do Docker
├── docker-compose.yml     # Configuração do Docker Compose
├── requirements.txt      # Dependências Python
└── .env                  # Variáveis de ambiente

Requisitos

  • Python 3.8+
  • Dependências listadas em requirements.txt

Instalação

  1. Clone o repositório
  2. Instale as dependências:
pip install -r requirements.txt
  1. Configure a variável de ambiente copiando o arquivo .env.example para .env e definindo sua chave de API:
cp .env.example .env
# Edite o arquivo .env e defina sua API_KEY

Execução

Desenvolvimento

Para iniciar o servidor em modo de desenvolvimento:

python run.py

Ou diretamente com uvicorn:

uvicorn main:app --host 0.0.0.0 --port 8000 --reload

Produção

Para produção, recomenda-se usar o Docker:

docker-compose up -d

Alternativamente, pode-se usar o Gunicorn com workers Uvicorn:

gunicorn main:app -w 2 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000

Uso com N8N

Conversão de HTML para PDF

Endpoint: POST /convert/html-to-pdf

Headers:

  • X-API-Key: Sua chave de API (definida no arquivo .env)

Corpo da requisição:

{
  "html_content": "<html><body><h1>Teste</h1><p>Conteúdo do PDF</p></body></html>",
  "filename": "documento.pdf",
  "options": {
    "presentational_hints": true
  }
}

Resposta: Arquivo PDF

Monitoramento e Saúde

A API inclui um endpoint de verificação de saúde (health check) que pode ser usado para monitoramento:

Endpoint: GET /health

Resposta:

{
  "status": "healthy",
  "version": "0.1.0",
  "system_info": {
    "python_version": "3.11.4",
    "platform": "Linux-5.15.0-x86_64",
    "memory_usage": "45.2%",
    "disk_usage": "68.7%"
  }
}

Segurança

A API é protegida por uma chave de API que deve ser enviada no cabeçalho X-API-Key em todas as requisições protegidas. O endpoint de health check é público para permitir monitoramento sem autenticação.

Otimização de Recursos

Esta API foi projetada para ser leve e consumir poucos recursos, ideal para execução em VPS com limitações de RAM:

  • Limpeza automática de arquivos temporários
  • Limitação de recursos no Docker Compose
  • Uso eficiente de memória com WeasyPrint
  • Estrutura modular para facilitar a manutenção e expansão

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published