Prerequisites

CockroachDB, RabbitMQ, and MinIO must be reachable before the service is useful. The service retries database migrations on startup with exponential backoff, so it tolerates a briefly unavailable database.

These dependencies are managed by stand-infra. Run docker compose up there first.

Development

Requires .NET 8 SDK.

Create an appsettings.local.json file at the project root (see Configuration) then run:

  dotnet run --project src/JobSvc
  

The API listens on http://localhost:5000 by default (configurable via ASPNETCORE_URLS).

Docker

Images are published to the GitHub Container Registry on each release.

  docker pull ghcr.io/association-ephemere/job-svc:latest
  
  docker run \
  -e ConnectionStrings__Postgres="Host=<host>;Port=26257;Database=photostand;Username=root;SSL Mode=Disable" \
  -e RabbitMq__Uri="amqp://guest:guest@<host>:5672" \
  -e MinIO__Endpoint="<host>:9000" \
  -e MinIO__AccessKey=<access-key> \
  -e MinIO__SecretKey=<secret-key> \
  -e MinIO__Bucket=photostand \
  -p 8080:8080 \
  ghcr.io/association-ephemere/job-svc:latest
  

On Windows with Docker Desktop, use host.docker.internal to reach services running on the host machine:

  -e ConnectionStrings__Postgres="Host=host.docker.internal;Port=26257;..."
  

Run tests

  dotnet test