Skip to content

Configuration reference

Tyravel apps load typed config from config/*.ts. Each file exports a default object and may export a schema for boot-time validation.

Scaffold sources live in packages/cli/src/stubs*.ts. Optional configs are added by tyravel auth:install, crypto:install, etc.

Default scaffold (tyravel new)

config/app.ts

KeyEnv varDefaultNotes
nameAPP_NAMEproject nameApplication display name
debugAPP_DEBUGtrueVerbose errors when true
urlAPP_URLhttp://127.0.0.1:3000Base URL for signed links
localeAPP_LOCALEenDefault locale
fallback_localeAPP_FALLBACK_LOCALEenMissing translation fallback
faker_localeAPP_FAKER_LOCALEenFactory/faker locale
locales_pathlangDirectory for JSON locale files
available_locales['en']Locales exposed to the app

config/database.ts

KeyEnv varNotes
defaultDB_CONNECTIONsqlite, mysql, or postgres
connections.sqlite.databaseDB_DATABASEPath to SQLite file
connections.mysql.*DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD, DB_DATABASERequires @tyravel/database-mysql
connections.postgres.*same patternRequires @tyravel/database-pg

config/queue.ts

KeyEnv varNotes
defaultQUEUE_CONNECTIONdatabase (default) or redis
connections.databaseUses default DB connection
connections.redisRequires @tyravel/redis-node
failed.tablefailed_jobs

config/cache.ts

KeyEnv varNotes
defaultCACHE_STOREarray, file, or redis
prefixKey prefix for all stores

config/views.ts

KeyNotes
pathresources/views
extension.tyr
compiledPathstorage/framework/views — set compiled: true in production
locale / localesPathView translation paths

config/mail.ts

KeyEnv varNotes
defaultMAIL_MAILERlog, array, or smtp
from.addressMAIL_FROM_ADDRESS
from.nameMAIL_FROM_NAME
connections.smtp.*MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_ENCRYPTION

config/broadcasting.ts

KeyEnv varNotes
defaultBROADCAST_CONNECTIONlog, null, or websocket
connections.websocket.path/tyravel/ws
connections.websocket.redisConnectionREDIS_CONNECTIONFan-out across processes

config/http.ts

KeyNotes
trustedProxiesIPs trusted for X-Forwarded-*
throttle.enabledGlobal rate limiting
throttle.limits.apiPreset for Route.throttle('api')

Other default files

FilePurpose
config/events.tsListener map, subscribers, queue connection
config/filesystems.tsFILESYSTEM_DISK — local disk by default
config/cors.tsCORS middleware defaults
config/log.tsLOG_CHANNEL — stack/stdout/file
config/health.ts/health probe toggles
config/notifications.tsDatabase notification table
config/redis.tsPresent when scaffolded with --redis

Optional install configs

CommandFilePurpose
tyravel auth:installconfig/auth.tsGuards, providers, session, tokens, OAuth, policies
tyravel oauth:installconfig/oauthServer.tsOAuth2 server token TTLs
tyravel admin:installconfig/admin.tsAdmin panel prefix, audit log
tyravel debug:installconfig/debug.tsDebug bar, slow query thresholds
tyravel crypto:installconfig/crypto.tsPQC algorithms, session/OAuth signing
tyravel new --aiconfig/vector.tsEmbedding metric, batch size

Validation

Add a schema export using s from @tyravel/config (see config/app.ts stub). Boot fails fast when required env vars are missing or invalid.

See Configuration for loading, merging, and env() helpers.

Released under the MIT License.