You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Fase 2: build da ISO na tkldev e testes end-to-end #5
Clonar em /turnkey/fab/products/opencloud na tkldev, make root.patched -> make (build/product.iso). Testar: firstboot interativo e preseed, login admin via https, upload de arquivo, turnkey-oc status/version/logs, update N-1 -> N com rollback em checksum corrompido, segredos únicos por instalação. Atenção: 30GB livres em disco na tkldev.
Build da primeira ISO iniciado na tkldev (log: /root/opencloud-build.log).
Itens a validar nesta fase, vindos das revisões de código/segurança:
Confirmar escopo do OC_INSECURE=true (deve afetar só o hop interno nginx↔opencloud, não a verificação TLS de chamadas outbound) — M5 da revisão de segurança
Testar ProtectSystem=strict + ReadWritePaths=/var/lib/opencloud no opencloud.service com systemd-analyze security e serviço real — L6
Validar formato/flags reais de opencloud init --insecure true e opencloud idm resetpassword no binário v7.3.0
Confirmar que o firstboot ordena 20regen antes do primeiro start do serviço (cenário do CRITICAL: IDM bootstrapando com senha de build — mitigado com rm do boltdb, validar na prática)
Headers de segurança nginx (HSTS etc.) — verificar o que o OpenCloud já emite antes de duplicar — L7
Fluxo update: instalar 7.2.2 de propósito e rodar turnkey-oc update para 7.3.0; testar rollback com sha256 corrompido
Dois fixes de build durante o processo: TERM ausente em ssh não-interativo (exportar TERM=xterm) e ordem do chown antes do opencloud init (commit ad24780).
Testes em container systemd-nspawn (squashfs da ISO):
✅ turnkey-oc version (delegação) → 7.3.0; turnkey-oc status OK
✅ turnkey-oc update version 7.2.2 (downgrade proposital): download + sha256 + install + switch OK; health check reprovou o downgrade e o rollback automático restaurou 7.3.0 com serviço saudável — mecanismo validado com binários reais
✅ turnkey-oc update → detectou 7.3.0 como latest e no-opou
✅ Teste negativo: sem DNS, update falha limpo sem tocar o symlink
Pendências desta issue (precisam de VM real com tty):
Firstboot interativo via di-live (inithooks.service exige tty1; no nspawn falha com status=208/STDIN — artefato do ambiente)
Instalação completa da ISO em VM (KVM/Proxmox)
Itens do comentário anterior (OC_INSECURE scope, ProtectSystem=strict, headers nginx)
✅ Firstboot interativo validado em VM real + fix do nginx (2026-07-23)
Primeira VM real bootada da ISO (live mode, Proxmox): inithooks interativos funcionaram de ponta a ponta — senha aplicada (YAML quoted), domínio gravado em OC_URL + /etc/hosts, opencloud ativo com todos os serviços internos em 127.0.0.1.
Bug encontrado e corrigido (PR #11): nginx failed no boot com SSL key values mismatch — corrida com o 15regen-sslcert da common (nginx leu o par cert/chave no meio da regeneração; o hook só reinicia serviços ativos). Fix: drop-in Restart=on-failure + restart incondicional do nginx no fim do 40opencloud. Verificado o diagnóstico na VM (modulus cert == chave pós-regen; restart manual → HTTPS 200 com UI).
sha256 c7a04cea9ffea9cae24880bff7031f061e8673915f765ef7c118fe771fd82d2c (conferido nos dois destinos)
Drop-in e opencloud.py novos confirmados dentro do squashfs
Também validado: troca de OC_URL pós-firstboot para domínio de teste sslip.io (issuer OIDC acompanha). Ideia registrada: subcomando turnkey-oc domain <fqdn> para automatizar isso.
Falta para fechar esta issue: instalar a ISO v2 no disco (di-live) e confirmar que o firstboot passa 100% sem intervenção — inclusive nginx de primeira.
Activity
marcos-mendez commentedon Jul 21, 2026
Build da primeira ISO iniciado na tkldev (log: /root/opencloud-build.log).
Itens a validar nesta fase, vindos das revisões de código/segurança:
OC_INSECURE=true(deve afetar só o hop interno nginx↔opencloud, não a verificação TLS de chamadas outbound) — M5 da revisão de segurançaProtectSystem=strict+ReadWritePaths=/var/lib/opencloudno opencloud.service comsystemd-analyze securitye serviço real — L6opencloud init --insecure trueeopencloud idm resetpasswordno binário v7.3.0turnkey-oc updatepara 7.3.0; testar rollback com sha256 corrompidomarcos-mendez commentedon Jul 21, 2026
✅ Primeira ISO buildada e testada (2026-07-21)
Build:
makena tkldev →build/product.iso(507 MB). Cópia nomeada:/mnt/isos/turnkey-opencloud-18.1-trixie-amd64.iso(sha2561556f6fd...).Dois fixes de build durante o processo:
TERMausente em ssh não-interativo (exportarTERM=xterm) e ordem do chown antes doopencloud init(commit ad24780).Testes em container systemd-nspawn (squashfs da ISO):
opencloudenginxativos; backend 9200 → HTTP 200; nginx 443 → 200/etc/inithooks.conf): 20regen regenerouopencloud.yaml(0640 opencloud:opencloud), 40opencloud aplicou senha (YAML quoted) e domínio (OC_URL + /etc/hosts), serviço reiniciado saudávelturnkey-oc version(delegação) → 7.3.0;turnkey-oc statusOKturnkey-oc update version 7.2.2(downgrade proposital): download + sha256 + install + switch OK; health check reprovou o downgrade e o rollback automático restaurou 7.3.0 com serviço saudável — mecanismo validado com binários reaisturnkey-oc update→ detectou 7.3.0 como latest e no-opouPendências desta issue (precisam de VM real com tty):
marcos-mendez commentedon Jul 23, 2026
✅ Firstboot interativo validado em VM real + fix do nginx (2026-07-23)
Primeira VM real bootada da ISO (live mode, Proxmox): inithooks interativos funcionaram de ponta a ponta — senha aplicada (YAML quoted), domínio gravado em OC_URL + /etc/hosts, opencloud ativo com todos os serviços internos em 127.0.0.1.
Bug encontrado e corrigido (PR #11): nginx failed no boot com
SSL key values mismatch— corrida com o15regen-sslcertda common (nginx leu o par cert/chave no meio da regeneração; o hook só reinicia serviços ativos). Fix: drop-inRestart=on-failure+ restart incondicional do nginx no fim do 40opencloud. Verificado o diagnóstico na VM (modulus cert == chave pós-regen; restart manual → HTTPS 200 com UI).ISO v2 rebuildada e distribuída:
/mnt/isos/turnkey-opencloud-18.1-trixie-amd64.isocephfs:iso/turnkey-opencloud-18.1-trixie-amd64.isoc7a04cea9ffea9cae24880bff7031f061e8673915f765ef7c118fe771fd82d2c(conferido nos dois destinos)Também validado: troca de OC_URL pós-firstboot para domínio de teste sslip.io (issuer OIDC acompanha). Ideia registrada: subcomando
turnkey-oc domain <fqdn>para automatizar isso.Falta para fechar esta issue: instalar a ISO v2 no disco (di-live) e confirmar que o firstboot passa 100% sem intervenção — inclusive nginx de primeira.