🐧 Tutorial de Instalação e Configuração
do Storj no Ubuntu Server
📚 Sumário
1. Introdução
2. Acesso Root
3. Pré-requisitos
4. Instalação do Docker
5. Configuração do Docker Compose
6. Criação e Autorização de Identidade Storj
7. Configuração do Storj com Docker
8. Solução de Problemas
9. Verificação de Funcionamento
10. Manutenção e Atualizações
11. Instruções Adicionais
12. Ferramentas Adicionais para Monitoramento e Gerenciamento
13. Verificação de Segurança e Boas Práticas
14. Backup e Recuperação
15. Conclusão
16. Próximos Passos
1. 📝 Introdução
O que são Storj, Docker e Docker Compose?
Storj: Uma plataforma de armazenamento descentralizado que utiliza uma rede distribuída
de nós para armazenar dados de forma segura e redundante.
Docker: Uma plataforma que permite a criação e execução de contêineres, que são
ambientes isolados para aplicativos.
Docker Compose: Uma ferramenta que permite definir e gerenciar multi-contêineres Docker
em um arquivo YAML.
Benefícios de usar Storj com Docker
Facilidade de Implementação: Docker simplifica a configuração e implantação do nó Storj.
Isolamento e Segurança: Os contêineres Docker são isolados, o que ajuda a manter o
ambiente seguro.
Portabilidade: Contêineres podem ser movidos e replicados facilmente em diferentes
servidores.
🔐 Segurança
Configurar um servidor Linux corretamente é essencial para evitar vulnerabilidades. Este tutorial
enfatiza boas práticas de segurança, como a configuração de um firewall e a execução de
comandos como root.
2. ⚙️Acesso Root
Antes de iniciar, é necessário garantir que você está operando como root:
1. Verifique o usuário atual com o comando whoami . Se a resposta não for "root", execute sudo
-i ou su para obter privilégios de root.
2. Modifique o prompt do terminal (PS1) para exibir um aviso visual quando não estiver logado
como root:
if [ "$EUID" -ne 0 ]; then
PS1='\[\033[0;31m\]\u@\h:\w\$ \[\033[0m\]'
fi
Essa modificação altera a cor do prompt para vermelho se você não estiver logado como
root.
3. 🛠️Pré-requisitos
Atualize o sistema
apt update && apt upgrade -y
Instale as ferramentas necessárias
apt install wget nano net-tools telnet zip ufw -y
🔥 Configuração do Firewall (UFW)
1. Configure o firewall para permitir conexões SSH, HTTP e HTTPS:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status
2. Isso aumenta a segurança do servidor, permitindo apenas o tráfego essencial.
4. 🐳 Instalação do Docker
Adicione o repositório oficial do Docker
curl -fsSL [Link] | gpg --dearmor -o
/usr/share/keyrings/[Link]
echo "deb [arch=$(dpkg --print-architecture) signed-
by=/usr/share/keyrings/[Link]]
[Link] $(lsb_release -cs) stable" | tee
/etc/apt/[Link].d/[Link] > /dev/null
Instale o Docker
apt update
apt install docker-ce docker-ce-cli [Link] -y
Verifique a instalação
docker --version
docker run hello-world
Se tudo estiver correto, o comando docker run hello-world deve mostrar uma mensagem
confirmando que o Docker foi instalado com sucesso.
5. ⚙️Configuração do Docker Compose
Instale o Docker Compose
wget -O /usr/local/bin/docker-compose
"[Link]
compose-$(uname -s)-$(uname -m)"
chmod +x /usr/local/bin/docker-compose
Verifique a instalação
docker-compose --version
6. 🛡️Criação e Autorização de Identidade Storj
Crie uma identidade para o nó Storj
identity create storagenode
Mova a identidade para um local seguro
mkdir -p ~/.config/storj/identity
mv storagenode_* ~/.config/storj/identity/
🔒 Criptografe as chaves de identidade
gpg --symmetric --cipher-algo AES256 ~/.config/storj/identity/[Link]
7. 🚀 Configuração do Storj com Docker
Crie os diretórios necessários
mkdir -p ~/storj/data
mkdir -p ~/storj/config
Defina as variáveis de ambiente e crie o arquivo docker-
[Link]
# version: '3.7'
services:
storagenode:
image: storjlabs/storagenode:latest
container_name: storagenode
restart: always
environment:
- STORJ_IDENTITY=/config/identity/[Link]
- STORJ_API_KEY=<YOUR_API_KEY>
- STORJ_IP=<YOUR_SERVER_IP>
- STORJ_EMAIL=<YOUR_EMAIL>
volumes:
- ./data:/data
- ./config:/config
ports:
- "28967:28967"
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
Substitua <YOUR_API_KEY> , <YOUR_SERVER_IP> e <YOUR_EMAIL> pelos valores corretos.
8. 🛠️Solução de Problemas
Erro de Permissão
Ajuste as permissões do diretório com chmod e chown :
chown -R $USER:$USER ~/storj
chmod -R 755 ~/storj
Problemas com Variáveis de Ambiente
Verifique se as variáveis estão corretamente definidas no [Link] .
Falha na Montagem de Volumes
Garanta que os diretórios existem e têm as permissões corretas.
9. 🔍 Verificação de Funcionamento
Verifique os logs para confirmar o funcionamento
docker logs -f storagenode
Verifique se o contêiner está em execução
docker ps
10. 🔄 Manutenção e Atualizações
Reforce a importância de backups regulares
Exemplo de Script de Backup Automatizado
#!/bin/bash
SOURCE_DIR="/home/usuario/storj/data"
BACKUP_DIR="/home/usuario/storj_backups"
DATE=$(date +%Y-%m-%d)
rsync -av --delete $SOURCE_DIR $BACKUP_DIR/$DATE >> ~/storj_backup_log.txt 2>&1
if [ $? -eq 0 ]; then
echo "Backup realizado com sucesso em $DATE" | mail -s "Backup Storj" seu-
email@[Link]
else
echo "Erro no backup em $DATE" | mail -s "Erro no Backup Storj" seu-
email@[Link]
fi
Atualizações de Software
Atualize Docker e Docker Compose regularmente:
apt update && apt upgrade docker-ce -y
wget -O /usr/local/bin/docker-compose
"[Link]
compose-$(uname -s)-$(uname -m)"
chmod +x /usr/local/bin/docker-compose
11. 📅 Instruções Adicionais
Configuração do Cron para Tarefas Automáticas
Agendando Backup Diário
Abra o editor do crontab :
crontab -e
Adicione a seguinte linha para agendar o backup diariamente às 2:00 AM:
0 2 * * * /home/usuario/scripts/backup_storj.sh
Agendando Atualizações Semanais
Adicione a seguinte linha ao crontab :
0 3 * * 7 apt update && apt upgrade docker-ce -y && wget -O
/usr/local/bin/docker-compose
"[Link]
compose-$(uname -s)-$(uname -m)" && chmod +x /usr/local/bin/docker-compose
Notificações de Falhas nas Atualizações
Configure notificações por e-mail para monitorar o sucesso ou falha das atualizações e
backups:
# Adicionar notificações no script de atualização
if [ $? -eq 0 ]; then
echo "Atualização realizada com sucesso em $(date)" | mail -s
"Atualização Docker Compose" seu-email@[Link]
else
echo "Erro na atualização em $(date)" | mail -s "Erro na Atualização
Docker Compose" seu-email@[Link]
fi
12. 🛠️Ferramentas Adicionais para Monitoramento
e Gerenciamento
Portainer: Interface Gráfica para Gerenciamento de
Contêineres
1. Instale e configure o Portainer para facilitar o gerenciamento dos contêineres Docker via uma
interface gráfica:
docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer --restart=always -v
/var/run/[Link]:/var/run/[Link] -v portainer_data:/data
portainer/portainer-ce
2. Acesso ao Portainer:
Após a instalação, acesse o Portainer pelo navegador:
[Link]
13. 🔐 Verificação de Segurança e Boas Práticas
Revisão de Configurações de Segurança
Verifique regularmente as configurações de segurança do servidor:
+++bash
ufw status
Revise os usuários do sistema e as permissões de diretórios, especialmente os relacionados
ao Storj e Docker.
Atualizações de Segurança
Mantenha o sistema e as ferramentas Docker sempre atualizados para proteger contra
vulnerabilidades conhecidas.
14. 💾 Backup e Recuperação
Backup Regular dos Dados do Storj
Faça verificações regulares para garantir que os backups estão sendo realizados
corretamente e que os dados podem ser restaurados em caso de falha.
Teste de Recuperação
Realize testes de recuperação periódicos para garantir que os dados e configurações podem
ser restaurados rapidamente em caso de falha do sistema.
15. 📋 Conclusão
Recapitulação dos Passos
Neste tutorial, cobrimos:
A instalação e configuração do Docker e Docker Compose no Ubuntu 24.04 LTS.
A criação e configuração de um nó Storj utilizando Docker.
Boas práticas de segurança e manutenção regular, incluindo backup e atualizações
automatizadas.
Configuração de acesso ao Storj via navegador e liberação das portas necessárias.
🌐 Acesso ao Storj via Navegador
Depois de configurar o Storj, você pode acessar o painel do Storj via navegador para
monitorar e gerenciar seu nó.
Liberação de Portas no UFW
Para garantir que o Storj possa ser acessado remotamente via navegador, é necessário
liberar a porta 14002 no firewall (UFW):
ufw allow 14002/tcp
Acesse o painel do Storj no navegador através do endereço:
[Link]
Substitua <YOUR_SERVER_IP> pelo IP público do seu servidor.
Sugestões de Ferramentas Adicionais
Além do Portainer, considere utilizar as seguintes ferramentas para melhorar a segurança,
monitoramento e gerenciamento do seu servidor:
1. Tailscale: VPN Simplificada para Redes Privadas
Tailscale permite criar uma VPN privada entre seus dispositivos, facilitando o acesso seguro
ao seu servidor de qualquer lugar.
Instalação do Tailscale
curl -fsSL [Link] | sh
tailscale up
2. Netdata: Monitoramento em Tempo Real
Netdata é uma ferramenta de monitoramento que oferece uma visão detalhada e em tempo
real do desempenho do seu servidor.
Instalação do Netdata
bash <(curl -Ss [Link]
Liberação de Porta no UFW
ufw allow 19999/tcp
Acesse o Netdata no navegador:
[Link]
3. Cockpit: Interface de Gerenciamento de Servidor
Cockpit é uma interface gráfica baseada em web que facilita a administração de servidores
Linux.
Instalação do Cockpit
apt install cockpit -y
Liberação de Porta no UFW
ufw allow 9090/tcp
Acesse o Cockpit no navegador:
[Link]
🔒 Boas Práticas Reforçadas
Segurança: Mantenha seu servidor seguro, utilizando ferramentas como Tailscale para VPN e
monitoramento em tempo real com Netdata.
Monitoramento e Gestão: Use o Netdata para monitoramento detalhado e o Cockpit para
gerenciamento fácil do servidor via interface gráfica.
Documentação e Log: Continue registrando todas as operações realizadas no servidor e
revise regularmente os logs de Netdata, Docker e Cockpit para garantir que tudo esteja
funcionando conforme o esperado.
🚀 Próximos Passos
Explorar Funcionalidades Avançadas: Aprofunde-se na documentação de ferramentas
como Netdata e Cockpit.
Automatização e Segurança: Considere integrar soluções como Tailscale para melhorar a
segurança do acesso remoto ao seu servidor, especialmente ao operar em ambientes de
produção.