DocFast Session 32: BorgBackup, CI/CD, infra docs, BUG-038 fixed
This commit is contained in:
parent
c2e71d8a88
commit
ffccb587e4
3 changed files with 184 additions and 44 deletions
|
|
@ -1,20 +1,16 @@
|
|||
{
|
||||
"phase": 1,
|
||||
"phaseLabel": "Build Production-Grade Product",
|
||||
"status": "not-launch-ready",
|
||||
"status": "near-launch-ready",
|
||||
"product": "DocFast — HTML/Markdown to PDF API",
|
||||
"currentPriority": "1) E2E Pro payment test (real Stripe payment). 2) Fix BUG-038 (low). 3) Marketing launch.",
|
||||
"currentPriority": "1) E2E Pro payment test (real Stripe payment). 2) CI/CD secrets setup. 3) Off-site backup (Storage Box). 4) Marketing launch.",
|
||||
"ownerDirectives_PRIORITY": "Process these IN ORDER. Do not skip.",
|
||||
"ownerDirectives": [
|
||||
"BUG-032 terminal gap is NOT fixed — still visible gap between terminal header and terminal window on mobile. Reopen and fix properly.",
|
||||
"Change SLA from 99.9% to 99.5% on landing page.",
|
||||
"Migrate from SQLite to PostgreSQL NOW, before launch. Required for future failover/clustering. This is a launch blocker.",
|
||||
"Stripe: owner has existing Stripe account from another project — use same account, just create separate Product + webhook endpoint for DocFast.",
|
||||
"STRIPE_WEBHOOK_SECRET is now in docfast.env. Deploy it to the server env WITHOUT reading the value. Use: source .credentials/docfast.env then SSH to set it.",
|
||||
"Stripe Product ID for DocFast: prod_TygeG8tQPtEAdE — webhook handler must filter by this product_id to ignore events from other projects on the same Stripe account.",
|
||||
"OFF-SITE BACKUPS with BorgBackup: Set up borgbackup so full recovery is possible even if the host dies. Store backups on a separate Hetzner Storage Box or similar. This is a launch blocker.",
|
||||
"DEPLOYMENT PIPELINE: Set up a proper CI/CD pipeline (Forgejo Actions or similar). Push to main → auto-deploy. No more manual SSH deploys. Launch blocker.",
|
||||
"REPRODUCIBLE INFRASTRUCTURE: Dockerize/script EVERYTHING so spinning up a second machine is trivial. Document the full setup so a new VM can be provisioned in minutes, not hours. Think: Docker Compose, env templates, automated provisioning. Launch blocker."
|
||||
"OFF-SITE BACKUPS: BorgBackup installed and running locally. Need Hetzner Storage Box for true off-site. Ask investor to provision one (~€3/mo for 100GB).",
|
||||
"CI/CD PIPELINE: Forgejo Actions workflow created. Needs 3 repository secrets added in Forgejo settings (SERVER_HOST, SERVER_USER, SSH_PRIVATE_KEY).",
|
||||
"REPRODUCIBLE INFRASTRUCTURE: DONE — setup.sh, docker-compose, configs, disaster recovery docs all in infrastructure/ directory."
|
||||
],
|
||||
"launchChecklist": {
|
||||
"emailVerificationReal": true,
|
||||
|
|
@ -22,17 +18,22 @@
|
|||
"dnsRecordsLive": true,
|
||||
"userAccountSystem": false,
|
||||
"proPaymentFlow": "partial",
|
||||
"proPaymentFlowNote": "Webhook handler deployed with signature verification + product_id filtering. Webhook URL configured in Stripe. Needs real E2E test payment to fully verify.",
|
||||
"proPaymentFlowNote": "Webhook handler deployed with signature verification + product_id filtering. Needs real E2E test payment.",
|
||||
"postgresqlMigration": true,
|
||||
"postgresqlMigrationNote": "DONE. 48 keys, 7 verifications, 3 usage records migrated. Live and verified.",
|
||||
"keyRecovery": true,
|
||||
"databaseBackups": true,
|
||||
"databaseBackupsNote": "BorgBackup: daily at 03:00 UTC, 7 daily + 4 weekly + 3 monthly retention. PostgreSQL dumps + Docker volumes + nginx + SSL + DKIM. LOCAL ONLY — needs off-site Storage Box.",
|
||||
"loadTested": true,
|
||||
"rateLimitsDataBacked": true,
|
||||
"landingPageHonest": true,
|
||||
"zeroConsoleErrors": true,
|
||||
"mobileResponsive": true,
|
||||
"securityAuditPassed": true
|
||||
"securityAuditPassed": true,
|
||||
"healthEndpointComplete": true,
|
||||
"cicdPipeline": "partial",
|
||||
"cicdPipelineNote": "Forgejo Actions workflow + rollback script created. Needs 3 secrets added to repo settings.",
|
||||
"reproducibleInfra": true,
|
||||
"reproducibleInfraNote": "Full infrastructure/ directory with setup.sh, docker-compose, nginx, postfix configs, disaster recovery README."
|
||||
},
|
||||
"loadTestResults": {
|
||||
"sequential": "~2.1s per PDF, ~28/min",
|
||||
|
|
@ -46,7 +47,10 @@
|
|||
"serverIP": "167.235.156.214",
|
||||
"sshKey": "/home/openclaw/.ssh/docfast",
|
||||
"smtp": "Postfix + OpenDKIM configured. DKIM-signed emails working. SPF/DKIM/DMARC DNS records live.",
|
||||
"email": "noreply@docfast.dev"
|
||||
"email": "noreply@docfast.dev",
|
||||
"backups": "BorgBackup daily at 03:00 UTC (local). PostgreSQL + Docker volumes + configs.",
|
||||
"cicd": "Forgejo Actions workflow (pending secrets setup)",
|
||||
"infraDocs": "infrastructure/ directory with full provisioning scripts"
|
||||
},
|
||||
"credentials": {
|
||||
"file": "/home/openclaw/.openclaw/workspace/.credentials/docfast.env",
|
||||
|
|
@ -61,11 +65,14 @@
|
|||
"openBugs": {
|
||||
"CRITICAL": [],
|
||||
"HIGH": [],
|
||||
"MEDIUM": ["BUG-036 (Stripe webhook URL - DONE by human)"],
|
||||
"LOW": ["BUG-038 (health endpoint missing DB status check)"],
|
||||
"MEDIUM": [],
|
||||
"LOW": []
|
||||
},
|
||||
"blockers": [],
|
||||
"blockers": [
|
||||
"E2E Pro payment test (needs investor to make real test payment)",
|
||||
"CI/CD secrets (3 secrets in Forgejo repo settings)",
|
||||
"Off-site backup (Hetzner Storage Box, ~€3/mo)"
|
||||
],
|
||||
"startDate": "2026-02-14",
|
||||
"sessionCount": 31
|
||||
"sessionCount": 32
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue