Commit graph

324 commits

Author SHA1 Message Date
Esdras Renan
c3249e523d ci: adicionar job manual de diagnostico do Convex (env set/list + teste de registro) 2025-10-09 19:48:04 -03:00
Esdras Renan
24e6d7eb38 ci(convex): executar 'env set' e 'deploy' sempre (sem if baseado em env) 2025-10-09 19:42:13 -03:00
Esdras Renan
78aaab7f70 ci(convex): definir envs via 'convex env set' lendo /srv/apps/sistema/.env antes do deploy 2025-10-09 19:41:39 -03:00
Esdras Renan
754aa039c5 ci(web): garantir envs do Convex via docker service update (MACHINE_PROVISIONING_SECRET/TTL/FLEET) e restart 2025-10-09 19:33:26 -03:00
Esdras Renan
ae529bd3a2 ci(web/convex): usar diretório de build único por run (sistema.build.1760048648) para evitar EACCES em node_modules 2025-10-09 19:24:08 -03:00
Esdras Renan
fa695de653 ci(web): workspace server-only no runner (remover apps/desktop e reduzir pnpm-workspace.yaml)\n\n- Evita EACCES em apps/desktop/node_modules no passo de install.\n- Mantém repo intacto; altera apenas o diretório efetivo usado pelo deploy. 2025-10-09 19:19:43 -03:00
Esdras Renan
6700bd9f15 ci(web): instalar apenas o pacote 'web' e apontar Convex via overlay (NEXT_PUBLIC_CONVEX_URL=http://sistema_convex_backend:3210)\n\n- Evita EACCES em apps/desktop/node_modules no runner.\n- Bypassa DNS/Traefik para chamadas servidor->Convex dentro da stack. 2025-10-09 19:16:10 -03:00
Esdras Renan
d9ab863e76 feat(api): incluir detalhes de erro em /api/machines/register e /api/machines/heartbeat (facilita diagnostico em PROD) 2025-10-09 19:04:09 -03:00
Esdras Renan
833adcd8fa ci(convex): garantir que .env nao esteja presente e unset CONVEX_DEPLOYMENT no deploy\n\n- Sempre exclui .env* no rsync do job do Convex e renomeia .env se restar.\n- Exporta CI=true e faz unset de CONVEX_DEPLOYMENT dentro do container.\n- Evita conflito entre self-hosted (URL+ADMIN_KEY) e CONVEX_DEPLOYMENT. 2025-10-09 18:49:50 -03:00
Esdras Renan
2db7360c8b ci(convex): corrigir 'secrets' em if de job e usar step-if com env\n\n- Job roda em push main / workflow_dispatch / mudanças em convex/**.\n- Step de deploy só executa se os secrets estiverem definidos. 2025-10-09 18:47:13 -03:00
Esdras Renan
0459637429 ci(convex): relaxar condicao de execucao\n\n- Roda em workflow_dispatch (sem input), em push na main se secrets presentes, ou quando convex/** mudar.\n- Evita 'job skipped' quando for necessario publicar as functions. 2025-10-09 18:42:55 -03:00
Esdras Renan
8e1575e2a5 ci: evitar rsync delete de .next.old* e forcar fallback no convex_deploy 2025-10-09 18:33:00 -03:00
Esdras Renan
d34fad394f chore(convex): trigger functions deploy 2025-10-09 18:29:08 -03:00
Esdras Renan
51908ac14f ci(web): limpar .next antes do build para evitar EACCES de builds anteriores 2025-10-09 18:02:26 -03:00
Esdras Renan
8efa574b76 ci(stack): carregar .env antes do docker stack deploy (envsubst)\n\n- Usa set -o allexport && source .env para popular MACHINE_PROVISIONING_SECRET e afins.\n- Garante substituicao de variaveis no stack.yml em producao. 2025-10-09 17:57:18 -03:00
Esdras Renan
82a71ea092 fix(stack): remover envs duplicadas em convex_backend (itens unicos no array) 2025-10-09 17:50:13 -03:00
Esdras Renan
54687ddb0f chore(ci): trigger deploy apos rotacao do MACHINE_PROVISIONING_SECRET na VPS 2025-10-09 17:45:06 -03:00
Esdras Renan
0d2474b95e stack(convex): injetar MACHINE_PROVISIONING_SECRET/TTL/FLEET no container convex_backend via .env\n\n- As functions do Convex leem estes envs em runtime.\n- O deploy usa docker stack + substituicao de variaveis via .env do diretório. 2025-10-09 17:40:19 -03:00
Esdras Renan
c672a0d2e4 ci: adicionar diagnostico de permissoes e usar EFFECTIVE_APP_DIR no build\n\n- Passo 'Permissions diagnostic' lista donos/permissoes e test de escrita.\n- Build roda em para evitar /srv bloqueado. 2025-10-09 17:10:34 -03:00
Esdras Renan
2e92b427a6 ci: forcar uso de APP_DIR no /home/renan e copiar .env de /srv se existir\n\n- Determina EFFECTIVE_APP_DIR sempre como /home/renan/apps/sistema (evita quaisquer pastas com perms quebradas).\n- Copia .env de /srv/apps/sistema quando presente para manter segredos corretos. 2025-10-09 17:02:51 -03:00
Esdras Renan
5ff93a354f ci: copiar .env ao usar fallback de APP_DIR (HOME)\n\n- Evita excluir .env* quando copiando para o diretório alternativo.\n- Garante que o container tenha envs ao subir fora do /srv. 2025-10-09 16:59:18 -03:00
Esdras Renan
82c16533da ci(stack): usar APP_DIR efetivo e fallback para pasta no /home/renan\n\n- Determina diretório gravável (fallback /home/renan/apps/sistema) e usa em rsync e stack deploy.\n- stack.yml aceita com default para /srv/apps/sistema.\n- Evita necessidade de sudo e problemas de permissão no /srv. 2025-10-09 16:58:17 -03:00
Esdras Renan
c99c9bfe78 ci: rsync resiliente a perms (no-times + inplace + sudo fallback)\n\n- Adiciona --no-times e --inplace para evitar settime/mkstemp.\n- Tenta rsync normal; se falhar por permissão, repete com sudo -n.\n- Mantém filtros e delete como antes. 2025-10-09 16:51:29 -03:00
Esdras Renan
de746890e7 ci: rodar deploy sempre em push na main (sem depender do filtro)\n\n- Mantém workflow_dispatch, mas simplifica condicional do job web.\n- Evita ficar preso apenas no job de 'Detect changes'. 2025-10-09 16:41:06 -03:00
Esdras Renan
44779f54a5 docs: documentar seed automatico e variavel SEED_ENSURE_ONLY\n\n- .env.example: adiciona SEED_ENSURE_ONLY=true.\n- Runbook: explica que o container executa
> web@0.1.0 auth:seed /home/renan/sistema-de-chamados
> node scripts/seed-auth.mjs

 Usuario garantido (sem reset de senha): admin@sistema.dev
 Usuario garantido (sem reset de senha): cliente.demo@sistema.dev
 Usuario garantido (sem reset de senha): mariana.andrade@atlasengenharia.com.br
 Usuario garantido (sem reset de senha): fernanda.lima@omnisaude.com.br
 Usuario garantido (sem reset de senha): joao.ramos@atlasengenharia.com.br
 Usuario garantido (sem reset de senha): aline.rezende@atlasengenharia.com.br
 Usuario garantido (sem reset de senha): ricardo.matos@omnisaude.com.br
 Usuario garantido (sem reset de senha): luciana.prado@omnisaude.com.br
 Usuario garantido (sem reset de senha): gabriel.oliveira@rever.com.br
 Usuario garantido (sem reset de senha): george.araujo@rever.com.br
 Usuario garantido (sem reset de senha): hugo.soares@rever.com.br
 Usuario garantido (sem reset de senha): julio@rever.com.br
 Usuario garantido (sem reset de senha): lorena@rever.com.br
 Usuario garantido (sem reset de senha): renan.pac@paulicon.com.br
 Usuario garantido (sem reset de senha): thiago.medeiros@rever.com.br
 Usuario garantido (sem reset de senha): weslei@rever.com.br apos migracoes.
2025-10-09 16:35:23 -03:00
Esdras Renan
4e87911269 feat(auth): garantir usuarios padrao no start do container\n\n- Torna o seed idempotente por padrao (SEED_ENSURE_ONLY=true) sem resetar senhas existentes.\n- Executa
> web@0.1.0 auth:seed /home/renan/sistema-de-chamados
> node scripts/seed-auth.mjs

 Usuario garantido (sem reset de senha): admin@sistema.dev
 Usuario garantido (sem reset de senha): cliente.demo@sistema.dev
 Usuario garantido (sem reset de senha): mariana.andrade@atlasengenharia.com.br
 Usuario garantido (sem reset de senha): fernanda.lima@omnisaude.com.br
 Usuario garantido (sem reset de senha): joao.ramos@atlasengenharia.com.br
 Usuario garantido (sem reset de senha): aline.rezende@atlasengenharia.com.br
 Usuario garantido (sem reset de senha): ricardo.matos@omnisaude.com.br
 Usuario garantido (sem reset de senha): luciana.prado@omnisaude.com.br
 Usuario garantido (sem reset de senha): gabriel.oliveira@rever.com.br
 Usuario garantido (sem reset de senha): george.araujo@rever.com.br
 Usuario garantido (sem reset de senha): hugo.soares@rever.com.br
 Usuario garantido (sem reset de senha): julio@rever.com.br
 Usuario garantido (sem reset de senha): lorena@rever.com.br
 Usuario garantido (sem reset de senha): renan.pac@paulicon.com.br
 Usuario garantido (sem reset de senha): thiago.medeiros@rever.com.br
 Usuario garantido (sem reset de senha): weslei@rever.com.br apos  no stack.yml.\n- Garante admin e demais usuarios definidos sem acao manual, mesmo após reset do app.
2025-10-09 16:34:59 -03:00
Esdras Renan
43ef2bc239 ci: permitir workflow_dispatch com force deploy (web/convex)\n\n- Adiciona gatilho manual e inputs para forçar deploy sem depender do paths-filter.\n- Mantém filtros por push como antes.\n- Útil para reexecutar deploy após ajustes no próprio workflow. 2025-10-09 16:30:41 -03:00
Esdras Renan
d9b1a80513 ci: evitar chgrp/perms no rsync do runner\n\n- Adiciona --no-perms --no-owner --no-group ao rsync nos passos de sync.\n- Evita erros de chgrp/mkstemp quando o runner não tem permissão para alterar grupo/perms.\n- Mantém filtros e --delete como antes. 2025-10-09 16:26:29 -03:00
Esdras Renan
d031acf7b8 fix(prisma): garantir DATABASE_URL efetivo no runtime\n\n- Força resolução do DATABASE_URL ao instanciar PrismaClient com fallback seguro em produção para file:/app/data/db.sqlite.\n- Evita falha "Error code 14: Unable to open the database file" quando o runtime cai em path relativo do .env dentro do container.\n- Compatível com stack.yml (volume sistema_db montado em /app/data). 2025-10-09 16:23:04 -03:00
Esdras Renan
06c4efd173 fix(convex): evitar inline de segredo no build 2025-10-09 01:27:45 -03:00
Esdras Renan
c4e42ab49c fix(convex): normalizar campos opcionais ao criar sessão 2025-10-09 00:53:29 -03:00
Esdras Renan
474cd45b65 fix(stack): expor segredos de provisionamento ao convex 2025-10-09 00:14:00 -03:00
Esdras Renan
30928fd938 fix(desktop): ajustar store do agente para build 2025-10-08 23:28:08 -03:00
Esdras Renan
152550a9a0 feat: habilitar provisionamento desktop e rotas CORS 2025-10-08 23:07:59 -03:00
Esdras Renan
7569986ffc docs(agents): add local dev guide, env examples, CI/deploy notes 2025-10-08 21:42:40 -03:00
Esdras Renan
e11d19a128 fix(prisma): include binaryTargets for debian-openssl-1.1.x and 3.0.x to match runtime 2025-10-08 20:49:56 -03:00
Esdras Renan
f8c89c935c chore(deploy): trigger web redeploy (no-op change in stack.yml) 2025-10-08 20:31:44 -03:00
Esdras Renan
69dd060e79 chore(deploy): nudge stack to force redeploy (no-op comment) 2025-10-08 20:25:57 -03:00
Esdras Renan
969dbcf46d ci: use --no-frozen-lockfile for host build to tolerate minor devDep changes 2025-10-08 20:04:02 -03:00
Esdras Renan
7e6ea3c54d dev: add eslint-plugin-react-hooks to silence lint plugin missing during build 2025-10-08 19:46:54 -03:00
Esdras Renan
7fc2c4a56e ci: exclude/protect node_modules and .pnpm-store in rsync to avoid permission issues 2025-10-08 18:30:00 -03:00
Esdras Renan
3735e0d178 deploy: zero-downtime rollout (2 replicas, start-first, healthchecks) for web & convex; document in runbook 2025-10-08 18:27:07 -03:00
Esdras Renan
229fdca0b9 ci: gate web deploy on web paths; decouple convex deploy and sync APP_DIR only when convex/** changes 2025-10-08 18:21:52 -03:00
Esdras Renan
d4616f757a ci: always run stack deploy + service restarts (remove invalid hashFiles condition) 2025-10-08 18:09:49 -03:00
Esdras Renan
2659455a9f deploy: purge .next before build; CI also restarts Convex service to ensure fresh state 2025-10-08 18:03:36 -03:00
Esdras Renan
72c0cab07a chore(ci): trigger pipeline (smoke test 3) 2025-10-08 16:57:26 -03:00
Esdras Renan
27d78d6171 ci/deploy: force rollout of web service via RELEASE_SHA + service update to pick new code 2025-10-08 16:17:34 -03:00
Esdras Renan
8b1715a3da docs: add setup history (pitfalls & decisions) and link from README 2025-10-08 14:54:38 -03:00
Esdras Renan
e976fa2c6d docs: README tweak to trigger CI (smoke test) 2025-10-08 14:42:12 -03:00
Esdras Renan
980d7c1561 chore: add scripts/deploy-from-git.sh (pull-based deploy fallback on VPS) 2025-10-08 14:24:50 -03:00