Documentation previewThese docs are actively being built. Some pages may change as the framework and examples are finalized.
Skip to content

Configuration Reference

GoForj has two main configuration layers:

  • .goforj.yml for project rendering and development workflow.
  • environment variables for runtime behavior.

.goforj.yml

The project file records render-time choices and local development workflow.

KeyPurpose
project_nameGenerated App name.
module_nameGo module path.
updated_atTimestamp written by rendering workflows.
render.componentsSelected framework components.
render.starter_kitSelected starter kit.
render.queue_driverInitial queue driver selection.
render.goforj_versionGoForj version recorded for the rendered App.
render.module_replacesLocal module replacements for sibling repos.
dev.preDevelopment pre-tasks.
dev.downDevelopment teardown tasks.
dev.watchesforj dev watcher definitions.
dev.auto_migrateDevelopment auto-migrate behavior.
dev.down_on_exitDevelopment cleanup behavior on exit.
dev.sound_on_watch_errorOptional local feedback when a watcher command fails.
dev.wire_pathsWire paths used by development tooling.

Development Tasks

Development tasks use this shape:

yaml
dev:
  pre:
    - name: frontend dependencies
      cmd: cd frontend && npm install
  down:
    - name: stop containers
      cmd: docker-compose down

Watchers use this shape:

yaml
dev:
  watches:
    - name: app
      watch: "-file=.go -xfile=_test.go ."
      exec: forj build

Component Names

Render component keys include:

KeyPurpose
cliGenerated App command surface.
demo_appDemo application surface.
mailGenerated mail manager and delivery integration.
authGenerated auth, session, and account support.
oauthOAuth support for generated auth.
web_apiHTTP API runtime.
web_uiEmbedded frontend asset support.
metricsMetrics manager and export behavior.
observabilityLocal observability support files.
grafanaGrafana provisioning for local observability.
dockerLocal container support.
database_mysqlMySQL database support.
database_postgresPostgreSQL database support.
database_sqliteSQLite database support.
schedulerScheduler runtime and registration surface.
jobsQueue worker runtime and job support.
stress_testSynthetic queue stress tooling.

Component dependencies are resolved by the renderer. For example, auth requires web_api and a database component.

Module Replaces

Use paths that are stable from the generated project root. For local sibling repositories, prefer a relative path:

yaml
render:
  module_replaces:
    github.com/goforj/web: ../web

Do not use container-specific absolute paths; they only work in one local environment.