Data de Publicação

05/10/2026

Data de Modificação

21/09/2026

🚀 Guia Rápido de Deploy Expresso — alessiojr.com

Este projeto utiliza o modelo de Deploy Expresso Local: toda a compilação pesada do Quarto ocorre na sua máquina local com múltiplos núcleos e renderização incremental. O servidor remoto apenas recebe as diferenças (delta) via rsync, garantindo atualizações no ar em menos de 30 segundos.


⚡ Comandos Rápidos pelo Terminal (CLI)

1. Sincronizar Disciplina + Renderizar + Deploy (Ex: GPS ou IA2)

Quando você atualiza as aulas ou materiais de uma disciplina no Google Drive e quer sincronizar e colocar no ar:

./scripts/dev.sh sync-deploy gps
./scripts/dev.sh sync-deploy ia2
./scripts/dev.sh sync-deploy estagio

O que ele faz automaticamente: 1. Puxa do Google Drive (/mnt/arquivos/GDrive/Documents/Disciplinas/<modulo>). 2. Renderiza apenas a pasta da disciplina no Quarto. 3. Criptografa páginas restritas com StatiCrypt (respeitando o .staticrypt.json). 4. Envia para o servidor via rsync (preservando as outras disciplinas). 5. Cria o commit e dá push no Git.


2. Sincronizar e Compilar Localmente (Sem Deploy)

Para testar a disciplina localmente antes de publicar:

./scripts/dev.sh sync-render gps

3. Deploy Expresso Completo do Site

Quando você altera páginas gerais, posts do blog, projetos ou páginas de topo:

./scripts/dev.sh deploy

Compila as seções ativas, protege páginas confidenciais e faz upload via rsync.


4. Apenas Enviar para o Servidor (Já compilado)

Se você já rodou o quarto render antes e só quer subir:

./scripts/dev.sh upload

Ou diretamente:

./scripts/deploy.sh

5. Simulação de Deploy (Dry-Run / Teste Seguro)

Para testar a conexão com o servidor e ver a lista de arquivos modificados sem alterar nada:

./scripts/dev.sh dry-run

6. Ajuda e Descoberta de Módulos (CLI)

Para consultar os comandos e opções diretamente no terminal:

./scripts/dev.sh --help    # Exibe ajuda formatada com exemplos
./scripts/dev.sh modules   # Lista os módulos cadastrados e seus caminhos

⌨️ Autocompletar no Terminal (Tab Completion)

O projeto possui um script de autocompletar inteligente para Bash/Zsh em scripts/dev-completion.bash.

Como funciona:

  • Comandos: Digite ./scripts/dev.sh sy<TAB> → completa para sync-deploy ou sync-render.
  • Módulos: Digite ./scripts/dev.sh sync-deploy <TAB><TAB> → lista todas as disciplinas válidas (aed2, cg, clp, compiladores, gps, ia2, tec-programacao). Digite gp<TAB> → completa direto para gps.

Ativação rápida:

  • Sessão atual:

    source scripts/dev-completion.bash
  • Permanente (no ~/.bashrc):

    echo "source $(pwd)/scripts/dev-completion.bash" >> ~/.bashrc

💡 Dica de Atalho (alias dev):

Adicione no seu ~/.bashrc:

alias dev="/dados/projetos/sites/alessiojr.com/scripts/dev.sh"

O autocompletar já reconhece a palavra dev! Você poderá usar simplesmente:

dev sync-deploy gp<TAB>

🔒 Proteção de Páginas com Senha (StatiCrypt)

As áreas restritas (como avaliacoes/ nas disciplinas ou pessoal/) são criptografadas com o StatiCrypt:

Como funciona a separação Local vs Produção:

  1. Módulo Original no Google Drive (/mnt/arquivos/GDrive/Documents/Disciplinas/<modulo>):
    • O preview local (quarto preview, ex: http://localhost:4964/avaliacoes/) não pede senha.
    • Isso ocorre porque a variável PROTECT_SITE não está ativa no ambiente do módulo isolado.
  2. Site Principal de Produção (https://alessiojr.com/disciplines/<modulo>/avaliacoes/):
    • O site possui um arquivo .env local na raiz com PROTECT_SITE=true (ignorado pelo Git).
    • O script scripts/deploy.sh e o ./scripts/dev.sh sync-deploy garantem que scripts/protect-site.sh seja executado antes de qualquer upload via rsync.
    • A senha padrão é lida do .staticrypt.json de cada disciplina (ou de STATICRYPT_PASSWORD no .env).
    • Se rodar quarto preview no site principal, o script detecta o modo preview e suspende a criptografia para manter o desenvolvimento rápido.

⚙️ Configurações Remotas Utilizadas

  • Host: webserver.juninho.com.br
  • Usuário SSH: ubuntu
  • Chave: ~/.ssh/WebServer2025.pem
  • Usuário de Destino: alessio (usando sudo -u alessio rsync)
  • Destino: /home/alessio/public_html/_site/
  • Regra de Exclusão: --exclude-from='.quartoignore' (não deleta páginas de disciplinas arquivadas no servidor).
De volta ao topo