Skip to content

Configuration

The following table lists all the configuration values that can be set as environment variables (e.g. via a .env file).

Note

These configuration values can only be set via this configuration and require an application restart to take effect.

Core Config

Basic configuration, URL, paths, ...

Variable Description
TEKST_SERVER_URL Full public URL of the server running the application (without sub path, port only if other than 80/443); if using the project's compose.yml, this has to be set even if the value matches the default! (String – default: http://127.0.0.1:8000)
TEKST_API_PATH Public sub path of the API; if using the project's compose.yml, this has to be set even if the value matches the default! (String – default: /api)
TEKST_WEB_PATH Public sub path of the web client; if using the project's compose.yml, this has to be set even if the value matches the default! (String – default: /)
TEKST_WEB_STATIC_DIR Local path to static web files directory (String – default: /var/www/tekst/static/)
TEKST_DEV_MODE Development mode – only use for development! (Boolean – default: false)
TEKST_LOG_LEVEL API log level (DEBUG
TEKST_AUTO_MIGRATE If false (default) and there are pending DB migrations that should be run, the API as well as the setup routine will (on startup) log a critical message about this, block further execution, check again for pending migrations every minute for an hour, then repeat. This gives you the chance to make a DB backup and run the migrations manually (see the Tekst CLI). If true, pending migrations will be automatically run by the API/setup on startup. (Boolean – default: false)
TEKST_TEMP_FILES_DIR Absolute path to local temporary directory to use (String – default: /tmp/tekst_tmp)

Database (MongoDB)

Configuration for the MongoDB connection

Variable Description
TEKST_DB__PROTOCOL MongoDB protocol (String – default: mongodb)
TEKST_DB__HOST MongoDB host (String – default: 127.0.0.1)
TEKST_DB__PORT MongoDB port (Integer – default: 27017)
TEKST_DB__USER MongoDB user (String – default: none)
TEKST_DB__PASSWORD MongoDB password (String – default: none)
TEKST_DB__NAME MongoDB database name (String – default: tekst)

Search Server (Elasticsearch)

Configuration for the connection to the Elasticsearch server

Variable Description
TEKST_ES__PROTOCOL Elasticsearch protocol (String – default: http)
TEKST_ES__HOST Elasticsearch host (String – default: 127.0.0.1)
TEKST_ES__PORT Elasticsearch port (Integer – default: 9200)
TEKST_ES__PREFIX Elasticsearch prefix (for index, templates, etc.) (String – default: tekst)
TEKST_ES__TIMEOUT_INIT_S Timeout for waiting for Elasticsearch service to be available on startup, in seconds (Integer – default: 240)
TEKST_ES__TIMEOUT_GENERAL_S General client timeout for requests to Elasticsearch, in seconds (Integer – default: 30)
TEKST_ES__TIMEOUT_SEARCH_S Timeout for search reqests to Elasticsearch, in seconds (Integer – default: 30)
TEKST_ES__MAX_FIELD_MAPPINGS Max. number of field mappings per search index – given there is enough memory, this can be increased in case there are e.g. annotation resources with many distinct annotation keys (these are dynamically mapped fields). The admin maintenance UI shows a warning if an index is about to hit this value. Any field mapping surpassing this value will be ignored and won't be searchable. (Integer – default: 1000)

Security

All the configuration related to app-level security

Variable Description
TEKST_SECURITY__SECRET Secret to use for token generation (String – default: must_change_this)
TEKST_SECURITY__CLOSED_MODE Whether to allow public registrations (Boolean – default: false)
TEKST_SECURITY__USERS_ACTIVE_BY_DEFAULT Whether new user accounts are active by default (otherwise have to be activated by admins) (Boolean – default: false)
TEKST_SECURITY__ENABLE_COOKIE_AUTH Enable cookie-based authentication (needed for the web client to work!) (Boolean – default: true)
TEKST_SECURITY__AUTH_COOKIE_NAME Cookie name (String – default: tekstuserauth)
TEKST_SECURITY__AUTH_COOKIE_DOMAIN Cookie domain (String – default: none)
TEKST_SECURITY__AUTH_COOKIE_LIFETIME Cookie lifetime in seconds (Integer – default: 43200)
TEKST_SECURITY__ACCESS_TOKEN_LIFETIME Lifetime of access token in DB (should match TEKST_SECURITY__AUTH_COOKIE_LIFETIME) (Integer – default: 43200)
TEKST_SECURITY__ENABLE_JWT_AUTH Enable JWT-based authentication (optional, useful for programmatic access to the API) (Boolean – default: false)
TEKST_SECURITY__AUTH_JWT_LIFETIME Lifetime of JWT used for authentication (Integer – default: 86400)
TEKST_SECURITY__RESET_PW_TOKEN_LIFETIME Lifetime of password reset tokens (Integer – default: 3600)
TEKST_SECURITY__VERIFICATION_TOKEN_LIFETIME Lifetime of account verification tokens (Integer – default: 86400)
TEKST_SECURITY__INIT_ADMIN_EMAIL Email address of initial admin account (String – default: none)
TEKST_SECURITY__INIT_ADMIN_PASSWORD Password of initial admin account (String – default: none)

Email

Configuration for the SMTP connection and sender address of outgoing emails

Variable Description
TEKST_EMAIL__SMTP_SERVER SMTP server address (String – default: 127.0.0.1)
TEKST_EMAIL__SMTP_PORT SMTP server port (Integer – default: 25)
TEKST_EMAIL__SMTP_USER SMTP user (String – default: none)
TEKST_EMAIL__SMTP_PASSWORD SMTP password (String – default: none)
TEKST_EMAIL__SMTP_STARTTLS Whether to use StartTLS for SMTP connection (Boolean – default: true)
TEKST_EMAIL__FROM_ADDRESS From-address used for outgoing emails (String – default: noreply@example-tekst-instance.org)

Documentation

Configuration for the OpenAPI schema URL and API documentation via SwaggerUI and/or Redoc

Variable Description
TEKST_API__OPENAPI_URL URL sub path (under TEKST_API_PATH) to public openapi.json API schema (if not set, disables SwaggerUI and Redoc) (String – default: /openapi.json)
TEKST_API__SWAGGERUI_URL URL sub path (under TEKST_API_PATH) to SwaggerUI interactive API docs; empty value disables SwaggerUI (String – default: /docs)
TEKST_API__REDOC_URL URL sub path (under TEKST_API_PATH) to Redoc API docs; empty value disables Redoc (String – default: /redoc)
TEKST_API__TITLE Platform API title (String – default: Tekst)
TEKST_API__SUMMARY Platform API summary (String – default: none)
TEKST_API__DESCRIPTION Platform API description (String – default: none)
TEKST_API__TERMS_URL URL to API usage terms (String – default: none)
TEKST_API__CONTACT_NAME API contact name (String – default: none)
TEKST_API__CONTACT_EMAIL API contact email (String – default: none)
TEKST_API__CONTACT_URL API contact URL (String – default: none)
TEKST_API__LICENSE_NAME API license name; if not set, no license info will be integrated in API docs (String – default: none)
TEKST_API__LICENSE_ID API license ID (canonical short form of name) (String – default: none)
TEKST_API__LICENSE_URL API license URL (String – default: none)

Cross-Origin Resource Sharing (CORS)

You should handle CORS via your webserver configuration. But if for some reason you nead app-level CORS management, this is where to look.

Variable Description
TEKST_CORS__ENABLE Enable CORS header control; only enable this if you don't have a web server / reverse proxy that already handles it! (Boolean – default: false)
TEKST_CORS__ALLOW_ORIGINS CORS allow origins (Comma-separated list as string – default: *)
TEKST_CORS__ALLOW_CREDENTIALS CORS allow credentials (Boolean – default: true)
TEKST_CORS__ALLOW_METHODS CORS allow methods (Comma-separated list as string – default: *)
TEKST_CORS__ALLOW_HEADERS CORS allow headers (Comma-separated list as string – default: *)

What is left

All these configuration values – and then some...

Variable Description
TEKST_MISC__USRMSG_FORCE_DELETE_AFTER_DAYS Delete old user messages after n days (Integer – default: 365)
TEKST_MISC__MAX_RESOURCES_PER_USER Maximum number of resources/versions that one user is allowed to own (Integer – default: 10)
TEKST_MISC__DEL_EXPORTS_AFTER_MINUTES Time in minutes after whichfinished/failed tasks that produce a downloadable file artifact (namely "exports") will be deleted automatically, including the respective file (Integer – default: 5)