Para implantar o Directus em um VPS Linux, você precisará de um ambiente estável com recursos adequados. Este guia detalha o processo de instalação utilizando Docker e Docker Compose, focando em um VPS Ubuntu com PostgreSQL para o banco de dados e Nginx como proxy reverso. Assumimos que você já tem um VPS configurado e acesso SSH. O Directus, como alternativa self-hosted ao Contentful, oferece flexibilidade e controle total sobre seus dados, sendo uma excelente escolha para quem deseja substituir SaaS caros e proprietários. Recomendamos um servidor com no mínimo 4GB de RAM e 4 vCPUs para uma experiência fluida em produção.
Por que Escolher Directus em um VPS?
Controle Total e Flexibilidade
Optar pelo Directus em um VPS significa ter controle absoluto sobre sua infraestrutura de dados. Ao contrário de soluções SaaS, você não está à mercê de políticas de precificação, limitações de recursos ou mudanças de serviço. Com o Directus, seus dados permanecem no seu servidor, garantindo segurança e conformidade com regulamentações de privacidade. Essa abordagem open source permite customizações profundas e integrações que seriam impossíveis em plataformas fechadas.
Alternativa Gratuita e Poderosa
O Directus é uma alternativa gratuita e de código aberto que rivaliza com sistemas como Contentful e Strapi. Ele fornece uma interface administrativa intuitiva, um poderoso sistema de API (REST e GraphQL) e flexibilidade para modelar qualquer tipo de dado. Essa combinação o torna ideal para desenvolvedores e empresas que buscam uma solução robusta sem os custos recorrentes de licenças SaaS.
Requisitos de Sistema para Directus em Produção
Configuração Mínima Recomendada
Para rodar o Directus em um ambiente de produção, especialmente com o banco de dados PostgreSQL e um proxy reverso como Nginx, a configuração mínima recomendada é:
- Memória RAM: 4GB. Essencial para o Directus e o PostgreSQL operarem sem lentidão.
- vCPUs: 4 vCPUs. Para lidar com as requisições de API e a interface administrativa de forma eficiente.
- Armazenamento: 50GB SSD. Para o sistema operacional, Docker, imagens do Directus, logs e o banco de dados. O crescimento do banco de dados deve ser monitorado.
- Sistema Operacional: Ubuntu LTS (20.04 ou superior) é uma escolha sólida.
Durante testes, um container do Directus em repouso consome cerca de 300-500MB de RAM, mas sob carga moderada, esse valor pode facilmente ultrapassar 1GB. O PostgreSQL, dependendo do tamanho do banco de dados e da carga, pode consumir recursos adicionais significativos. É por isso que o piso de 4GB de RAM é crucial para a estabilidade.
Banco de Dados: PostgreSQL Essencial
O Directus suporta diversos bancos de dados, mas para produção, o PostgreSQL é altamente recomendado. Ele oferece performance, confiabilidade e recursos avançados que garantem a integridade e a velocidade do seu backend. Certifique-se de que o PostgreSQL esteja instalado e configurado corretamente no seu VPS ou em um servidor dedicado.
Passo a Passo: Instalando Directus com Docker Compose
Configuração do Ambiente Docker
Este tutorial assume que você já tem o Docker e o Docker Compose instalados em seu VPS Ubuntu. Se ainda não o fez, recomendamos seguir um guia de instalação do Docker para Ubuntu, como o disponível em nosso blog, que detalha o processo de instalação e configuração de segurança.
Criando o Arquivo Docker Compose
Crie um diretório para o seu projeto Directus, por exemplo, ~/directus. Dentro deste diretório, crie um arquivo chamado docker-compose.yml com o seguinte conteúdo. Este arquivo define os serviços do Directus e do PostgreSQL:
version: '3.8'
services:
directus:
image: directus/directus
container_name: directus
ports:
- "8055:8055"
volumes:
- ./uploads:/app/uploads
- ./config:/app/etc
environment:
DB_TYPE: postgresql
DB_HOST: db
DB_PORT: 5432
DB_DATABASE: ${DB_DATABASE:-directus}
DB_USER: ${DB_USER:-directus}
DB_PASSWORD: ${DB_PASSWORD:-your_db_password}
DB_SCHEMA: ${DB_SCHEMA:-public}
KEY: ${KEY:-your_secret_key}
SECRET: ${SECRET:-your_secret_key}
CORS_ENABLED: "true"
CORS_ORIGIN: "*"
restart: unless-stopped
depends_on:
- db
db:
image: postgres:14
container_name: directus_db
environment:
POSTGRES_DB: ${DB_DATABASE:-directus}
POSTGRES_USER: ${DB_USER:-directus}
POSTGRES_PASSWORD: ${DB_PASSWORD:-your_db_password}
volumes:
- ./postgres-data:/var/lib/postgresql/data
restart: unless-stopped
Configurando Variáveis de Ambiente
É crucial configurar as variáveis de ambiente para segurança e para que o Directus se conecte ao banco de dados. Crie um arquivo .env no mesmo diretório do docker-compose.yml:
DB_DATABASE=directus_prod
DB_USER=directus_user
DB_PASSWORD=SUA_SENHA_SEGURA_AQUI
KEY=SUA_CHAVE_SECRETA_AQUI
SECRET=SEU_SEGREDO_AQUI
Lembre-se de substituir SUA_SENHA_SEGURA_AQUI, SUA_CHAVE_SECRETA_AQUI e SEU_SEGREDO_AQUI por valores fortes e únicos. A chave e o segredo são usados para assinar tokens de autenticação.
Executando o Docker Compose
Com o docker-compose.yml e o .env configurados, você pode iniciar os contêineres:
docker-compose up -d
O comando -d executa os contêineres em segundo plano. Após alguns minutos, o Directus estará acessível na porta 8055 do seu VPS. Para monitorar os logs, use docker-compose logs -f directus.
Configurando o Nginx como Proxy Reverso
Por que Usar um Proxy Reverso?
Um proxy reverso como o Nginx é essencial para expor o Directus de forma segura e eficiente na internet. Ele gerencia as conexões SSL/TLS, distribui o tráfego e permite que você use um nome de domínio em vez de um endereço IP e porta. Se você ainda não configurou o proxy reverso em seu VPS, veja este guia que aborda a configuração do Nginx, aplicável a outros serviços web.
Configuração do Bloco de Servidor Nginx
Crie um arquivo de configuração para o Directus em /etc/nginx/sites-available/directus. Substitua seu_dominio.com pelo seu nome de domínio:
server {
listen 80;
server_name seu_dominio.com;
location / {
proxy_pass http://localhost:8055;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Em seguida, crie um link simbólico para ativar a configuração e teste-a:
sudo ln -s /etc/nginx/sites-available/directus /etc/nginx/sites-enabled/
sudo nginx -t
Se o teste for bem-sucedido, reinicie o Nginx:
sudo systemctl restart nginx
Agora, ao acessar seu_dominio.com no navegador, você será direcionado para a interface de configuração do Directus.
Erros Comuns e Soluções
Problemas de Conexão com o Banco de Dados
Se o Directus não consegue se conectar ao PostgreSQL, verifique:
- Se as variáveis de ambiente (
DB_HOST,DB_PORT,DB_USER,DB_PASSWORD,DB_DATABASE) no arquivodocker-compose.ymle no arquivo.envestão corretas e correspondem à configuração do serviçodb. - Se o container do PostgreSQL está rodando corretamente (
docker-compose ps). - Se há alguma regra de firewall bloqueando a comunicação entre os contêineres ou do contêiner do Directus para o contêiner do DB (geralmente não é um problema em Docker Compose na mesma máquina).
Direitos de Acesso em Volumes
Problemas com os diretórios uploads e config (ou postgres-data) podem impedir o Directus de iniciar ou salvar arquivos. Certifique-se de que o usuário que executa o Docker tenha permissão de escrita nesses diretórios. Às vezes, pode ser necessário ajustar as permissões com sudo chown -R <seu_usuario>:<seu_usuario> /caminho/para/seu/diretorio/directus.
Porta 8055 Ocupada
Caso a porta 8055 já esteja em uso por outro serviço no seu VPS, o container do Directus não iniciará. Você pode mudar a porta exposta no arquivo docker-compose.yml (ex: "8056:8055"), mas lembre-se de ajustar o proxy reverso do Nginx para apontar para a nova porta.
Comparativo: Directus vs. Outras Alternativas
O Directus se destaca em um mercado com diversas ferramentas open source. Abaixo, comparamos o Directus com outras soluções populares de gerenciamento de conteúdo e backend as a service:
| Recurso | Directus | Strapi | Payload CMS |
|---|---|---|---|
| Licença | AGPLv3 (Open Source) | MIT (Open Source) | MIT (Open Source) |
| Tipo de Banco de Dados | PostgreSQL, MySQL, SQLite, MariaDB | PostgreSQL, MySQL, SQLite, MariaDB, MongoDB | MongoDB, PostgreSQL, MySQL, SQLite |
| API | REST, GraphQL | REST, GraphQL | REST, GraphQL |
| Interface Admin | Intuitiva e customizável (Vue.js) | Moderna e extensível (React) | Customizável (React) |
| Self-Hosted | Sim (Recomendado) | Sim | Sim |
| Facilidade de Instalação | Fácil com Docker Compose | Fácil com npx/yarn | Fácil com npx/yarn |
| Ecossistema/Plugins | Em crescimento, foco em extensões | Extenso ecossistema de plugins | Em desenvolvimento |
O Directus brilha por sua abordagem de "data-first", onde o modelo de dados é central. Ele é uma excelente alternativa ao Contentful para quem busca controle e flexibilidade. Para quem procura uma solução mais voltada para CMS tradicional, Strapi pode ser uma opção, enquanto Payload CMS oferece uma experiência mais focada em desenvolvedores com TypeScript.
Perguntas Relacionadas
Directus é realmente gratuito?
Sim, o Directus é open source sob a licença AGPLv3, o que significa que você pode usá-lo, modificar e distribuir gratuitamente. Os custos associados são apenas para a infraestrutura onde você o hospeda, como o VPS.
Qual o melhor banco de dados para Directus em produção?
Embora o Directus suporte múltiplos bancos de dados, o PostgreSQL é o mais recomendado para ambientes de produção devido à sua robustez, performance e escalabilidade. Ele garante que seu backend opere de maneira confiável mesmo sob cargas pesadas.
Preciso saber programar para usar Directus?
Não necessariamente. A interface administrativa do Directus é bastante intuitiva e permite que usuários não técnicos configurem modelos de dados, gerenciem conteúdos e criem usuários. No entanto, para customizações avançadas ou desenvolvimento de extensões, conhecimentos de JavaScript e APIs são úteis.
Posso hospedar Directus em um plano de hospedagem compartilhada?
Geralmente não é recomendado. O Directus e seu banco de dados (como PostgreSQL) requerem um ambiente mais controlado e recursos dedicados que a hospedagem compartilhada não oferece. Um VPS oferece a flexibilidade e os recursos necessários para um desempenho ideal.
Otimizando seu Directus em Produção
Monitoramento Contínuo
É fundamental monitorar o uso de recursos do seu VPS (CPU, RAM, disco) e o desempenho do Directus. Ferramentas como Prometheus e Grafana podem ser integradas para obter métricas detalhadas. A Host You Secure oferece planos com recursos dedicados que facilitam esse monitoramento.
Backups Regulares
Implemente uma rotina de backups automáticos para o banco de dados PostgreSQL e os volumes do Directus (uploads, configurações). Isso garante a recuperação dos seus dados em caso de falha ou incidente. Pense em soluções de backup na nuvem ou em um servidor de armazenamento separado.
Conclusão: Seu Backend Poderoso e Auto-Hospedado
Implantar o Directus em um VPS é uma estratégia inteligente para empresas que buscam uma alternativa self-hosted poderosa e flexível aos serviços SaaS. Com este guia, você tem as ferramentas e o conhecimento necessários para configurar seu próprio backend, garantindo controle total sobre seus dados e APIs.
Recomendação de Plano Host You Secure
Para rodar o Directus em produção, com o PostgreSQL e Nginx, recomendamos nosso plano VPS Brasil Básico. Ele oferece 4GB de RAM e 4 vCPUs, configuração que utilizamos em testes e que se mostrou ideal para suportar o Directus e seus componentes sem gargalos. Subimos essa configuração em uma VPS Brasil Básico antes de publicar este guia, garantindo performance e estabilidade.
Garanta a infraestrutura perfeita para seu Directus:
Quero meu VPS Brasil Básico por R$ 99/mês
Leia também: Confira nossos guias de Docker
Comentários (0)
Ainda não há comentários. Seja o primeiro!