Skip to main content

Server Settings

The server section configures the HTTP server that exposes the VCVerifier API endpoints.

Basic Configuration

server.host
string
Hostname of the verifier. Used for generating callback URLs and in OpenID configuration.
server.port
integer
default:"8080"
Port to bind the HTTP server to.
server:
  port: 8080
server.templateDir
string
default:"views/"
Directory to load HTML template pages from. See Templating for customization options.
server:
  templateDir: "views/"
server.staticDir
string
default:"views/static/"
Directory to serve static content from (CSS, JavaScript, images). Files are served at the /static path.
server:
  staticDir: "views/static/"

Timeout Configuration

server.readTimeout
integer
default:"5"
Maximum duration (in seconds) for reading the entire request, including the body.
server.writeTimeout
integer
default:"10"
Maximum duration (in seconds) before timing out writes of the response.
server.idleTimeout
integer
default:"120"
Maximum amount of time (in seconds) to wait for the next request when keep-alives are enabled.
server.shutdownTimeout
integer
default:"5"
Time allowed (in seconds) for active requests to finish during graceful shutdown.

Logging Configuration

The logging section controls log output format and verbosity.
logging.level
string
default:"INFO"
Log level for the application. Accepted values:
  • DEBUG - Detailed debugging information
  • INFO - General informational messages
  • WARN - Warning messages
  • ERROR - Error messages only
logging:
  level: "INFO"
logging.jsonLogging
boolean
default:"false"
When true, outputs logs in structured JSON format. Recommended for production environments and log aggregation systems.
logging:
  jsonLogging: true
logging.logRequests
boolean
default:"false"
When true, logs all incoming HTTP requests including method, path, and response status.
logging:
  logRequests: true
logging.pathsToSkip
string[]
List of paths to exclude from request logging. Useful for omitting health check endpoints from logs.
logging:
  logRequests: true
  pathsToSkip:
    - "/health"
    - "/metrics"

Complete Example

server:
  host: "verifier.example.com"
  port: 8080
  templateDir: "custom-views/"
  staticDir: "custom-views/static/"
  readTimeout: 10
  writeTimeout: 15
  idleTimeout: 120
  shutdownTimeout: 10

logging:
  level: "INFO"
  jsonLogging: true
  logRequests: true
  pathsToSkip:
    - "/health"
    - "/q/health/ready"

Production Recommendations

In production environments:
  • Enable jsonLogging for structured log parsing
  • Set level to INFO or WARN to reduce log volume
  • Configure pathsToSkip to exclude health check endpoints
  • Adjust timeout values based on your network characteristics
When running behind a reverse proxy (nginx, Apache, etc.):
  1. Configure the host field with your public domain name
  2. Ensure the proxy forwards the original host header
  3. Configure appropriate timeout values that match your proxy settings
  4. Consider terminating TLS at the proxy level

Next Steps

Verifier Configuration

Configure DID, keys, and validation modes

Templating

Customize the login page appearance

Build docs developers (and LLMs) love