Siyuan Notes VPS: Como Hospedar e Sincronizar Dados com Privacidade

10 min de leitura Aplicações Web
Siyuan Notes VPS: Como Hospedar e Sincronizar Dados com Privacidade

Siyuan Notes representa uma mudança de paradigma na forma como profissionais de TI e desenvolvedores gerenciam conhecimento técnico. Diferente de editores tradicionais que tratam o texto como um bloco monolítico, o Siyuan utiliza uma arquitetura block-level, onde cada parágrafo, imagem ou bloco de código é uma entidade independente com metadados próprios. Isso permite relacionamentos complexos entre notas, similar ao Obsidian, mas com a vantagem de ser nativamente auto-hospedável e possuir um motor de sincronização robusto.

Neste tutorial, você aprenderá a configurar um ambiente completo para o Siyuan Notes VPS, garantindo que seus dados permaneçam em sua infraestrutura privada. Vamos cobrir desde o provisionamento do servidor Linux até a configuração de bancos de dados SQLite otimizados e a implementação de um proxy reverso seguro com Nginx.

1. Planejamento da Infraestrutura e Requisitos do Sistema

Antes de iniciar a instalação, é crucial entender as exigências de recursos do Siyuan. Diferente de soluções leves como Trilium Notes VPS, que operam eficientemente em instâncias de 512MB RAM, o Siyuan é uma aplicação Electron-based (ou web-wrapper) que consome mais memória durante a inicialização e operações de indexação.

Para um uso profissional com sincronização privada e múltiplos blocos de mídia, recomendamos os seguintes requisitos mínimos:

  • CPU: 2 vCPUs ou superior para garantir resposta rápida na interface web.
  • RAM: Mínimo de 2GB. O consumo pode variar dependendo do tamanho da base de dados local.
  • Armazenamento: SSD é obrigatório. O Siyuan realiza muitas operações de leitura/escrita pequenas (I/O) ao salvar blocos individualmente. Discos HDD tradicionais causarão latência perceptível.
  • Sistema Operacional: Ubuntu 22.04 LTS ou Debian 12 são os ambientes mais estáveis para este stack.

Se você busca alternativas open-source com menor pegada de memória, considere o AppFlowy self-hosted ou o Logseq sync server, mas note que eles possuem arquiteturas de dados diferentes e não oferecem a mesma experiência de edição block-level rica do Siyuan.

2. Preparação do Servidor Linux

A primeira etapa envolve atualizar o sistema operacional e instalar as dependências básicas necessárias para rodar o servidor web e gerenciar o banco de dados local do Siyuan. Conecte-se ao seu VPS via SSH.

sudo apt update && sudo apt upgrade -y
sudo apt install curl wget unzip nginx certbot python3-certbot-nginx sqlite3 -y

O pacote sqlite3 é instalado por padrão na maioria das distribuições, mas garantir sua presença evita problemas caso a instalação falhe silenciosamente. O Siyuan utiliza SQLite como banco de dados principal para armazenar o conteúdo das notas localmente no servidor.

3. Download e Instalação do Binário do Siyuan

O Siyuan oferece binários pré-compilados para diversas plataformas. Para servidores Linux, a melhor opção é o arquivo linux-amd64.tar.gz. Verifique sempre a página oficial de releases para obter o link mais recente da versão estável.

Crie um diretório dedicado para a instalação e baixe o pacote:

sudo mkdir -p /opt/siyuan
cd /opt/siyuan
wget https://github.com/siyuan-note/siyuan/releases/download/3.1.6/siyuan-3.1.6-linux-amd64.zip
unzip siyuan-*.zip

Após a extração, você terá uma estrutura de arquivos contendo o executável principal siyuan, bibliotecas compartilhadas e ativos estáticos. Para facilitar a gestão do processo, vamos criar um usuário dedicado que não tenha privilégios de root.

sudo useradd --system --home-dir /opt/siyuan --shell /bin/false siyuan
sudo chown -R siyuan:siyuan /opt/siyuan

4. Configuração do Serviço Systemd

Para garantir que o Siyuan reinicie automaticamente em caso de falhas ou reinicializações do servidor, devemos configurá-lo como um serviço systemd. Crie o arquivo de unidade /etc/systemd/system/siyuan.service.

[Unit]
Description=Siyuan Notes Server
After=network.target

[Service]
Type=simple
User=siyuan
Group=siyuan
WorkingDirectory=/opt/siyuan
ExecStart=/opt/siyuan/bin/siyuan --port 6806 --host 127.0.0.1 --workspace /opt/siyuan/workspace
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Observe as flags no comando ExecStart:

  • --port 6806: Define a porta interna onde o servidor web do Siyuan escuta. Não expomos essa porta diretamente à internet.
  • --host 127.0.0.1: Limita o acesso apenas ao loopback, forçando o uso do proxy reverso (Nginx) para qualquer conexão externa.
  • --workspace: Especifica o diretório onde os dados das notas serão armazenados.

Crie o diretório de workspace e inicie o serviço:

sudo mkdir -p /opt/siyuan/workspace
sudo systemctl daemon-reload
sudo systemctl enable siyuan
sudo systemctl start siyuan
sudo systemctl status siyuan

Se o status retornar active (running), o servidor está operando localmente.

5. Configuração do Proxy Reverso com Nginx

A exposição direta de aplicações web através da internet é uma prática insegura. Utilizaremos o Nginx como um proxy reverso para gerenciar o tráfego HTTPS, compressão e cabeçalhos de segurança.

Crie um arquivo de configuração no diretório sites-available:

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

Insira a seguinte configuração, substituindo seu-dominio.com pelo seu domínio real:

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

    # Redirecionar todo o tráfego HTTP para HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name seu-dominio.com www.seu-dominio.com;

    # Configurações de SSL (serão preenchidas pelo Certbot)
    ssl_certificate /etc/letsencrypt/live/seu-dominio.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/seu-dominio.com/privkey.pem;

    # Segurança
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;

    # Client Body Size: Ajuste conforme necessário para upload de arquivos grandes
    client_max_body_size 50M;

    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;

        # WebSocket support para sincronização em tempo real
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Ative a configuração e teste o Nginx:

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

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

sudo systemctl reload nginx

6. Implementação de Sincronização Privada com TLS

A grande vantagem do Siyuan Notes VPS é a capacidade de sincronizar múltiplos clientes (desktop, mobile, web) sem depender dos servidores da Jiajia Tech. Para isso, precisamos garantir que a comunicação entre os clientes e o servidor seja criptografada.

Utilizaremos o Certbot para obter certificados SSL gratuitos via Let's Encrypt:

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

O assistente do Certbot irá modificar automaticamente a configuração do Nginx para incluir os caminhos dos certificados e forçar o redirecionamento HTTPS. Após a conclusão, verifique se o certificado está ativo acessando https://seu-dominio.com no navegador.

Configurando o Cliente para Sync Privado

No aplicativo Siyuan (desktop ou mobile), vá em Configurações > Sincronização > Adicionar Sincronização.

  1. Crie um novo serviço de sincronização do tipo Docker/Self-hosted ou S3 (dependendo da versão, o suporte a WebDAV ou S3 pode variar, mas o Siyuan suporta nativamente a sincronização via seu próprio servidor web configurado com a flag correta).
  2. No contexto de instalação local pura, a estratégia mais comum é utilizar o recurso de Sincronização via Cloud Storage (S3/MinIO) apontando para um bucket privado no mesmo VPS ou em outro serviço S3 compatível.
  3. Alternativamente, utilize o modo WebDAV se habilitado na configuração do servidor, apontando para https://seu-dominio.com/dav.

Para usuários avançados que desejam controle total sobre o fluxo de dados, a instalação de um servidor MinIO no mesmo VPS e a configuração do Siyuan para usar esse bucket como destino de sync garante que os blocos sejam versionados e replicados entre dispositivos sem passar por terceiros.

7. Backup e Manutenção da Base de Dados

Como o Siyuan armazena tudo em arquivos locais (SQLite + Markdown), o backup é simplificado, mas requer atenção à integridade do banco de dados. Nunca copie os arquivos enquanto o serviço está rodando.

Crie um script de backup simples:

#!/bin/bash
BACKUP_DIR="/opt/backups/siyuan"
DATE=$(date +%F_%H-%M)
mkdir -p $BACKUP_DIR

# Parar o serviço para garantir integridade do SQLite
sudo systemctl stop siyuan

# Compactar o workspace
tar -czf $BACKUP_DIR/workspace_$DATE.tar.gz /opt/siyuan/workspace

# Iniciar o serviço novamente
sudo systemctl start siyuan

# Remover backups antigos (manter últimos 7 dias)
find $BACKUP_DIR -name "workspace_*.tar.gz" -mtime +7 -delete

Agende este script no crontab para execução diária:

sudo crontab -e
# Adicionar a linha:
0 3 * * * /opt/scripts/siyuan-backup.sh

8. Considerações Finais sobre Performance e Segurança

Ao hospedar seu próprio Siyuan Notes VPS, você assume o controle total da privacidade dos seus dados. Diferente de soluções SaaS, onde você não sabe onde os blocos residem, aqui você gerencia a segurança física e lógica.

Recomendações adicionais para otimização:

  • Falha de Cache Nginx: Ative o cache estático no Nginx para imagens e assets JavaScript para reduzir a carga na aplicação Siyuan.
  • Monitoramento: Utilize ferramentas como htop ou Grafana/Prometheus para monitorar o consumo de RAM. O Siyuan pode ter picos de uso durante a indexação inicial de grandes volumes de dados.
  • Firewall: Certifique-se de que apenas as portas 80 (HTTP) e 443 (HTTPS) estejam abertas no seu firewall (ufw ou iptables). A porta 6806 deve permanecer bloqueada para o mundo externo.
sudo ufw allow 'Nginx Full'
sudo ufw enable

Com esta configuração, você possui uma instância robusta de notas block-level, sincronizável e privada. Para equipes que necessitam de funcionalidades colaborativas em tempo real além do Siyuan, vale a pena investigar integrações com o AppFlowy self-hosted para tarefas de gestão de projetos, mantendo o Siyuan focado na documentação técnica profunda.

A migração de dados de outras ferramentas, como Trilium Notes VPS ou Notion, pode ser feita através de exportação HTML/Markdown e importação direta no Siyuan, preservando a estrutura de blocos sempre que possível. A flexibilidade do formato de arquivo aberto garante que seu conhecimento permaneça acessível, mesmo se você decidir trocar de plataforma no futuro.

Agora que o servidor está configurado, acesse https://seu-dominio.com, crie sua primeira nota e experimente o poder da edição granular em um ambiente 100% sob seu controle.

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