ci: corrigir permissões do sqlite em produção

This commit is contained in:
Esdras Renan 2025-11-14 08:27:46 -03:00
parent 645829950c
commit 4cd026ef02
2 changed files with 23 additions and 0 deletions

View file

@ -216,6 +216,28 @@ jobs:
"$EFFECTIVE_APP_DIR"/ "$DEST"/ "$EFFECTIVE_APP_DIR"/ "$DEST"/
echo "Published build to: $DEST" echo "Published build to: $DEST"
- name: Ensure SQLite volume ownership (sistema_db)
run: |
set -e
VOLUME_NAME="sistema_sistema_db"
if ! docker volume inspect "$VOLUME_NAME" >/dev/null 2>&1; then
echo "Volume $VOLUME_NAME não encontrado; pulando ajuste de permissões"
exit 0
fi
echo "Ajustando permissões em $VOLUME_NAME..."
docker run --rm -v "$VOLUME_NAME":/data alpine:3 sh -lc '
set -e
chown -R 1000:1000 /data 2>/dev/null || true
chmod -R ug+rwX /data 2>/dev/null || true
if [ ! -e /data/db.sqlite ]; then
touch /data/db.sqlite
chown 1000:1000 /data/db.sqlite 2>/dev/null || true
chmod 660 /data/db.sqlite 2>/dev/null || true
fi
ls -ld /data && ls -l /data/db.sqlite
'
echo "Permissões do volume ajustadas com sucesso"
- name: Swarm deploy (stack.yml) - name: Swarm deploy (stack.yml)
run: | run: |
cd "$EFFECTIVE_APP_DIR" cd "$EFFECTIVE_APP_DIR"

View file

@ -33,6 +33,7 @@ Nota: este documento foi substituído por `docs/operations.md` e permanece aqui
- Verifique CORS/credenciais (`Access-Control-Allow-Credentials: true`). - Verifique CORS/credenciais (`Access-Control-Allow-Credentials: true`).
- Garante que estamos usando `cookies.set` para aplicar todos os cookies da Better Auth. - Garante que estamos usando `cookies.set` para aplicar todos os cookies da Better Auth.
- Refaça o handshake (feche reabra o desktop). Opcional: renomeie `EBWebView` para limpar cookies no Windows. - Refaça o handshake (feche reabra o desktop). Opcional: renomeie `EBWebView` para limpar cookies no Windows.
4. Se o app desktop exibir `Falha no registro (500)` com `attempt to write a readonly database`, o volume `sistema_sistema_db` ficou com permissões incorretas (SQLite não consegue gravar). Rode `docker run --rm -v sistema_sistema_db:/data alpine:3 sh -lc 'chown -R 1000:1000 /data && chmod -R ug+rwX /data'` ou simplesmente dispare um deploy (o workflow CI agora corrige as permissões antes de publicar).
## Requisitos ## Requisitos
- VPS com Docker/Swarm e Traefik já em execução na rede externa `traefik_public`. - VPS com Docker/Swarm e Traefik já em execução na rede externa `traefik_public`.