# Ten31 Database — StartOS 0.4 wrapper (x86_64)

This directory is the self-contained StartOS 0.4 service package for
Ten31 Database. It is the x86_64 successor to the 0.3.5 (aarch64)
wrapper in `../0.3.5/`. Both packages share the same package id
(`ten-database`) and the same `/data` volume layout so data can be
preserved across the migration.

## Start here

**Read `DEPLOY_040.md` first.** It covers:

1. How the image-seed data-preservation mechanism works.
2. How to refresh the seed with live production data from the 0.3.5 host
   (via `./refresh_seed.sh` or manual scp).
3. How to install the build prerequisites (Node, Docker, `start-cli`).
4. How to build the x86_64 `.s9pk`.
5. How to sideload onto the StartOS 0.4 beta node.
6. A rollback plan and a post-install verification checklist.

## Quick cheat sheet

```sh
# From this directory:
./refresh_seed.sh embassy@embassy.local   # pull live prod data into seed/
make clean
make x86
make install                              # uses ~/.startos/config.yaml
```

## Data layout (unchanged from 0.3.5)

Inside the container:

- `/data/crm.db`         — SQLite database
- `/data/backups/`       — app-level JSON exports
- `/data/.crm-secret`    — JWT signing key (created on first boot if absent)

The entrypoint seeds an empty volume from the image's baked-in snapshot on
first boot, and is a no-op for every later boot. Existing volumes are
never overwritten.

## Status

- Source scaffold: complete and `tsc --noEmit` clean against
  `@start9labs/start-sdk` 0.4.0.
- Dockerfile: self-contained under `start9/0.4/` with no cross-folder
  references to `start9/0.3.5/`.
- Seed snapshot: present at `seed/data/` (repo dev DB — replace with live
  prod data before building).
- Not yet built into a `.s9pk` here; build on a machine with Docker +
  `start-cli` per `DEPLOY_040.md`.
