Introdução ao Siyuan Notes: A Evolução da Wiki Pessoal
No cenário atual de ferramentas de produtividade e gestão do conhecimento, a necessidade de privacidade e controle total sobre os dados é mais crítica do que nunca. Ferramentas baseadas em nuvem oferecem conveniência, mas impõem riscos à soberania dos dados. Para profissionais de TI, desenvolvedores e entusiastas da tecnologia, o self-hosted notes surge como a solução definitiva, permitindo que você hospede sua própria base de conhecimento sem terceirizar a infraestrutura.
O Siyuan Notes destaca-se nesse ecossistema por ser uma plataforma de pensamento block-level (nível de bloco), compatível com o padrão Markdown e OpenDoc. Diferente dos editores tradicionais que tratam documentos como arquivos de texto únicos, o Siyuan estrutura o conteúdo em blocos independentes, permitindo referências cruzadas complexas, similar ao Obsidian ou Notion, mas com a vantagem de ser open-source e rodar localmente.
Neste tutorial técnico, detalhamos o processo de instalação do Siyuan Notes em um servidor Linux via VPS. O foco principal é configurar o ambiente para garantir um sync privado, utilizando o protocolo WebDAV ou sincronização direta via SSH/RSync, mantendo a integridade e a confidencialidade das suas anotações. Ao final, você terá uma instância funcional acessível via navegador, pronta para substituir seus sistemas de notas anteriores.
Pré-requisitos e Preparação do Ambiente
Antes de iniciar a instalação, é fundamental garantir que o servidor atenda aos requisitos mínimos de hardware e software. O Siyuan Notes é uma aplicação web moderna construída sobre tecnologias web nativas, mas sua camada de backend requer recursos computacionais adequados para indexação e manipulação de blocos.
Requisitos de Hardware Recomendados:
- CPU: 1 vCPU ou superior (arquitetura x86_64 ou ARM64).
- RAM: Mínimo de 512MB, mas recomendamos 1GB para garantir performance fluida durante a indexação de grandes bases de dados.
- Armazenamento: SSD é obrigatório. A velocidade de I/O impacta diretamente na latência da edição block-level. Mínimo de 5GB livres.
- Sistema Operacional: Ubuntu 20.04/22.04 LTS, Debian 11/12, ou CentOS/RHEL 8+ (recomendamos distribuições baseadas em Debian para facilitar o gerenciamento de pacotes).
Atualize o sistema e instale as dependências básicas necessárias para a compilação ou execução de binários e gerenciamento de processos.
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget unzip git jq -y
Além disso, para garantir que o serviço persista após reinicializações do servidor, configuraremos um gerenciador de processos. O systemd é o padrão na maioria das distribuições Linux modernas e será utilizado para controlar o daemon do Siyuan.
Download e Instalação do Binário
O Siyuan Notes oferece binários pré-compilados que podem ser executados diretamente no servidor sem a necessidade de compilar o código-fonte, economizando tempo e recursos. A instalação segue uma lógica simples: download do pacote, extração e permissão de execução.
Acesse a página de releases oficial no GitHub para verificar a versão mais recente. No momento da escrita deste tutorial, utilizaremos variáveis de ambiente para facilitar a manutenção futura. Substitua LATEST_VERSION pela versão atual (ex: 2.6.10).
# Defina a versão desejada
VERSION="2.6.10"
OS="linux"
ARCH="amd64" # Use "arm64" para servidores ARM (como Raspberry Pi ou AWS Graviton)
# Baixe o arquivo tar.gz
wget -O siyuan.tar.gz "https://github.com/siyuan-note/siyuan/releases/download/${VERSION}/siyuan-${VERSION}-${OS}-${ARCH}.tar.gz"
Após o download, crie um diretório dedicado para a instalação e extraia os arquivos. É uma boa prática de sysadmin isolar aplicações em seus próprios diretórios.
# Crie o diretório de instalação
sudo mkdir -p /opt/siyuan
cd /opt/siyuan
# Extraia o arquivo baixado
tar -xzf ~/siyuan.tar.gz --strip-components=1
Agora, defina as permissões corretas para que o usuário que executará o serviço tenha acesso de leitura e escrita aos binários.
sudo chmod +x siyuan
Configuração do Banco de Dados e Persistência
O Siyuan Notes utiliza SQLite como banco de dados principal. Por ser um arquivo único, a gestão dele é simples, mas requer atenção ao local onde será armazenado para garantir backups fáceis e performance. Recomendamos armazenar os dados em /var/lib/siyuan ou dentro do diretório de instalação, dependendo da política de backup da sua infraestrutura.
Crie o diretório de dados e atribua a propriedade ao usuário padrão (ou crie um usuário específico para segurança). Para fins didáticos, usaremos o usuário siyuan, mas em produção, considere criar um usuário sem login shell dedicado apenas para essa aplicação.
# Criação do usuário e grupo dedicado
sudo groupadd siyuan
sudo useradd -r -g siyuan -d /opt/siyuan -s /usr/sbin/nologin siyuan
# Criação do diretório de dados
sudo mkdir -p /var/lib/siyuan/data
sudo chown -R siyuan:siyuan /var/lib/siyuan
No primeiro início, o Siyuan criará automaticamente a estrutura de pastas necessária dentro do diretório de dados. A configuração inicial é feita através de variáveis de ambiente ou arquivo .env.
Criação da Unit Systemd para Automação
Para gerenciar o Siyuan Notes como um serviço profissional, criaremos uma unit file do systemd. Isso permite iniciar, parar e reiniciar a aplicação via comandos padrão do Linux, além de configurar recuperação automática em caso de falhas.
Crie o arquivo /etc/systemd/system/siyuan.service com as seguintes diretrizes:
[Unit]
Description=Siyuan Notes Server
After=network.target
[Service]
Type=simple
User=siyuan
Group=siyuan
WorkingDirectory=/opt/siyuan
ExecStart=/opt/siyuan/siyuan -d /var/lib/siyuan/data
Restart=on-failure
RestartSec=5
# Otimizações de memória e recursos (ajuste conforme necessário)
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
Explicação dos parâmetros críticos:
- WorkingDirectory: Define onde o binário será executado.
- ExecStart: Passa o flag
-dindicando o diretório de dados. Isso separa os binários dos dados, facilitando atualizações futuras (basta trocar o binário e manter os dados). - LimitNOFILE: Aumenta o limite de arquivos abertos, essencial para aplicações que manipulam muitos blocos e referências.
Carregue a nova configuração no systemd e inicie o serviço:
sudo systemctl daemon-reload
sudo systemctl enable siyuan --now
sudo systemctl status siyuan
Verifique se o serviço está ativo. O Siyuan ouvirá na porta 6806 por padrão.
Segurança e Configuração de Acesso
Por padrão, o Siyuan não exige senha no primeiro acesso para facilitar a configuração local. No entanto, ao expor a aplicação em uma VPS pública, isso representa um risco de segurança grave. É imperativo configurar autenticação e criptografia.
1. Configuração de Senha
Edite o arquivo de configuração ou defina a senha via variável de ambiente. A maneira mais robusta é através do arquivo .env no diretório de trabalho ou passar as variáveis na unit file.
Adicione ao arquivo /etc/systemd/system/siyuan.service, dentro da seção [Service]:
Environment="SIYUAN_TOKEN=sua_senha_muito_forte_aqui"
Reinicie o serviço para aplicar as mudanças:
sudo systemctl restart siyuan
Agora, ao acessar a interface web, você será imediatamente redirecionado para a tela de login.
2. Proteção com Nginx (Reverse Proxy)
Nunca exponha a porta 6806 diretamente à internet. Utilize o Nginx como um Reverse Proxy para gerenciar o tráfego HTTPS, compressão e cabeçalhos de segurança.
Instale o Nginx:
sudo apt install nginx certbot python3-certbot-nginx -y
Crie um arquivo de configuração no /etc/nginx/sites-available/siyuan:
server {
listen 80;
server_name notas.seudominio.com;
# Redireciona todo HTTP para HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name notas.seudominio.com;
ssl_certificate /etc/letsencrypt/live/notas.seudominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/notas.seudominio.com/privkey.pem;
# Otimizações para WebSockets (necessários para sync em tempo real)
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
location / {
proxy_pass http://127.0.0.1:6806;
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;
# WebSockets support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# Buffer sizes para uploads de arquivos grandes
client_max_body_size 50M;
}
}
Ative a configuração e obtenha o certificado SSL via Let's Encrypt:
sudo ln -s /etc/nginx/sites-available/siyuan /etc/nginx/sites-enabled/
sudo nginx -t
sudo certbot --nginx -d notas.seudominio.com
Com isso, seu sync privado está protegido por TLS 1.3 e acessível apenas através de domínio seguro.
Sincronização Privada: Configurando o Client
A verdadeira vantagem do Siyuan reside na sua capacidade de sincronizar entre múltiplos dispositivos (Desktop, Mobile, Web) mantendo os dados em seu servidor. Existem duas abordagens principais para isso:
Opção A: Sincronização via Cloud Privado (Recomendado)
O Siyuan oferece um protocolo de sincronização proprietário que funciona sobre HTTP/HTTPS. Para ativar, você precisa configurar o Cloud Sync.
- No Desktop ou Mobile App, vá em Ajustes > Sincronização.
- Clique em Adicionar Serviço de Sincronização.
- Selecione Cloud Sync.
- Preencha os dados:
- URL: https://notas.seudominio.com (o domínio configurado no Nginx).
- ID do Usuário e Senha: Os mesmos usados para login na web.
O cliente estabelecerá uma conexão segura com seu VPS. Todos os blocos, assets e metadados serão sincronizados via API criptografada em trânsito. Como o banco de dados está no seu servidor, você tem controle total sobre a retenção e backup.
Opção B: Sincronização via WebDAV (Para quem prefere arquivos locais)
Se você preferir ter os dados físicos sincronizados via protocolo padrão da indústria, pode usar o Siyuan em conjunto com um servidor WebDAV (como o davfs2 ou Nextcloud).
- Monte o diretório remoto do seu VPS localmente usando WebDAV.
- No cliente Siyuan, vá em Ajustes > Sincronização.
- Selecione WebDAV.
- Configure a URL do servidor WebDAV e as credenciais.
Esta opção é útil se você deseja manter uma cópia local exata dos arquivos para edição offline robusta, embora o Siyuan já possua excelente suporte a modo offline nativo no desktop.
Otimizações de Performance e Manutenção
Para garantir que sua instância de Siyuan Notes VPS permaneça rápida conforme a base de conhecimento cresce, aplique as seguintes práticas:
- Backup Automático: O Siyuan possui uma função nativa de backup em JSON. Configure um cron job no servidor para fazer dump do diretório
/var/lib/siyuan/datadiariamente para um storage externo (S3, Backblaze B2 ou outro VPS).
# Exemplo de script de backup simples
#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR="/backups/siyuan"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/siyuan-backup-$DATE.tar.gz /var/lib/siyuan/data
# Mantenha apenas os últimos 7 dias
find $BACKUP_DIR -name "siyuan-backup-*.tar.gz" -mtime +7 -delete
- Gestão de Assets: Imagens e arquivos anexados podem crescer rapidamente. Monitore o uso de disco com
du -sh /var/lib/siyuan/data/assets. Se necessário, migre os assets para um bucket S3 compatível usando plugins ou scripts externos. - Índices: O Siyuan reconstrói índices periodicamente. Evite reiniciar o serviço abruptamente durante picos de uso. Utilize
systemctl restart siyuanapenas em janelas de manutenção.
Conclusão: Produtividade e Soberania de Dados
A instalação do Siyuan Notes em um VPS Linux representa um investimento significativo em produtividade e segurança. Ao adotar esta solução self-hosted notes, você elimina a dependência de fornecedores externos, garante que seus dados sensíveis permaneçam sob seu controle absoluto e aproveita a poderosa engine de edição block-level.
Com a configuração correta de Reverse Proxy, autenticação robusta e sincronização privada, sua wiki pessoal estará pronta para suportar desde anotações diárias até projetos complexos de documentação técnica. Lembre-se sempre de manter o binário atualizado e os backups em dia para garantir a integridade do seu conhecimento.
A liberdade de hospedar suas próprias ferramentas é o primeiro passo para uma infraestrutura de TI verdadeiramente independente. Agora, basta começar a escrever.