Siyuan Notes em VPS: Edição Block-Level e Sync Privado

12 min de leitura Aplicações Web
Siyuan Notes em VPS: Edição Block-Level e Sync Privado

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 -d indicando 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.

  1. No Desktop ou Mobile App, vá em Ajustes > Sincronização.
  2. Clique em Adicionar Serviço de Sincronização.
  3. Selecione Cloud Sync.
  4. 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).

  1. Monte o diretório remoto do seu VPS localmente usando WebDAV.
  2. No cliente Siyuan, vá em Ajustes > Sincronização.
  3. Selecione WebDAV.
  4. 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/data diariamente 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 siyuan apenas 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.

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