Compare commits
4 Commits
v0.4.0
...
f7b76d5370
| Author | SHA1 | Date | |
|---|---|---|---|
| f7b76d5370 | |||
| 4bb9763633 | |||
| a456d51f17 | |||
| ac3c4ffe36 |
@@ -0,0 +1,42 @@
|
|||||||
|
# deployment.toml — generated by define-deployment (launch-app SPEC §5.1, §6.6).
|
||||||
|
# Derived from the One Name 'ecomm' (§3.3); edit the toml, re-import to reconcile (§3.2.1).
|
||||||
|
|
||||||
|
[app]
|
||||||
|
name = "ecomm"
|
||||||
|
repo = "wiggleverse/wiggleverse-ecomm"
|
||||||
|
gitea_host = "https://git.wiggleverse.org"
|
||||||
|
version_source = { kind = "file", path = "VERSION" }
|
||||||
|
gitea_read_secret_ref = "wiggleverse-ecomm/ecomm-gitea-read-token"
|
||||||
|
|
||||||
|
[vm]
|
||||||
|
name = "ecomm-ppe"
|
||||||
|
zone = "us-central1-a"
|
||||||
|
project = "wiggleverse-ecomm"
|
||||||
|
machine_type = "e2-micro"
|
||||||
|
disk_gb = 10
|
||||||
|
service_user = "ecomm"
|
||||||
|
install_dir = "/opt/ecomm"
|
||||||
|
systemd_unit = "ecomm.service"
|
||||||
|
tunnel_through_iap = true
|
||||||
|
gcloud_config = "wiggleverse-ecomm"
|
||||||
|
|
||||||
|
[edge]
|
||||||
|
domain = "ecomm-ppe.wiggleverse.org"
|
||||||
|
# ecomm's health endpoint is /healthz (SD-0001 §6.4); body carries {status, version}.
|
||||||
|
health_url = "https://ecomm-ppe.wiggleverse.org/healthz"
|
||||||
|
|
||||||
|
# No DATABASE_PATH: ecomm runs Cloud SQL PostgreSQL (SD-0001 D-7/D-8) — the DSN is the
|
||||||
|
# ECOMM_DATABASE_URL secret reference below, minted by launch-app's provision-datastore.
|
||||||
|
[overlay] # non-secret env, plaintext (guide §8)
|
||||||
|
APP_URL = "https://ecomm-ppe.wiggleverse.org"
|
||||||
|
ECOMM_MAILER = "smtp"
|
||||||
|
ECOMM_COOKIE_SECURE = "1"
|
||||||
|
ECOMM_SMTP_HOST = "smtp.gmail.com"
|
||||||
|
ECOMM_SMTP_PORT = "587"
|
||||||
|
ECOMM_SMTP_USER = "ben.stull@wiggleverse.org"
|
||||||
|
ECOMM_SMTP_FROM = "ecomm <ben.stull@wiggleverse.org>"
|
||||||
|
|
||||||
|
[secrets] # REFERENCES only — never bytes (§8.3)
|
||||||
|
ECOMM_SESSION_SECRET = "wiggleverse-ecomm/ecomm-ppe-session-secret"
|
||||||
|
ECOMM_DATABASE_URL = "wiggleverse-ecomm/ecomm-ppe-database-url"
|
||||||
|
ECOMM_SMTP_PASSWORD = "wiggleverse-ohm/ohm-rfc-app-smtp-password"
|
||||||
@@ -122,6 +122,18 @@ From empty persistence: the deploy migrates the schema at startup (INV-7); then
|
|||||||
real sign-up → one-time code arriving by **real email** → create storefront → admin,
|
real sign-up → one-time code arriving by **real email** → create storefront → admin,
|
||||||
through the public flows alone. Record each rehearsal here when it happens.
|
through the public flows alone. Record each rehearsal here when it happens.
|
||||||
|
|
||||||
|
**Rehearsals:**
|
||||||
|
|
||||||
|
- **2026-06-11 — PPE first bootstrap (v0.4.0, session 0024): ✅** First-ever ecomm
|
||||||
|
deploy (`flotilla-core deploy ecomm`, 9/9 phases green, deploys.id=40) onto a
|
||||||
|
freshly provisioned environment — project `wiggleverse-ecomm`, Cloud SQL
|
||||||
|
`ecomm-ppe-pg` (provisioned by launch-app `provision-datastore`, first run), VM
|
||||||
|
`ecomm-ppe`. The app self-migrated the empty database at startup; the operator
|
||||||
|
then walked sign-up → real emailed code (Gmail relay) → create storefront →
|
||||||
|
honestly-empty admin in a browser, through the public flows alone. Findings
|
||||||
|
captured: OTC email branding (#16); identity should outgrow ecomm
|
||||||
|
(engineering#49/#50).
|
||||||
|
|
||||||
## Production
|
## Production
|
||||||
|
|
||||||
Lands with the prod stand-up — the **identical gesture** on a prod deployment record
|
Lands with the prod stand-up — the **identical gesture** on a prod deployment record
|
||||||
|
|||||||
Reference in New Issue
Block a user