Skip to content

Docker Local Stack

Seamless Auth uses Docker to make the local stack predictable and close to deployment reality.

This page explains the generated local environment and how the services talk to each other.


docker compose up
-> starts the stack
-> wires service-to-service hostnames
-> exposes the local URLs you interact with

The generated docker-compose.yml usually includes:

services:
db
auth
api
web
admin # optional

Whether admin is present depends on your CLI choices.


ServiceLocal URLPurpose
dblocalhost:5432Postgres persistence
authhttp://localhost:5312Auth engine
apihttp://localhost:3000Application/backend layer
webhttp://localhost:5173Frontend app
adminhttp://localhost:5174Admin dashboard

The generated stack supports two main auth shapes.

The auth service runs from:

image: ghcr.io/fells-code/seamless-auth-api:latest

The auth service is generated into ./auth and the compose file builds it with Dockerfile.dev.

That mode is useful when you want to inspect or modify the auth server locally.


If the dashboard is included, it can be wired in two ways.

image: ghcr.io/fells-code/seamless-auth-admin-dashboard:latest
build: ./admin

Source mode is the path to choose if you want to customize the dashboard app itself.


Inside Docker, containers talk to each other by service name.

Examples:

FromToInternal address
APIAuthhttp://auth:5312
APIDBdb
WebAPIhttp://localhost:3000
AdminAPIhttp://localhost:3000

For the route map and env details behind this, see:


From the project root:

Terminal window
docker compose up

That will:

  • start Postgres
  • start the auth server
  • start the backend API
  • start the web app
  • start the admin dashboard when included

View logs:

Terminal window
docker compose logs -f

Rebuild and restart:

Terminal window
docker compose down
docker compose up --build

Inspect running containers:

Terminal window
docker ps

Watch for conflicts on:

  • 5432
  • 3000
  • 5173
  • 5174
  • 5312

If you chose source-based modes, confirm that:

  • ./auth exists for local auth mode
  • ./admin exists for admin source mode

Inside the container network, the API should talk to the auth service as:

http://auth:5312

Not http://localhost:5312.


Use this page when the local stack itself is the problem.

Use these related docs when you need more specific detail: