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.
- 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).
- 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.
- 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
htopou 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 (
ufwouiptables). 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.