Este guia descreve como configurar um servidor de backup para armazenamento de backups Restic usando Rest Server
O Rest Server é mantido pela equipe do Restic.
Meus agradecimentos aos criadores pelo excelente trabalho que torna esta solução possível.
Eu, Leonardo Ribeiro, adaptei o script install.sh para ser totalmente compatível com FreeBSD.
Repositório adaptado: https://github.com/pmbatatais/backup-server.git
- Sistema operacional: FreeBSD 14.3
- Servidor de backup: Repositório REST Server. Leia a página oficial
- Armazenamento:
- 2 discos de 1TB em espelhamento (mirror) via ZFS
- Pool ZFS:
zroot - Dataset:
zroot/rest-server - Mountpoint:
/mnt/backups/rest-server - Compressão:
lz4
O REST Server é um servidor HTTP de alta performance que implementa a API REST do Restic, permitindo que clientes Restic façam backups remotos de forma segura e eficiente usando a URL rest:
O Restic é uma ferramenta de backup moderna e confiável, que oferece:
- 🔒 Criptografia ponta-a-ponta: os dados são criptografados no cliente antes de serem enviados, garantindo que ninguém consiga acessá-los sem a chave.
- 📦 Deduplicação de dados: arquivos repetidos não são duplicados, economizando espaço em disco.
Combinando REST Server + Restic, você cria um servidor de backup seguro, centralizado e eficiente, pronto para receber dados de clientes confiáveis.
No FreeBSD, use:
sudo pkg install -y gitgit clone https://github.com/pmbatatais/backup-server.git && cd backup-serverDê permissão de execução ao script:
sudo chmod +x install.shSe ainda não tiver criado o dataset, faça o seguinte:
# Criar dataset zfs
sudo zfs create -o mountpoint=/mnt/backups/rest-server -o compression=lz4 zroot/rest-server
# Verificar se o dataset está montado corretamente
sudo zfs list
💡 Dica: Este dataset será o diretório onde os Restic-Backups serão armazenados.
Rode o script adaptado para FreeBSD:
sudo sh install.sh📢 Observação: Executar
./install.shdireto pode não funcionar em alguns ambientes.
🤓 Use sempresh install.sh.
Você também pode modificar o caminho do repositório e a porta TCP:
sudo sh install.sh --path=/backups/repo_restic --port=8081Para permitir que um técnico ou usuário visualize os repositórios do REST Server sem alterar ou excluir nada, siga este passo a passo:
sudo pw groupadd sftpuserssudo pw useradd readonly -m -d /mnt/backups/rest-server -s /usr/sbin/nologin -G sftpusers
sudo passwd readonly
readonly: nome do usuário de exemplo/mnt/backups/rest-server: diretório dos repositórios/usr/sbin/nologin: impede login SSH interativo
No /etc/ssh/sshd_config adicione:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
%hgarante que o usuário fique preso ao próprio diretório home, sem acesso a outros diretórios do sistema
sudo chown -R root:sftpusers /mnt/backups/rest-server
sudo chmod -R 755 /mnt/backups/rest-serverO usuário pode navegar e baixar arquivos, mas não criar, alterar ou excluir.
Subdiretórios devem seguir a mesma regra de propriedaderoot:sftpusers
sftp readonly@ip_do_servidorO usuário consegue visualizar e baixar arquivos, mas tentativas de escrita serão negadas.
O usuário fica seguro e enjaulado, sem risco de modificar os repositórios do REST Server.
- Iniciar o serviço:
sudo service rest_server start- Parar o serviço:
sudo service rest_server stop- Verificar status:
sudo service rest_server status- Projeto Rest Server: https://github.com/restic/rest-server
- Ferramenta de Backup Restic: https://restic.net
- Tudo sobre ZFS: https://docs.freebsd.org/pt-br/books/handbook/zfs/
- Repositório adaptado para FreeBSD: https://github.com/pmbatatais/backup-server.git
Leonardo Ribeiro
Prefeitura Municipal de Batatais
Responsável técnico pela padronização dos sistemas de backup e infraestrutura de servidores.