application.yaml 2.2 KB
# vibe_erp — production-ish defaults.
#
# This is the baseline configuration baked into the shipping image. It is
# deliberately non-secret: every sensitive value is read from an environment
# variable so the same image works for self-hosted and (eventually) hosted
# deployments. See architecture spec sections 10 and 11.
#
# Customer overrides live in /opt/vibe-erp/config/vibe-erp.yaml on the
# mounted volume. Plug-in configuration lives in metadata__plugin_config,
# never here.
#
# vibe_erp is single-tenant per instance: one running process serves
# exactly one company against an isolated database. There is no
# multi-tenancy configuration here, by design.

spring:
  application:
    name: vibe-erp
  datasource:
    url: ${VIBEERP_DB_URL}
    username: ${VIBEERP_DB_USER}
    password: ${VIBEERP_DB_PASSWORD}
    driver-class-name: org.postgresql.Driver
  jpa:
    # Liquibase owns the schema; Hibernate must never touch DDL.
    hibernate:
      ddl-auto: validate
    open-in-view: false
  liquibase:
    change-log: classpath:db/changelog/master.xml

server:
  port: 8080
  shutdown: graceful

management:
  endpoints:
    web:
      exposure:
        include: health,info,prometheus

vibeerp:
  instance:
    # Display name of the company that owns this instance. Shown in branding,
    # report headers, and audit logs. There is exactly ONE company per
    # running instance — provisioning a second customer means deploying a
    # second instance with its own database.
    company-name: ${VIBEERP_COMPANY_NAME:vibe_erp instance}
  security:
    jwt:
      # HMAC-SHA256 secret. Must be at least 32 characters in production.
      # Set the VIBEERP_JWT_SECRET environment variable; the framework
      # refuses to start if a shorter value is used.
      secret: ${VIBEERP_JWT_SECRET:}
      issuer: vibe-erp
      access-token-ttl: PT15M
      refresh-token-ttl: P7D
  plugins:
    directory: ${VIBEERP_PLUGINS_DIR:/opt/vibe-erp/plugins}
    auto-load: true
  i18n:
    default-locale: en-US
    fallback-locale: en-US
    available-locales: en-US,zh-CN,de-DE,ja-JP,es-ES
  files:
    backend: local
    local-path: ${VIBEERP_FILES_DIR:/opt/vibe-erp/files}

logging:
  level:
    org.vibeerp: INFO
    org.springframework: WARN