Guia Completo: Como Instalar Plane.so em VPS Linux

12 min de leitura DevOps e Automação
Guia Completo: Como Instalar Plane.so em VPS Linux

O que é o Plane.so e por que escolher uma instalação self-hosted?

O gerenciamento de projetos evoluiu significativamente nas últimas décadas, passando de planilhas estáticas para plataformas colaborativas em nuvem. No entanto, à medida que as equipes crescem e a sensibilidade aos dados aumenta, muitas organizações buscam alternativas ao SaaS (Software as a Service) tradicional. É nesse contexto que o Plane.so surge como uma solução robusta, open source e altamente personalizável para gestão de projetos ágeis.

Diferente de ferramentas proprietárias que mantêm seus dados em servidores terceirizados com políticas de uso restritas, instalar o Plane.so na sua própria VPS Linux oferece controle total sobre a infraestrutura, segurança e privacidade dos dados. Você evita lock-in de fornecedor, garante conformidade com regulamentações locais de proteção de dados e tem a flexibilidade de integrar a ferramenta diretamente com seu ecossistema interno de desenvolvimento.

O Plane.so utiliza uma stack moderna baseada em React.js para o frontend e Django REST Framework para o backend, garantindo performance e escalabilidade. Ele suporta estruturas de projeto como Roadmaps, Cycles (ciclos sprints), Modules e Projects, oferecendo uma experiência visual similar a ferramentas líderes do mercado, mas com a liberdade de ser self-hosted.

Requisitos de Infraestrutura para Instalação

Antes de iniciar o processo de instalação, é fundamental garantir que seu servidor atenda aos requisitos mínimos de hardware e software. O Plane.so é uma aplicação web moderna que consome recursos consideráveis durante a compilação do frontend e na execução das operações em tempo real.

  • Sistema Operacional: Ubuntu 20.04 LTS ou 22.04 LTS (recomendado para maior compatibilidade de pacotes).
  • CPU: Mínimo de 2 vCPUs. Para ambientes de produção com múltiplos usuários, recomenda-se 4 vCPUs.
  • Memória RAM: Mínimo de 4GB. O processo de build e o banco de dados consomem memória significativa; servidores com 8GB são ideais para evitar problemas de swap.
  • Armazenamento: Pelo menos 40GB de SSD. Isso inclui o sistema operacional, as imagens dos contêineres Docker, os volumes de dados do PostgreSQL e armazenamento para arquivos anexados (se não usar S3 externo).
  • Rede: Uma porta aberta na firewall (geralmente 80 ou 443) e um domínio DNS apontando para o IP da sua VPS.

Além dos recursos de hardware, você precisará ter acesso root ou sudo ao servidor e conhecer os conceitos básicos de administração Linux, como gerenciamento de serviços e configuração de firewalls.

Passo 1: Preparação do Ambiente Linux

A primeira etapa consiste em atualizar o sistema operacional e instalar as dependências básicas necessárias para o funcionamento do Docker e do Docker Compose. O Plane.so utiliza contêineres Docker para isolar seus serviços (backend, frontend, banco de dados, worker, etc.), facilitando a manutenção e atualização.

Inicie uma sessão SSH em sua VPS e execute os comandos abaixo para atualizar o repositório de pacotes e instalar ferramentas essenciais:

sudo apt update
sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential -y

Em seguida, vamos instalar o Docker Engine. A maneira mais confiável é utilizar os repositórios oficiais do Docker para garantir que você tenha a versão mais recente e segura:

sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verifique a instalação executando:

docker --version
docker compose version

Se as versões forem retornadas corretamente, seu ambiente Docker está pronto. Adicione o usuário atual ao grupo docker para evitar a necessidade de usar sudo em todos os comandos do Docker (opcional, mas recomendado):

sudo usermod -aG docker $USER
newgrp docker

Passo 2: Configuração do Banco de Dados e Armazenamento

O Plane.so requer um banco de dados PostgreSQL para armazenar metadados, usuários e configurações, além de um sistema de armazenamento para arquivos. Embora seja possível rodar tudo em containers únicos, a prática recomendada é usar volumes Docker persistentes para garantir que os dados não sejam perdidos ao reiniciar os contêineres.

Crie os diretórios que serão usados como volumes:

mkdir -p ~/plane-app/data/postgres
mkdir -p ~/plane-app/data/minio

O Plane.so usa o MinIO (uma implementação compatível com AWS S3) para armazenamento de objetos por padrão em instalações self-hosted simples. Certifique-se de que esses diretórios tenham as permissões adequadas, embora o Docker geralmente lide com isso através dos volumes.

Passo 3: Obtenção do Código e Configuração do Docker Compose

Agora, vamos baixar a configuração oficial do Plane.so. A equipe do Plane mantém um repositório dedicado para instalações self-hosted, que contém o arquivo docker-compose.yml otimizado.

cd ~
git clone https://github.com/makeplane/plane.git
cd plane/self-hosted

Dentro do diretório self-hosted, você encontrará o arquivo .env.example. Este arquivo contém todas as variáveis de ambiente necessárias para configurar a aplicação. Copie-o para criar sua configuração ativa:

cp .env.example .env

Abra o arquivo .env em um editor de texto, como o nano:

nano .env

Você precisará ajustar algumas variáveis críticas. Abaixo estão as configurações essenciais que devem ser modificadas:

  • DJANGO_SECRET_KEY: Gere uma chave secreta aleatória e segura para o Django. Nunca use a padrão. Você pode gerar uma usando: python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())". Copie e cole o resultado nesta variável.
  • WEB_URL: Defina o URL completo onde o Plane.so será acessado. Exemplo: http://seu-ip-publico ou https://plane.seudominio.com.
  • POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB: Defina credenciais fortes para o banco de dados. Anote-as, pois são necessárias para conexões externas se você quiser acessar o DB diretamente.
  • MINIO_ROOT_USER e MINIO_ROOT_PASSWORD: Defina credenciais para o serviço de armazenamento MinIO.

Além dessas, verifique as configurações de REDIS_HOST, CELERY_BROKER_URL e outras variáveis relacionadas ao Celery (processamento assíncrono), mantendo os valores padrão se você estiver seguindo a configuração básica.

Salve o arquivo (Ctrl+O, Enter) e saia do editor (Ctrl+X).

Passo 4: Execução dos Contêineres

Com a configuração pronta, o próximo passo é iniciar os serviços. O arquivo docker-compose.yml define diversos serviços, incluindo:

  • api: O backend Django.
  • web: O frontend React.
  • worker: Processamento de tarefas em segundo plano.
  • beat: Agendador de tarefas Celery.
  • broker (Redis): Mensageria.
  • db (PostgreSQL): Banco de dados.
  • minio: Armazenamento de objetos.

Para iniciar todos os serviços em modo detached (background), execute:

docker compose up -d

O primeiro comando levará algum tempo, pois o Docker precisará baixar todas as imagens base. Você pode monitorar o progresso com:

docker compose ps

Se todos os serviços estiverem com o status "Up", a instalação foi bem-sucedida do ponto de vista técnico. No entanto, antes de acessar a interface web, é necessário realizar a configuração inicial do banco de dados e criar o usuário administrador.

Passo 5: Configuração Inicial e Criação do Superusuário

O Plane.so requer uma etapa de migração de banco de dados e criação de superusuário que não é automatizada no docker-compose padrão por questões de segurança. Acesse o contêiner da API:

docker compose exec api bash

Dentro do shell do contêiner, execute as migrações do Django para criar as tabelas no PostgreSQL:

python manage.py makemigrations
python manage.py migrate

Agora, crie o usuário administrador. Você será solicitado a definir um nome de usuário, e-mail e senha:

python manage.py createsuperuser

Siga as instruções no terminal. Por exemplo:

  • Username: admin
  • Email address: [email protected]
  • Password: ********
  • Password (again): ********

Após confirmar que o superuser foi criado, saia do contêiner:

exit

Passo 6: Configuração de Segurança e Acesso Externo

Agora que a aplicação está rodando, é crucial garantir que ela seja acessível de forma segura. Se você estiver usando um domínio, o ideal é configurar um proxy reverso com Nginx ou Caddy para gerenciar certificados SSL/TLS (HTTPS). O Plane.so suporta HTTPS nativamente se as variáveis de ambiente forem configuradas corretamente.

Se você está apenas testando em uma VPS com IP público e não possui domínio, pode acessar diretamente via HTTP no porta padrão. No entanto, isso não é recomendado para produção devido à falta de criptografia.

Para usuários avançados que desejam configurar Nginx como reverse proxy, o arquivo de configuração deve redirecionar as requisições para a porta 8000 (porta interna da API) e 3000/8080 (frontend), dependendo da versão do compose. Verifique a documentação específica do Plane.so para o bloco de configuração Nginx exato, mas o conceito básico envolve:

  • Definir proxy_pass para os serviços internos.
  • Habilitar WebSocket support para funcionalidades em tempo real.
  • Configurar certificados Let's Encrypt via Certbot.

Se você estiver usando um firewall UFW no Ubuntu, libere as portas necessárias:

sudo ufw allow 'Nginx Full'
sudo ufw enable

Passo 7: Verificação e Primeiros Passos na Interface

Abra seu navegador e acesse o URL configurado no passo 3. Você verá a tela de login do Plane.so. Utilize as credenciais criadas no Passo 5 para entrar.

Após o login, você será direcionado para um wizard de configuração inicial onde poderá:

  1. Criar uma organização: Defina o nome da sua empresa ou equipe.
  2. Convidar membros: Envie convites por e-mail para seus colaboradores.
  3. Configurar projetos: Crie seu primeiro projeto, definindo se ele será usado para desenvolvimento de software, marketing, design, etc.

O Plane.so oferece uma interface Kanban intuitiva. Você pode criar "Issues" (tarefas), atribuí-las a membros, definir prioridades e adicionar descrições ricas em Markdown. A funcionalidade de "Cycles" permite organizar o trabalho em sprints temporais, essencial para metodologias ágeis.

Mantendo sua Instalação Atualizada

Manter o Plane.so atualizado é vital para segurança e novas funcionalidades. Como a instalação é baseada em Docker, as atualizações são relativamente simples:

  1. Pare os contêineres atuais: docker compose down.
  2. Puxe as novas imagens: docker compose pull.
  3. Reinicie os contêineres: docker compose up -d.

Sempre verifique o changelog oficial do Plane.so antes de atualizar em ambientes de produção para identificar breaking changes ou necessidades de migração de banco de dados adicionais.

Considerações Finais sobre Gestão de Projetos Self-Hosted

Instalar o Plane.so na sua VPS Linux é um investimento em autonomia digital. Ao assumir a responsabilidade pela infraestrutura, você ganha flexibilidade total para personalizar integrações, ajustar permissões e garantir que seus dados de projeto permaneçam sob seu controle exclusivo.

Embora a instalação inicial exija conhecimentos técnicos de Linux e Docker, os benefícios em termos de privacidade, custo a longo prazo (sem licenças por usuário) e integração com ferramentas DevOps internas superam o esforço inicial para muitas equipes de tecnologia.

Lembre-se de realizar backups regulares dos volumes do PostgreSQL e MinIO. Scripts simples de pg_dump e cópias de diretórios podem salvar sua organização em caso de falhas de hardware ou corrupção de dados. Com essa infraestrutura sólida, seu time estará pronto para gerenciar projetos complexos com a eficiência que o Plane.so proporciona.

Para mais detalhes sobre configurações avançadas, como integração com Slack, GitHub e customizações de tema, consulte a documentação oficial do projeto no GitHub. A comunidade ativa garante suporte contínuo e evolução constante da plataforma.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000