From f186b71ca51e83837db60de13322394bb5e6d348 Mon Sep 17 00:00:00 2001 From: murilo ijanc Date: Tue, 24 Mar 2026 21:41:06 -0300 Subject: Initial commit Import existing tesseras.net website content. --- pt-br/news/packaging-debian/index.html | 159 ++++++++++++++++++++++++++++++ pt-br/news/packaging-debian/index.html.gz | Bin 0 -> 2677 bytes 2 files changed, 159 insertions(+) create mode 100644 pt-br/news/packaging-debian/index.html create mode 100644 pt-br/news/packaging-debian/index.html.gz (limited to 'pt-br/news/packaging-debian') diff --git a/pt-br/news/packaging-debian/index.html b/pt-br/news/packaging-debian/index.html new file mode 100644 index 0000000..815152a --- /dev/null +++ b/pt-br/news/packaging-debian/index.html @@ -0,0 +1,159 @@ + + + + + + Empacotando o Tesseras para Debian — Tesseras + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ + + Tesseras + +

+ + +
+ +
+ +
+

Empacotando o Tesseras para Debian

+

2026-02-16

+

O Tesseras agora inclui um pacote .deb para Debian e Ubuntu. Este post explica +como compilar e instalar o pacote a partir do código-fonte usando cargo-deb.

+

Pré-requisitos

+

Você precisa de uma toolchain Rust funcional e das bibliotecas de sistema +necessárias:

+
sudo apt install build-essential pkg-config libsqlite3-dev
+rustup toolchain install stable
+cargo install cargo-deb
+
+

Compilando

+

Clone o repositório e execute a recipe just deb:

+
git clone https://git.sr.ht/~ijanc/tesseras
+cd tesseras
+just deb
+
+

Essa recipe faz três coisas:

+
    +
  1. Compila tesd (o daemon) e tes (o CLI) em modo release com +cargo build --release
  2. +
  3. Gera completions de shell para bash, zsh e fish a partir do binário tes
  4. +
  5. Empacota tudo em um arquivo .deb com +cargo deb -p tesseras-daemon --no-build
  6. +
+

O resultado é um arquivo .deb em target/debian/.

+

Instalando

+
sudo dpkg -i target/debian/tesseras-daemon_*.deb
+
+

Se houver dependências faltando, corrija com:

+
sudo apt install -f
+
+

Configuração pós-instalação

+

O script postinst cria automaticamente um usuário de sistema tesseras e o +diretório de dados /var/lib/tesseras. Para usar o CLI sem sudo, adicione seu +usuário ao grupo:

+
sudo usermod -aG tesseras $USER
+
+

Faça logout e login novamente, depois inicie o daemon:

+
sudo systemctl enable --now tesd
+
+

O que o pacote inclui

+ + + + + + +
CaminhoDescrição
/usr/bin/tesdDaemon do nó completo
/usr/bin/tesCliente CLI
/etc/tesseras/config.tomlConfiguração padrão (marcado como conffile)
/lib/systemd/system/tesd.serviceUnit systemd com hardening de segurança
Completions de shellbash, zsh e fish
+

Como o cargo-deb funciona

+

Os metadados de empacotamento ficam em crates/tesseras-daemon/Cargo.toml na +seção [package.metadata.deb]. Essa seção define:

+ +

O script postinst cria o usuário de sistema tesseras e o diretório de dados +na instalação. O script postrm remove o usuário, grupo e diretório de dados +apenas no purge (não na remoção simples).

+

Hardening do systemd

+

A unit tesd.service inclui diretivas de hardening de segurança:

+
NoNewPrivileges=true
+ProtectSystem=strict
+ProtectHome=true
+ReadWritePaths=/var/lib/tesseras
+PrivateTmp=true
+PrivateDevices=true
+ProtectKernelTunables=true
+ProtectControlGroups=true
+RestrictSUIDSGID=true
+MemoryDenyWriteExecute=true
+
+

O daemon roda como o usuário não-privilegiado tesseras e só pode escrever em +/var/lib/tesseras.

+

Deploy para um servidor remoto

+

O justfile inclui uma recipe deploy para enviar o .deb a um host remoto:

+
just deploy bootstrap1.tesseras.net
+
+

Isso compila o .deb, copia via scp, instala com dpkg -i e reinicia o +serviço tesd.

+

Atualizando

+

Depois de baixar novas mudanças, basta rodar just deb novamente e reinstalar:

+
git pull
+just deb
+sudo dpkg -i target/debian/tesseras-daemon_*.deb
+
+ +
+ +
+ + + + diff --git a/pt-br/news/packaging-debian/index.html.gz b/pt-br/news/packaging-debian/index.html.gz new file mode 100644 index 0000000..1e8d0a0 Binary files /dev/null and b/pt-br/news/packaging-debian/index.html.gz differ -- cgit v1.2.3