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