{"nodes": [{"id": "docs_deployment", "label": "docs/deployment.md \u2014 production deploy to ambrosio (erosi.oier.ovh)", "file_type": "document", "source_file": "docs/deployment.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "entity_docker_compose_erosi", "label": "infra/docker-compose.erosi.yml \u2014 full prod stack bound to 127.0.0.1", "file_type": "document", "source_file": "docs/deployment.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "entity_caddy_erosi", "label": "infra/caddy/erosi.Caddyfile \u2014 Let's Encrypt TLS + route delegation to Kong/SvelteKit", "file_type": "document", "source_file": "docs/deployment.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "entity_deploy_erosi_script", "label": "infra/scripts/deploy-erosi.sh \u2014 idempotent rsync + migrate + caddy reload", "file_type": "document", "source_file": "docs/deployment.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "entity_db_init_roles_script", "label": "infra/db-init/00-role-passwords.sh \u2014 Supabase role bootstrap on fresh volume", "file_type": "document", "source_file": "docs/deployment.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "rationale_generate_sw_fallback", "label": "Why generateSW in prod: @vite-pwa/sveltekit 0.6.8 injectManifest hardcodes filename; SvelteKit blocks imports in service-worker.ts", "file_type": "document", "source_file": "docs/deployment.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "docs_deployment", "target": "entity_docker_compose_erosi", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "docs/deployment.md", "source_location": null, "weight": 1.0}, {"source": "docs_deployment", "target": "entity_caddy_erosi", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "docs/deployment.md", "source_location": null, "weight": 1.0}, {"source": "docs_deployment", "target": "entity_deploy_erosi_script", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "docs/deployment.md", "source_location": null, "weight": 1.0}, {"source": "docs_deployment", "target": "entity_db_init_roles_script", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "docs/deployment.md", "source_location": null, "weight": 1.0}, {"source": "docs_deployment", "target": "plan_fase_6", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "docs/deployment.md", "source_location": null, "weight": 1.0}, {"source": "rationale_generate_sw_fallback", "target": "concept_inject_manifest_pwa", "relation": "rationale_for", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "docs/deployment.md", "source_location": null, "weight": 1.0}], "hyperedges": []}