Skip to main content

Configuration

Compass uses compass.yaml for self-hosting and local development. The file is visible, diffable, and contains secrets, so keep it out of git and back it up with the Docker volumes.

Examples:

  • local development: packages/backend/compass.example.yaml
  • self-hosting: self-host/compass.example.yaml

Runtime

keyRequiredDescription
runtime.versionSelf-hostDocker image tag used by the self-host compose stack. Defaults to latest. Pin this for reproducible installs.
runtime.nodeEnvYesRuntime mode. Use production for self-hosted and staging; development for local dev.
runtime.timezoneYesBackend timezone. Only Etc/UTC and UTC are accepted.
runtime.logLevelNoWinston log level. Defaults to info.

Web

keyRequiredDescription
web.port9080Host port bound to the web container on 127.0.0.1.
web.urlYesPublic frontend URL as seen by the backend. Example: https://compass.example.com.

Backend

keyRequiredDescription
backend.port3000Host port bound to the backend container on 127.0.0.1.
backend.apiUrlYesPublic API URL. Example: https://compass.example.com/api. This is baked into the web bundle when the web image is rebuilt.
backend.originsAllowedYesYAML list of allowed CORS origins. Include web.url.
backend.compassTokenYesBearer token protecting internal sync endpoints.

MongoDB

keyRequiredDescription
mongo.uriYesBackend MongoDB connection string. For self-hosted installs, must include authSource=admin and replicaSet=rs0.
mongo.usernameSelf-hostMongoDB root username created on first container startup. Must match the credentials in mongo.uri.
mongo.passwordSelf-hostMongoDB root password. Changing it after first startup requires a MongoDB user migration.
mongo.replicaSetKeySelf-hostShared secret used for internal authentication between replica set members.

SuperTokens

SuperTokens handles user-sessions for us.

keyRequiredDescription
supertokens.uriYesSuperTokens Core URL as seen by the backend. Self-hosted Docker uses http://supertokens:3567.
supertokens.keyYesAPI key shared by backend and SuperTokens Core.
supertokens.postgres.userSelf-hostPostgres user for the SuperTokens database container.
supertokens.postgres.passwordSelf-hostPostgres password for the SuperTokens database container.
supertokens.postgres.databaseSelf-hostPostgres database name for SuperTokens.

Google

These values are only necessary if you want to enable Google Oauth and/or 2-way sync between Compass and Google Calendar

Both google.clientId and google.clientSecret must be real values for Google features to activate. Setting only one causes backend startup to fail.

keyRequiredDescription
google.clientIdNoGoogle OAuth client ID. Rebuild the web image after changing it.
google.clientSecretNoGoogle OAuth client secret. Backend-only.
google.channelExpirationMinNoGoogle Calendar watch channel lifetime in minutes.
google.webhookUrlNoPublic HTTPS API URL for Google Calendar push notifications. When omitted, Compass uses backend.apiUrl.
google.notificationTokenRequired for HTTPS Google webhooksToken used to verify Google Calendar webhook requests.

See Google Calendar for full setup instructions.

Optional Integrations

keyRequiredDescription
email.kitApiSecretNoKit.com API secret key.
email.kitUserTagIdNoKit.com tag ID applied to users on signup.
posthog.keyNoPostHog project key injected into the web bundle.
posthog.hostNoPostHog host injected into the web bundle.