name: binacle-net-full

# Binacle.Net sample: full
#
# This configuration is smoke-tested against the image on every release, so it is a shape that is
# proven to work rather than one nobody checks.

services:
  binacle-net:
    # Pinned on purpose - a copied sample must not jump to a new major on the next pull.
    image: binacle/binacle-net:3.0
    ports:
      - "8080:8080"
    volumes:
      - type: bind
        source: ./Presets.json
        target: /app/Config_Files/Presets.json
        read_only: true
      - type: bind
        source: ./JwtAuth.json
        target: /app/Config_Files/ServiceModule/JwtAuth.json
        read_only: true
      - type: bind
        source: ./data
        target: /app/data/
    environment:
      # Everything on. This is a demo and evaluation box: every surface Binacle.Net has, switched on at once so
      # you can see what each one does.
      - SWAGGER_UI=True
      - SCALAR_UI=True
      - UI_MODULE=True
      - SERVICE_MODULE=True
      - HealthChecks__Enabled=True
      - PackingLogs__Enabled=True

      # ##################################################################################################### #
      # DEBUG_ENDPOINT mounts /_debug, which echoes the caller's ENTIRE request back to them - every header
      # they sent, including Authorization, plus the connection address the app resolved.
      #
      # It is on here because seeing it is the point of this sample. Do not put this configuration anywhere
      # other people can reach. For a real deployment use the `prod` sample, or `service` if you need accounts.
      # ##################################################################################################### #
      - DEBUG_ENDPOINT=True

      - SQLITE_CONNECTION_STRING=Data Source=/app/data/binacle-net-service.db;
      - BINACLE_ADMIN_CREDENTIALS=admin@binacle.net:B1n4cl3Adm!n
