Skip to main content

Local Development

The repo is designed to work in two common local modes: run the full stack with Docker Compose, or run the app locally while connecting to a PostgreSQL instance on localhost:5432.

Build and test

dotnet restore dotMARC.sln
dotnet build dotMARC.sln
dotnet test dotMARC.sln

dotnet test uses Testcontainers.PostgreSql, so Docker must be running; the first run pulls the postgres:18 image automatically.

Local database-first flow

To start just the database for local debugging:

docker compose up postgres

This publishes PostgreSQL on localhost:5432 using the default development connection values from src/DotMarc/appsettings.json: database dotmarc, username dotmarc, and password dotmarc.

If you want to run the app directly on the host instead of using the container stack, use:

dotnet run --project src/DotMarc/DotMarc.csproj

The app expects the same PostgreSQL connection settings as the Docker Compose setup.

Full stack with Docker Compose

docker compose up --build

This starts dotMARC together with PostgreSQL in one command, using the repo's docker-compose.yml configuration and the environment variables described in Getting Started.