Skip to content

Run the dev stack on published images, with the meter driver chosen by profile - #1

Merged
tescalada merged 2 commits into
mainfrom
sparknet-profile
Sep 24, 2026
Merged

tescalada merged 2 commits into
mainfrom
sparknet-profile

Conversation

@tescalada

@tescalada tescalada commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

The dev stack runs from the published images, so docker compose up needs only this repository.

The webapp, SymmetricDS and meter-driver-emulator services name their ghcr.io/earthspark/<repository>:latest images and keep their build sections, with no pull_policy. A plain up pulls an image that is not present locally and otherwise uses the local one. up --build builds from the sibling checkouts, and that build stays in use until docker compose pull. A service whose image is not published builds from its checkout. cloud shares the webapp's build section.

The webapp's environment file is optional. Its development defaults are in the compose file as ${VAR:-default} entries, which the environment file and variables exported in the shell override. An optional env_file needs Docker Compose 2.24.0 or later.

Meter drivers are registered in the webapp under Global Settings > Meter Drivers, and the webapp boots with none registered. Each driver runs behind its own profile: driver-emulator for meter-driver-emulator at http://meter-driver-emulator:18080, and driver-sparknet for sparknet-http at http://sparknet-http:8080. ground no longer sets METERING_PROVIDER_URL. sparknet-http keeps stdin open, since the binary exits when stdin reaches end-of-file, and its health check probes /v1/healthz.

repos lists meter-driver-emulator, and clone.sh checks out submodules after each clone or fast-forward, which the emulator's build needs.

Each image has a latest tag once EarthSpark/thundercloud#35, EarthSpark/symmetricds#8 and EarthSpark/meter-driver-emulator#1 merge and main builds. A running sparknet-http driver depends on EarthSpark/sparknet-http#1.

The webapp no longer takes a driver URL from the environment: meter drivers
are registered under Global Settings > Meter Drivers and stored in the
database, and the webapp boots normally with none registered. sparknet-http
moves to the sparknet profile, ground drops METERING_PROVIDER_URL and its
depends_on on the driver, and CLAUDE.md and README.md describe the
registration flow and the new profile.

The sparknet-http service keeps stdin open, since the binary exits when
stdin reaches end-of-file, and its health check probes /v1/healthz.
The webapp, SymmetricDS and meter-driver-emulator services name the ghcr.io/earthspark latest images and keep their build sections, with no pull_policy: a plain up uses the local image or pulls it when absent, up --build builds from the sibling checkouts, and docker compose pull fetches the newest published images. cloud gains the webapp build section. The webapp env file is optional, with its development defaults as ${VAR:-default} entries in the compose file; ground's SERIAL defaults to INIT_GROUND_SERIAL. meter-driver-emulator and sparknet-http run behind the driver-emulator and driver-sparknet profiles. The unused METERING_PROVIDER_URL is removed from ground. repos lists meter-driver-emulator, and clone.sh checks out submodules after each clone or fast-forward and reports a failed submodule step separately. The docs state Docker Compose 2.24.0 as the minimum version.
@tescalada tescalada changed the title Make sparknet-http an opt-in profile; drivers are registered at runtime Run the dev stack on published images, with the meter driver chosen by profile Sep 24, 2026
@tescalada
tescalada merged commit c038c77 into main Sep 24, 2026
@tescalada
tescalada deleted the sparknet-profile branch September 25, 2026 17:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant