AppFlowy Self-Hosted: Instale e Tenha Controle Total dos Seus Dados

9 min de leitura Infraestrutura
AppFlowy Self-Hosted: Instale e Tenha Controle Total dos Seus Dados

AppFlowy Self-Hosted representa uma evolução significativa na forma como profissionais de TI, desenvolvedores e equipes de infraestrutura gerenciam conhecimento. Diferente de soluções SaaS tradicionais que mantêm seus dados em servidores terceirizados, a abordagem self-hosted coloca o controle total da informação nas mãos do administrador do sistema. Para quem trabalha com infraestrutura DevOps, a necessidade de manter documentação técnica, runbooks e wikis internas acessíveis, seguras e auditáveis é crítica. Neste tutorial, vamos detalhar como instalar e configurar o AppFlowy em um ambiente Linux dedicado ou VPS, garantindo que sua hospedagem de dados esteja alinhada com os princípios de segurança e privacidade.

O AppFlowy é uma alternativa open source ao Notion, construída com Flutter e Rust. Sua arquitetura permite alta performance e baixa latência, características essenciais para ambientes corporativos onde o tempo de resposta da documentação afeta a produtividade da equipe. Ao optar por um servidor próprio, você elimina dependências de terceiros e garante conformidade com políticas internas de retenção de dados.

Pré-requisitos e Preparação do Ambiente

Antes de iniciar o processo de instalação, é fundamental garantir que o servidor atenda aos requisitos mínimos para rodar o AppFlowy Server. Embora a aplicação seja otimizada, ela depende de um banco de dados PostgreSQL e de serviços auxiliares para armazenamento de arquivos (se necessário). Recomendamos o uso de uma distribuição Linux estável, como Ubuntu 22.04 LTS ou Debian 12.

O primeiro passo é atualizar o sistema operacional e instalar as ferramentas básicas de gerenciamento. Conecte-se ao seu servidor via SSH e execute os seguintes comandos para garantir que o repositório esteja atualizado:

sudo apt update
sudo apt upgrade -y
sudo apt install curl git wget -y

Além disso, verifique a disponibilidade de memória RAM. O AppFlowy Server consome recursos moderados, mas ter pelo menos 2GB de RAM disponíveis (sem contar o uso do banco de dados) é recomendado para um desempenho fluido em produção.

Instalação do Banco de Dados PostgreSQL

O AppFlowy utiliza o PostgreSQL como seu motor principal de armazenamento. A instalação deve ser feita antes da aplicação para garantir que as credenciais e o esquema do banco estejam prontos. No Linux, a instalação é direta através do gerenciador de pacotes.

sudo apt install postgresql postgresql-contrib -y

Após a instalação, inicie o serviço e garanta que ele esteja ativo na inicialização do sistema:

sudo systemctl enable postgresql
sudo systemctl start postgresql

Agora, crie um usuário dedicado e um banco de dados para o AppFlowy. Isso segue a prática recomendada de princípio do menor privilégio, evitando o uso do superusuário postgres pela aplicação.

sudo -u postgres psql

Dentro do prompt do PostgreSQL, execute os comandos abaixo para criar o banco e o usuário. Substitua seusenha por uma senha forte e complexa:

CREATE DATABASE appflowy;
CREATE USER appflowy_user WITH ENCRYPTED PASSWORD 'seusenha';
GRANT ALL PRIVILEGES ON DATABASE appflowy TO appflowy_user;

Saia do prompt digitando \q.

Instalação e Configuração do AppFlowy Server

A instalação do servidor AppFlowy pode ser feita de várias formas, incluindo Docker, binários pré-compilados ou código fonte. Para ambientes de produção em VPS, a utilização de Docker Compose é a abordagem mais robusta e fácil de manter, pois isola as dependências e facilita atualizações futuras.

Crie um diretório para o projeto:

mkdir ~/appflowy-server
cd ~/appflowy-server

Crie um arquivo docker-compose.yml. Este arquivo definirá os serviços necessários: o servidor AppFlowy e, opcionalmente, um serviço de armazenamento se você precisar persistir arquivos locais (embora o padrão use S3 ou local mount).

nano docker-compose.yml

Cole a seguinte configuração no arquivo. Certifique-se de ajustar as variáveis de ambiente, especialmente APPFLOWY_POSTGRESQL_HOST e APPFLOWY_POSTGRESQL_PASSWORD:

version: '3.8'

services:
  appflowy-server:
    image: ghcr.io/appflowy-io/appflowy-server:latest
    container_name: appflowy_server
    restart: unless-stopped
    ports:
      - "7865:7865"
    environment:
      - APPFLOWY_POSTGRESQL_HOST=127.0.0.1
      - APPFLOWY_POSTGRESQL_PORT=5432
      - APPFLOWY_POSTGRESQL_USER=appflowy_user
      - APPFLOWY_POSTGRESQL_PASSWORD=seusenha
      - APPFLOWY_POSTGRESQL_DBNAME=appflowy
      - APPFLOWY_IO_DOMAIN=localhost # Altere para seu domínio público
    volumes:
      - appflowy-data:/data

volumes:
  appflowy-data:

Neste exemplo, estamos usando o PostgreSQL local. Se você estiver em uma arquitetura de microserviços onde o banco está em outro servidor, altere APPFLOWY_POSTGRESQL_HOST para o IP ou nome DNS do servidor de banco de dados.

Inicie os contêineres com:

docker compose up -d

Verifique se o serviço está rodando corretamente:

docker ps

O servidor estará acessível na porta 7865. Para produção, você não deve expor essa porta diretamente à internet. Utilize um proxy reverso.

Configuração do Proxy Reverso com Nginx

Para garantir segurança e permitir o uso de HTTPS (SSL/TLS), configuraremos o Nginx como um proxy reverso. Isso é padrão em qualquer wiki linux profissional ou serviço web hospedado internamente.

Instale o Nginx:

sudo apt install nginx certbot python3-certbot-nginx -y

Crie um arquivo de configuração no site-available. Substitua seu-dominio.com pelo domínio real que você aponta para esta VPS:

sudo nano /etc/nginx/sites-available/appflowy

Insira a seguinte configuração:

server {
    listen 80;
    server_name seu-dominio.com www.seu-dominio.com;

    location / {
        proxy_pass http://127.0.0.1:7865;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        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;
    }
}

Habilite a configuração e teste o Nginx:

sudo ln -s /etc/nginx/sites-available/appflowy /etc/nginx/sites-enabled/
sudo nginx -t

Se o teste for bem-sucedido, recarregue o serviço:

sudo systemctl reload nginx

Habilitando HTTPS com Let's Encrypt

A segurança de dados em trânsito é mandatória. Utilize o Certbot para obter certificados SSL gratuitos e configurá-los automaticamente no Nginx:

sudo certbot --nginx -d seu-dominio.com -d www.seu-dominio.com

O assistente perguntará se deseja redirecionar todo o tráfego HTTP para HTTPS. Escolha a opção 2 (Redirecionamento). Isso garante que todas as conexões com sua wiki linux sejam criptografadas.

Autenticação e Acesso Inicial

Ao acessar https://seu-dominio.com pela primeira vez, o AppFlowy iniciará um fluxo de registro. Como esta é uma instalação self-hosted, você será o primeiro administrador. Crie uma senha forte para a conta admin. Esta conta terá acesso total ao painel de administração e à gestão de usuários.

Para adicionar membros da equipe, vá em "Settings" > "Organization" > "Members". Envie convites por e-mail ou gere links de convite temporários. É recomendável configurar políticas de senha e autenticação de dois fatores (2FA) se o AppFlowy permitir essa configuração no painel admin, reforçando a segurança do servidor próprio.

Otimização e Manutenção Contínua

Para manter sua instalação de notas open source saudável e performática, existem algumas práticas recomendadas de manutenção.

Backups do Banco de Dados

O banco de dados é o coração da sua documentação. Configure um script de backup diário. Crie um arquivo backup.sh:

#!/bin/bash
DATE=$(date +"%Y%m%d")
BACKUP_FILE="/backups/appflowy_backup_$DATE.sql"
mkdir -p /backups

sudo -u postgres pg_dump appflowy > $BACKUP_FILE

# Mantenha apenas os últimos 7 backups
find /backups -name "appflowy_backup_*.sql" -mtime +7 -delete

Torne o script executável e adicione uma entrada no cron para rodar diariamente:

sudo chmod +x backup.sh
sudo crontab -e

Adicione a linha:

0 2 * * * /caminho/para/seu/backup.sh

Monitoramento de Recursos

Utilize ferramentas como htop, prometheus ou soluções integradas da sua plataforma de VPS para monitorar o uso de CPU e memória pelo contêiner do AppFlowy. Se você notar latência alta, verifique se o PostgreSQL está utilizando índices corretamente ou se há gargalos de I/O no disco.

Atualizações

O ecossistema AppFlowy evolui rapidamente. Para atualizar sua instalação, basta puxar a nova imagem e reiniciar os contêineres:

docker compose pull
docker compose up -d

Sempre verifique o changelog oficial antes de atualizar em ambientes de produção críticos para garantir compatibilidade com plugins ou integrações personalizadas.

Considerações Finais sobre Infraestrutura DevOps

A decisão de adotar o AppFlowy Self-Hosted vai além da simples troca de ferramenta; é uma escolha estratégica de infraestrutura. Ao hospedar sua própria documentação e wikis, você assume a responsabilidade pela disponibilidade, mas ganha em controle, privacidade e personalização.

Para equipes de DevOps, isso significa que a documentação técnica passa a ser tratada com o mesmo rigor de código: versionada (via backups), monitorada e segura. A integração com pipelines CI/CD pode ser feita para validar mudanças no conteúdo da wiki antes do deploy, caso haja automações específicas.

Lembre-se de ajustar as configurações de firewall (UFW ou iptables) para permitir apenas o tráfego nas portas 80 e 443, bloqueando o acesso direto à porta 7865. Isso fecha brechas de segurança comuns em instalações iniciantes.

Com esta configuração, você possui uma plataforma robusta, open source e totalmente sob seu controle para gerenciar o conhecimento da sua organização. A documentação técnica deixa de ser um custo operacional terceirizado e se torna um ativo interno seguro e eficiente.

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