Files
devsyncwrldandClaude Opus 5 9b7511f8bf
CI / Build & test (Node 20) (push) Canceled after 0s
CI / Build & test (Node 24) (push) Canceled after 0s
CodeQL / Analyze (javascript-typescript) (push) Canceled after 0s
OpenSSF Scorecard / Scorecard analysis (push) Canceled after 0s
Security / Secret scan (gitleaks) (push) Canceled after 0s
Security / Dependency scan (OSV-Scanner) (push) Canceled after 0s
Security / IaC/config scan (Trivy) (push) Canceled after 0s
Security / License compliance scan (Trivy) (push) Canceled after 0s
CI / Build & test (push) Canceled after 0s
chore(ops): version the release scripts
They existed only in /opt/ops on the VPS — no history, no backup. Rebuilding
that machine would have taken the whole publishing process with it, including
the Android signing flow written today.

/opt/ops now symlinks here so there is one copy rather than two that drift.
No secrets move: the scripts read tokens and the signing key from paths under
/root that stay on the VPS.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 20:21:00 -03:00
..

Scripts de operação da instância

Rodam na VPS, em /opt/ops, onde os arquivos são links simbólicos para esta pasta — o repositório é a única cópia de verdade. Antes disso eles existiam só na VPS, sem versão nem backup: uma reinstalação do servidor levaria junto todo o processo de publicação.

script o que faz
call-check.sh Diz se tem alguém em call. Roda antes de reiniciar o servidor.
release-desktop.sh Espelha o fork no GitHub e dispara a compilação dos instaladores de desktop.
release-android.sh Compila o APK no GitHub, assina na VPS e publica no Gitea.

O que estes scripts leem e não está aqui

Nada de segredo entra no repositório. Os arquivos abaixo ficam só na VPS, com permissão 600:

  • /root/.github-token — dispara e baixa os builds do GitHub.
  • /root/.gitea-token — publica os anexos das releases.
  • /root/android-signing/ — a chave que assina o APK, mais a senha dela.

A chave do Android merece atenção especial: ela é o que prova ao Android que uma atualização veio de nós. Se for perdida, ninguém consegue atualizar por cima — todo mundo tem que desinstalar e instalar de novo, e não existe recuperação. Mantenha uma cópia fora da VPS.