Ir para o conteúdo

Pré-requisitos e plataformas

Plataforma

O PEART tem como alvo o Linux. Os binários são estáticos, Go puro e cross-compilados para linux/amd64 e linux/arm64, então rodam sem runtime para instalar. macOS e os BSDs servem para desenvolvimento local; uma instalação de produção é Linux, porque o isolamento do sidecar e o endurecimento por systemd descritos aqui são mecanismos de Linux.

Usuários de sistema

Uma instalação direta usa três usuários de sistema distintos, um por processo, para que as permissões de arquivo sejam uma segunda linha atrás das fronteiras arquiteturais:

  • peart para a superfície interna,
  • peart-portal para o portal, um usuário separado que nunca lê o diretório de evidências nem a chave,
  • peart-render para o sidecar de renderização.

Diretórios

Os dados ficam sob /var/lib/peart (banco, evidências, renditions, relatórios, e o diretório de trabalho compartilhado que o renderizador usa). A configuração fica sob /etc/peart. A chave mestra fica em /etc/peart/master.key, fora do diretório de dados de propósito, para que um backup dos dados nunca a contenha. A página de configuração lista cada caminho.

O sidecar de renderização

O sidecar roda o WeasyPrint sob Python, então precisa de Python 3 e das dependências nativas do próprio WeasyPrint. No Debian e no Ubuntu, estes são os pacotes que a imagem de container do PEART instala, o que os torna o conjunto testado, e não um palpite:

sudo apt-get install --no-install-recommends \
    python3 python3-venv \
    libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b fonts-dejavu-core

O fonts-dejavu-core não é opcional na prática: um PDF renderizado num host sem nenhuma fonte sai em branco onde deveria haver texto. Em outra distribuição os nomes mudam (o Pango, o HarfBuzz e um pacote de fonte base); o conjunto é o mesmo.

O caminho por container não precisa de nada disso no host, porque a imagem já carrega.

Um proxy reverso para TLS

Os servidores HTTP do próprio PEART não terminam TLS. Uma instalação de produção fica atrás de um proxy reverso que termina TLS na frente das duas superfícies; a página de TLS cobre isso. Tenha um proxy (nginx, Caddy, ou uma borda como a Cloudflare) disponível.