Ionize Docs
ReferenceConfigurationCompose Services

iam-core

Compose service `iam-core` — runtime configuration across dev and prod

Compose service iam-core.

Dev (compose.dev.yml)

Image: docker.io/oven/bun:1

Command: sh -c cp /tmp/.npmrc /app/.npmrc 2>/dev/null; bun install 2>/dev/null; rm -f /app/.npmrc; mkdir -p node_modules/@nannier && rm -rf node_modules/@nannier/sdk && ln -sfn ../../__sdk node_modules/@nannier/sdk; bun --watch src/index.ts

Ports:

  • 4002:4002

Environment variables:

VariableSource
APP_INSTANCEIAM
PORT4002
KRATOS_PUBLIC_URLhttp://iam-kratos:7000
KRATOS_ADMIN_URLhttp://iam-kratos:7001
HYDRA_PUBLIC_URLhttp://iam-hydra:7002
HYDRA_ADMIN_URLhttp://iam-hydra:7003
IAM_KRATOS_PUBLIC_URLhttp://iam-kratos:7000
IAM_KRATOS_ADMIN_URLhttp://iam-kratos:7001
IAM_HYDRA_PUBLIC_URLhttp://iam-hydra:7002
IAM_HYDRA_ADMIN_URLhttp://iam-hydra:7003
AUTH_HYDRA_URLhttp://iam-hydra:7002
AUTH_HYDRA_ADMIN_URLhttp://iam-hydra:7003
AUTH_KRATOS_ADMIN_URLhttp://iam-kratos:7001
AUTH_HYDRA_PUBLIC_BROWSER_URLhttp://localhost:4102
DASHBOARD_PUBLIC_URLhttp://localhost:4001
OAUTH_CLIENT_IDdashboard-iam-client
OAUTH_CLIENT_SECRETdashboard-iam-secret
DEFAULT_OAUTH2_CLIENT_IDdashboard-iam-client
DATABASE_URLpostgres://postgres:secret@postgres:5432/ionize?sslmode
SETTINGS_TABLEiam_settings
ENCRYPTION_KEY9LHT6tXSrCagtow6Lp+kpwfm0Qe5UVoEdhn86Zo+xWU
SESSION_SIGNING_KEY0MIJFwslAG7XGWL7Lqcr90wAD3S9fknKohCFy7BWIEE
CAPTCHA_ENABLEDfalse
DASHBOARD_INTERNAL_URLhttp://iam-dashboard:3000
AUTH_INTERNAL_URLhttp://iam-auth:4000

Volumes:

  • ${IONIZE_WORKSPACE}/core:/app
  • ${IONIZE_WORKSPACE}/sdk:/app/__sdk:ro
  • /app/node_modules
  • ${OCTL_NPMRC_PATH}:/tmp/.npmrc:ro

Depends on: postgres, iam-kratos, iam-hydra

Restart policy: unless-stopped

User: 0:0

Networks: intranet

Prod (compose.prod.yml)

Image: ghcr.io/bnannier/core:${CORE_IMAGE_TAG:-latest}

Ports: none (internal only)

Environment variables:

VariableSource
NODE_ENVproduction
APP_INSTANCEIAM
PORT4002
KRATOS_PUBLIC_URLhttp://iam-kratos:7000
KRATOS_ADMIN_URLhttp://iam-kratos:7001
HYDRA_PUBLIC_URLhttp://iam-hydra:7002
HYDRA_ADMIN_URLhttp://iam-hydra:7003
IAM_KRATOS_PUBLIC_URLhttp://iam-kratos:7000
IAM_KRATOS_ADMIN_URLhttp://iam-kratos:7001
IAM_HYDRA_PUBLIC_URLhttp://iam-hydra:7002
IAM_HYDRA_ADMIN_URLhttp://iam-hydra:7003
AUTH_HYDRA_URLhttp://iam-hydra:7002
AUTH_HYDRA_ADMIN_URLhttp://iam-hydra:7003
AUTH_KRATOS_ADMIN_URLhttp://iam-kratos:7001
AUTH_HYDRA_PUBLIC_BROWSER_URL${IAM_HYDRA_PUBLIC_URL}
DASHBOARD_PUBLIC_URL${IAM_DASHBOARD_PUBLIC_URL}
OAUTH_CLIENT_ID${DASHBOARD_IAM_OAUTH_CLIENT_ID}
OAUTH_CLIENT_SECRET${DASHBOARD_IAM_OAUTH_CLIENT_SECRET}
DEFAULT_OAUTH2_CLIENT_IDdashboard-iam-client
DATABASE_URL${PG_IONIZE_DSN}
SETTINGS_TABLEiam_settings
ENCRYPTION_KEY${ENCRYPTION_KEY}
SESSION_SIGNING_KEY${SESSION_SIGNING_KEY}
NODE_EXTRA_CA_CERTS/etc/ssl/certs/pg-ca.crt
CAPTCHA_ENABLED${IAM_CAPTCHA_ENABLED:-false}
CAPTCHA_SITE_KEY${IAM_CAPTCHA_SITE_KEY:-}
DASHBOARD_INTERNAL_URLhttp://iam-dashboard:3000
AUTH_INTERNAL_URLhttp://iam-auth:4000

Volumes:

  • {"type":"bind","source":"./postgres/pg-ca.crt","target":"/etc/ssl/certs/pg-ca.crt","read_only":true}

Depends on: postgres, iam-kratos, iam-hydra

Healthcheck:

{
  "test": [
    "CMD-SHELL",
    "wget --spider --quiet http://localhost:4002/health || exit 1"
  ],
  "interval": "30s",
  "timeout": "5s",
  "start_period": "20s",
  "retries": 3
}

Restart policy: unless-stopped

Networks: intranet


Generated from ionctl/stack/compose.dev.yml and platform/prod/compose.prod.yml at build time.

On this page