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:
peartpara a superfície interna,peart-portalpara o portal, um usuário separado que nunca lê o diretório de evidências nem a chave,peart-renderpara 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.