Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ restart, Wasm, Node adapters, local workerd KV, Compose with a named volume and
container restart) and live on Cloudflare Workers with KV, on the Cloud Run
container with Almide reading and writing Cloud Storage itself, and on Cloud Run
functions with Cloud Storage; each store held exactly the two saved notes
afterwards. The ConoHa VPS run predates `/notes`.
afterwards. On the ConoHa VPS (x86_64, created with Terraform) the scenario passed,
the volume file held the two notes, and they survived a container restart.

GitHub Actions (`ubuntu-24.04`, compiler install and every reproduction step) has
passed. See [verification notes](docs/verification.md) for exact commands and limits.
Expand Down
22 changes: 20 additions & 2 deletions docs/verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ Live:
and wrote with `fetch`. 18/18 and the scenario 11/11 (octet-stream bodies)
- Each bucket's `notes` object held exactly the two saved notes
(`application/json`, 53 bytes); unauthenticated requests got 403
3. The ConoHa VPS was not rerun with `/notes` (its run predates it)
3. The ConoHa VPS: see [ConoHa VPS with /notes](#conoha-vps-with-notes)

Not shown: behavior under concurrent writers. The single-key read-modify-write
has no conditional write, so concurrent instances can lose a note.
Expand Down Expand Up @@ -333,10 +333,28 @@ The application was main at `c904bf7`.
`gcf-v2-sources-*` bucket and `gcf-artifacts` repository were not managed
by Terraform and remained until the project was deleted

## ConoHa VPS with /notes

Date: 2026-10-04, main at `e73081a`, the same Terraform (`g2l-t-c4m4`, SSH from
the operator's /32 only); the provider installed with `go install` and
`~/.terraformrc` dev_overrides.

1. `terraform apply`: 5 resources in about 30 s; Ubuntu x86_64, Docker 29.2.1
2. cloud-init's first-boot upgrades took 714 s; `docker compose build` 98 s
3. Through `ssh -L` to the VPS loopback: the 18 cases and the `/notes` scenario
passed (29/29). The container ran with `STORE_DIR=/data`, a read-only root
filesystem, UID 65532 and `CapDrop=[ALL]`; the app listened on
`127.0.0.1:8080` only and port 8080 on the public address was unreachable
4. `notes.json` in the `conoha_notes` volume (owned by 65532) held exactly the
two saved notes; after `docker compose down` (0.6 s) and `up` the list was
unchanged
5. `terraform destroy` removed all 5; only the account's existing server and
its volume remained

## Not established

- Native x86_64 Docker build outside the ConoHa VPS
- `/notes` on the ConoHa VPS, and `/notes` under concurrent writers on any route
- `/notes` under concurrent writers on any route
- ConoHa TLS/reverse proxy, restart behavior, production load, or plans smaller
than `g2l-t-c4m4`
- Azure Container Apps or ECS Fargate provider validation/deployment
Expand Down
4 changes: 3 additions & 1 deletion providers/conoha/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,9 @@ a named volume (`notes`) that outlives the container; the image creates `/data`
owned by the runtime user, so the read-only root filesystem stays read-only.
`docker compose down` keeps the volume; `docker compose down -v` deletes the notes.
Locally (macOS arm64) the notes scenario passed and the notes survived
`down` / `up`; the ConoHa VPS run above predates `/notes`.
`down` / `up`. On the ConoHa VPS (2026-10-04, main at `e73081a`) the same held: the
scenario passed, `notes.json` in the volume (owned by 65532) held the two notes,
and they survived `down` / `up`.

Compose binds the app only to the host loopback address. For public access, place
a TLS reverse proxy in front and configure the intended ConoHa security group
Expand Down
Loading