Skip to content
flowplanDocumentationCommunityMarketplaceStart page

Configuration

All environment variables

Every environment variable of Flowplan in one table, from A to Z – with its default, its meaning in one sentence and the section that describes it in full.

The variables are read when the container starts, for example from the .env file next to compose.yaml or from the environment variables in Coolify (Installation). Many values can also be set in the Administration; what is saved there takes precedence (In the interface).

The list is put together from the pages of this documentation; a test checks against Flowplan's code that no variable is missing. The field above the table filters it, also by parts such as S3_ or OIDC.

VariableDefaultMeaningDescribed in
APP_URL–The public address exactly as it appears in the browser – scheme, host, port if any, without a trailing slash.Configuration › Required
DATABASE_SESSION_URLDATABASE_URLA direct connection (or a session-mode pool) for notifications, the lead in a cluster and pg_dump/pg_restore, when DATABASE_URL points at PgBouncer in transaction mode.Configuration: storage, database and security › Database and cluster
DATABASE_URLemptypostgres://… switches to PostgreSQL.Configuration: storage, database and security › Database and cluster
DRAWIO_URLhttps://embed.diagrams.netAddress of the draw.io editor for the /drawio block, e.g. your own jgraph/drawio container. https only (http only for localhost); an invalid value turns draw.io off.Configuration: storage, database and security › Legal and interface
EXPORT_GIT_AUTHOR–Author of the commits.Markdown export and Git › Push into a Git repository
EXPORT_GIT_BRANCH–Branch, default main.Markdown export and Git › Push into a Git repository
EXPORT_GIT_EMAIL–Author of the commits.Markdown export and Git › Push into a Git repository
EXPORT_GIT_IMPORT–true: changes made in the repository since the last run are taken over before exporting.Markdown export and Git › Push into a Git repository
EXPORT_GIT_TOKEN–Token with write access to that repository.Markdown export and Git › Push into a Git repository
EXPORT_GIT_URL–https:// address of the repository, without credentials.Markdown export and Git › Push into a Git repository
EXPORT_GIT_USERNAME–User name for the token (default flowplan; GitLab: oauth2).Markdown export and Git › Push into a Git repository
FLOWPLAN_AIoffon switches AI on.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_ACCESSeveryoneselected: only people who were enabled.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_API_KEYemptyThe provider's key.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_API_KEY_FILEemptyThe provider's key.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_BASE_URLper providerAddress of the provider, e.g. https://api.mistral.ai/v1 for an OpenAI-compatible service.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_DEVICEonoff: no on-device AI in the apps for iPhone, iPad and Mac.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_EMBED_PER_HOUR5000Maximum chunks embedded per hour for semantic search.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_EMBEDDING_MODELemptyModel for semantic search, e.g. nomic-embed-text (Ollama).Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_FEATURESallAllowed features, comma-separated: write, summarize, ask, database, actions, whiteboard.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_GUESTSoffon: guests may use AI too.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_MODELemptyModel, e.g. llama3.1 or gpt-4o-mini.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_PROVIDERemptyollama, openai (OpenAI-compatible), anthropic or gemini.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_REQUESTS_PER_HOUR300Maximum AI requests per person and hour (plus 30 per minute, 3 at once).Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_SEMANTIC_SEARCHoffon: semantic search with the embedding model.Configuration: AI, voice notes and push › AI
FLOWPLAN_AI_TOKENS–Environment: FLOWPLAN_AI_TOKENS=off switches the token permission off by default (until an administrator saves the AI settings).Meetings › API and MCP
FLOWPLAN_AI_USER_PROVIDERSoffon: people may add their own provider and key.Configuration: AI, voice notes and push › AI
FLOWPLAN_ANONYMOUS_UPLOAD_MB1024How many MB visitors without an account may upload per day on the whole instance – through anonymous forms and editing links (0 = unlimited).Configuration › Operations
FLOWPLAN_BACKUP_FORMATpg_dumpsqlite: scheduled backups on PostgreSQL in the portable SQLite format.Configuration: storage, database and security › Database and cluster
FLOWPLAN_CLUSTERempty1: several instances; requires DATABASE_URL, REDIS_URL, S3_BUCKET, FLOWPLAN_ENCRYPTION_KEY (or FLOWPLAN_SECRETS_KEY) and WEB_PUSH_PUBLIC_KEY/WEB_PUSH_PRIVATE_KEY.Configuration: storage, database and security › Database and cluster
FLOWPLAN_COUNTRY_HEADERemptyThe proxy's header with the country of the request (e.g. CF-IPCountry); turns on the rule "two countries in a short time".Configuration › Operations
FLOWPLAN_DATA_DIR/app/data in the image, ./data otherwiseData directory for SQLite, uploads, push keys and text recognition data.Configuration › Operations
FLOWPLAN_DIST_DIR–FLOWPLAN_DIST_DIR is only meant for parallel development servers, OIDC_ALLOW_LOCAL_HTTP only for tests with a provider on http://localhost, FLOWPLAN_GIT_ALLOW_HTTP only for tests of the Git export with an http:// server (no effect in production).Configuration › Do not set
FLOWPLAN_DROP_ROOT–The image sets NODE_ENV, PORT, HOSTNAME and NEXT_TELEMETRY_DISABLED itself, and FLOWPLAN_DROP_ROOT=1 (Flowplan's tools in the container give up root and run as PUID:PGID).Configuration › Do not set
FLOWPLAN_ENCRYPTION_KEYempty32 bytes, base64 (openssl rand -base64 32).Configuration: storage, database and security › Encryption
FLOWPLAN_ENCRYPTION_KEY_FILEemptyInstead of the variable: path to a file holding the key (Docker secret).Configuration: storage, database and security › Encryption
FLOWPLAN_ENCRYPTION_KEY_PREVIOUSemptyEarlier keys, comma-separated – only for reading after a key change.Configuration: storage, database and security › Encryption
FLOWPLAN_GIT_ALLOW_HTTP–FLOWPLAN_DIST_DIR is only meant for parallel development servers, OIDC_ALLOW_LOCAL_HTTP only for tests with a provider on http://localhost, FLOWPLAN_GIT_ALLOW_HTTP only for tests of the Git export with an http:// server (no effect in production).Configuration › Do not set
FLOWPLAN_HIDE_SPONSORfalsetrue hides only the Support Flowplan ♥ part (link to GitHub Sponsors) under Settings → About Flowplan.Configuration: storage, database and security › Legal and interface
FLOWPLAN_IMPORT_MAX_DOCS10000Largest number of pages per import from AFFiNE, Confluence, Evernote, Google Docs, Obsidian and Notion/Markdown: documents, folders, databases, whiteboards and collections; when importing as a new database, the number of records.Configuration › Operations
FLOWPLAN_IMPORT_MAX_FILES20000Largest number of files (images, attachments) per import from an AFFiNE workspace or snapshot; further ones are left out, the preview names their number and the variable.Configuration › Operations
FLOWPLAN_IMPORT_MAX_MBemptyLargest file for imports from AFFiNE and other tools in MB, for everyone.Configuration › Operations
FLOWPLAN_INSTANCE_IDhost name + randomName of the instance in the overview and in the application_name of its database connections.Cluster mode › More variables
FLOWPLAN_LEADER_INTERVAL5000How often (ms) instances check the lead; decides how fast a failed leader is replaced.Cluster mode › More variables
FLOWPLAN_LITESTREAMonoff: only mirror files, do not back up the database.Configuration: storage, database and security › S3 and database backup
FLOWPLAN_LITESTREAM_SSE_C–The container's start sets FLOWPLAN_LITESTREAM_SSE_C when LITESTREAM_SSE_C_KEY is set; the administration uses it to show whether the Litestream copy is encrypted.Configuration › Do not set
FLOWPLAN_LOCAL_LOGINonfalse turns off e-mail, password and passkeys; then only single sign-on remains.Configuration › Sign-in
FLOWPLAN_MARKETPLACE_URLhttps://marketplace.flowplan.orgAddress of the Flowplan Marketplace (default https://marketplace.flowplan.org); off switches it off.Configuration › Operations
FLOWPLAN_MAX_DOCUMENT_MB16Largest size of a collaboratively edited document (page or record document) in MB.Configuration › Operations
FLOWPLAN_MESSENGER_ALLOW_PRIVATEas FLOWPLAN_WEBHOOK_ALLOW_PRIVATEtrue: people may name servers in the own network (internal addresses, http://) – e.g. Gotify or ntfy at home.Configuration: e-mail, integrations and workflows › Chat apps
FLOWPLAN_MESSENGERSallServices people may connect, comma-separated: telegram, gotify, ntfy, matrix; off for none.Configuration: e-mail, integrations and workflows › Chat apps
FLOWPLAN_METRICSonoff switches off the usage statistics of the monitoring: requests, errors and response times per minute, active people per hour, storage history and AI tokens.Configuration › Operations
FLOWPLAN_METRICS_LOOP–> For load tests: FLOWPLAN_METRICS_LOOP=1 also measures the delay and utilisation of the Node event loop and the time spent in SQLite, and adds them to /api/metrics.Monitoring and maintenance › Prometheus
FLOWPLAN_METRICS_TOKENemptyAt least 16 characters; enables /api/metrics in Prometheus format.Configuration › Operations
FLOWPLAN_MODE–Equivalent: FLOWPLAN_MODE=cluster.Cluster mode › More variables
FLOWPLAN_MOVE_ALLOW_PRIVATEemptyOn the new instance: true allows taking over an instance at an internal address (LAN, VPN, localhost) and over http:// – a home server, say.Configuration: storage, database and security › Instance move
FLOWPLAN_OCRon0 turns off text recognition for scanned PDFs and images.Configuration › Operations
FLOWPLAN_OCR_LANGSdeu,engLanguages of the text recognition, e.g. fra,eng; the first is the main language.Configuration › Operations
FLOWPLAN_PG_BINemptyFolder with pg_dump, pg_restore and psql if they are not on the PATH.PostgreSQL › Variables
FLOWPLAN_PG_CONNECT_TIMEOUT30000Longest a request waits for a free connection from the pool (ms).PostgreSQL › Variables
FLOWPLAN_PG_IDLE_TX_TIMEOUT60000A transaction idle this long is ended (ms).PostgreSQL › Variables
FLOWPLAN_PG_LOCK_TIMEOUT10000Longest a query waits for a lock (ms).PostgreSQL › Variables
FLOWPLAN_PG_POOLpublic, 10, …Schema, connections per instance and time limits.Configuration: storage, database and security › Database and cluster
FLOWPLAN_PG_PREPAREonoff: unnamed queries instead of named prepared statements – for PgBouncer in transaction mode without max_prepared_statements.Configuration: storage, database and security › Database and cluster
FLOWPLAN_PG_SCHEMApublic, 10, …Schema, connections per instance and time limits.Configuration: storage, database and security › Database and cluster
FLOWPLAN_PG_SCHEMA_AUTOonoff: the instance does not create or update the schema itself – a separate step does (node /app/scripts/db-schema.mjs, see cluster mode).PostgreSQL › Variables
FLOWPLAN_PG_STATEMENT_TIMEOUT120000Longest a query may run, in milliseconds; 0 = no limit.PostgreSQL › Variables
FLOWPLAN_PGVECTORonoff ignores pgvector even when it is installed.PostgreSQL › Variables
FLOWPLAN_PUBLIC_API_DOCSfalsetrue makes /api/openapi.json and /api/docs readable without signing in; visitors only see the major version (0.x) there.Configuration › Operations
FLOWPLAN_READY_REQUIREallWhich checks decide /api/health/ready.Configuration: storage, database and security › Database and cluster
FLOWPLAN_REDIS_PREFIXflowplan:Prefix for keys and channels when several installations share one Redis.Cluster mode › More variables
FLOWPLAN_SECRETS_KEY–A key just for this: 32 bytes, base64 or hex (openssl rand -base64 32), or the path to a file (Docker secret).Configuration: storage, database and security › Stored secrets
FLOWPLAN_SECRETS_KEY_FILE–A key just for this: 32 bytes, base64 or hex (openssl rand -base64 32), or the path to a file (Docker secret).Configuration: storage, database and security › Stored secrets
FLOWPLAN_SECURITY_LOGonSecurity events as a JSON line on stdout: on (with address, for fail2ban/CrowdSec), anonymous, off (Security).Configuration › Operations
FLOWPLAN_SECURITY_RETENTION_DAYS90How long security events stay in the database (at least 7).Configuration › Operations
FLOWPLAN_SETUP_TOKENempty (Helm: generated)Recommended for instances reachable from the internet: the first account and the restore on the setup screen only work via /register?setup=<token>.Configuration › Sign-in
FLOWPLAN_SKIP_TYPECHECK–FLOWPLAN_SKIP_TYPECHECK=1 is meant for development only: it skips the TypeScript check during the build when it already ran, as in our CI.Installation with Docker › Build the image yourself
FLOWPLAN_SNAPSHOT_RETENTION_DAYS180How long automatic versions are kept, in days (0 = forever).Configuration › Operations
FLOWPLAN_SOURCE_URLFlowplan’s GitHub repositoryAddress of the source of the code running on this instance (http or https).Configuration: storage, database and security › Legal and interface
FLOWPLAN_TELEGRAM_API_URLhttps://api.telegram.orgAddress of the Bot API for the instance's bot – a self-hosted Telegram Bot API server (opens in a new tab) or a relay/proxy.Configuration: e-mail, integrations and workflows › Chat apps
FLOWPLAN_TELEGRAM_BOT_TOKENemptyToken of the instance's Telegram bot (from @BotFather).Configuration: e-mail, integrations and workflows › Chat apps
FLOWPLAN_TRUSTED_PROXIES1Number of proxies in front of Flowplan (Traefik alone: 1, Pangolin in front of Traefik: 2, 0 = trust no header).Configuration › Operations
FLOWPLAN_UPDATE_CHECKonfalse turns off the check for new versions (for instances without internet).Configuration › Operations
FLOWPLAN_UPDATE_URLGitHub APIAnother address for the latest release (same format as api.github.com/repos/yannicschuller/flowplan/releases/latest), such as an internal mirror.Configuration › Operations
FLOWPLAN_VERSION–Choose a fixed version with FLOWPLAN_VERSION=0.7.0 in .env.Installation with Docker › With Docker Compose
FLOWPLAN_WEBHOOK_ALLOW_PRIVATEemptytrue allows webhooks to internal addresses and http:// – such as Home Assistant or n8n in the same network.Configuration: e-mail, integrations and workflows › Integrations
FLOWPLAN_WORKFLOW_ACTIVE_PER_WORKSPACE100Active workflows per workspaceConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_AI_TOKENS_PER_DAY100000AI tokens per workflow and day (0 = AI nodes off)Configuration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_CASCADE_DEPTH5Depth of workflows triggering each otherConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_EXTERNAL_MAILonE-mails to addresses outside the membersConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_FOREACH_MAX100Items per “For each”Configuration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_HTTPonHTTP node allowedConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_HTTP_ALLOW_PRIVATEfalseAllow internal addresses (home network, n8n)Configuration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_HTTP_HOSTSemptyOnly these hosts (comma-separated)Configuration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_LEASE_MS–> Development and tests only: FLOWPLAN_WORKFLOW_LEASE_MS (default 120000, a step's lease), FLOWPLAN_WORKFLOW_POLL_MS (5000, how often each instance looks for due steps) and FLOWPLAN_WORKFLOW_SWEEP_MS (60000, how often expired leases go back to the queue) …Configuration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_MAILS_PER_DAY100E-mails per workflow and dayConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_MAX_WAIT_DAYS365Longest wait or approval deadlineConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_PARALLEL_RUNS10Runs of one workflow running at the same time (1–100); further ones wait in the queueConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_POLL_MS–> Development and tests only: FLOWPLAN_WORKFLOW_LEASE_MS (default 120000, a step's lease), FLOWPLAN_WORKFLOW_POLL_MS (5000, how often each instance looks for due steps) and FLOWPLAN_WORKFLOW_SWEEP_MS (60000, how often expired leases go back to the queue) …Configuration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_RUN_DAYS30Days runs are keptConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_RUNS_KEPT10000Keep at most this many runs per workflow (100–1,000,000); older finished ones are deleted daily, open ones neverConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_RUNS_PER_MINUTE60Runs per minute and workflowConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_STEPS_PER_RUN200Steps per runConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_SWEEP_MS–> Development and tests only: FLOWPLAN_WORKFLOW_LEASE_MS (default 120000, a step's lease), FLOWPLAN_WORKFLOW_POLL_MS (5000, how often each instance looks for due steps) and FLOWPLAN_WORKFLOW_SWEEP_MS (60000, how often expired leases go back to the queue) …Configuration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_TEST_RUNS_PER_MINUTE10Test and dry runs per person and minuteConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_WORKERS4Steps at once per instanceConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOW_WORKSPACE_RUNS_PER_MINUTE600Runs per minute and workspaceConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKFLOWSonMain switch; off: no new workflow pages, all pausedConfiguration: e-mail, integrations and workflows › Workflows
FLOWPLAN_WORKSPACE_QUOTA_MBunlimitedDefault storage quota per workspace in MB (0 = unlimited).Configuration › Operations
GIPHY_API_KEYemptyKey for the GIF search on whiteboards at GIPHY or Tenor (if both are set, GIPHY wins).Configuration: e-mail, integrations and workflows › Integrations
GIT_COMMIT–Version and commit (FLOWPLAN_VERSION, GIT_COMMIT, SOURCE_COMMIT) come from the build; FLOWPLAN_VERSION in .env only picks the image tag in compose.yaml.Configuration › Do not set
GOOGLE_CALENDAR_CLIENT_IDemptyOAuth client (type “Web application”) from the Google Cloud Console, with the Google Calendar API enabled and the scope …/auth/calendar.Configuration: e-mail, integrations and workflows › Calendar sync
GOOGLE_CALENDAR_CLIENT_SECRETemptyOAuth client (type “Web application”) from the Google Cloud Console, with the Google Calendar API enabled and the scope …/auth/calendar.Configuration: e-mail, integrations and workflows › Calendar sync
IMPRINT_URLemptyLink to the legal notice, e.g. https://example.com/imprint.Configuration: storage, database and security › Legal and interface
INBOUND_IMAP_FOLDERINBOXFolder that is polled.Configuration: e-mail, integrations and workflows › Inbound e-mail (IMAP)
INBOUND_IMAP_HOSTemptyTurns on IMAP polling (together with INBOUND_IMAP_USER).Configuration: e-mail, integrations and workflows › Inbound e-mail (IMAP)
INBOUND_IMAP_PASSWORDemptySign-in at the mailbox.Configuration: e-mail, integrations and workflows › Inbound e-mail (IMAP)
INBOUND_IMAP_PORT993Port (143 when INBOUND_IMAP_TLS=false).Configuration: e-mail, integrations and workflows › Inbound e-mail (IMAP)
INBOUND_IMAP_TLStruefalse only for a mail server on the same host or network (unencrypted).Configuration: e-mail, integrations and workflows › Inbound e-mail (IMAP)
INBOUND_IMAP_USERemptySign-in at the mailbox.Configuration: e-mail, integrations and workflows › Inbound e-mail (IMAP)
INBOUND_MAIL_AUTHSERV_IDemptyThe id (authserv-id) your own receiving mail server or provider starts its Authentication-Results header with, e.g. mx.example.com.Configuration: e-mail, integrations and workflows › Inbound e-mail (IMAP)
INBOUND_MAIL_DOMAINemptyDomain of the inbound addresses, e.g. mail.example.com.Configuration: e-mail, integrations and workflows › Inbound e-mail (IMAP)
ISSUE_SYNC_ALLOW_PRIVATEemptytrue also allows internal addresses for the servers listed in ISSUE_SYNC_ALLOWED_HOSTS – for example a GitLab in the same network.Configuration: e-mail, integrations and workflows › Integrations
ISSUE_SYNC_ALLOWED_HOSTSemptyOwn servers for the GitHub, GitLab and Forgejo issue sync, comma-separated (e.g. gitlab.example.org). github.com, gitlab.com and codeberg.org are always allowed; other servers only when listed here.Configuration: e-mail, integrations and workflows › Integrations
LDAP_BASE_DN–Where people are searched, e.g. ou=people,dc=example,dc=org.Users from a directory: SCIM and LDAP › Sign-in with LDAP
LDAP_BIND_DNemptySearch account.Users from a directory: SCIM and LDAP › Sign-in with LDAP
LDAP_BIND_PASSWORDemptySearch account.Users from a directory: SCIM and LDAP › Sign-in with LDAP
LDAP_CONTACTSonoff turns contacts from the directory off.Users from a directory: SCIM and LDAP › Contacts from LDAP
LDAP_CONTACTS_ATTRIBUTES–More attributes mappings may use (separated by commas or spaces).Users from a directory: SCIM and LDAP › Contacts from LDAP
LDAP_CONTACTS_BASE_DNLDAP_BASE_DNWhere contacts are searched; the OU tree of the import dialog starts here.Users from a directory: SCIM and LDAP › Contacts from LDAP
LDAP_CONTACTS_FILTER(&(|(objectClass=inetOrgPerson)(objectClass=user)(objectClass=contact))(!(objectClass=computer)))Which entries are people.Users from a directory: SCIM and LDAP › Contacts from LDAP
LDAP_CONTACTS_SYNC_MINUTES60Interval of the sync (15–1440).Users from a directory: SCIM and LDAP › Contacts from LDAP
LDAP_GROUP_ATTRIBUTEmemberOfAttribute with the person's groups.Users from a directory: SCIM and LDAP › Sign-in with LDAP
LDAP_STARTTLSfalsetrue: encrypt ldap:// with StartTLS.Users from a directory: SCIM and LDAP › Sign-in with LDAP
LDAP_TIMEOUT_MS8000Time limit per LDAP operation.Users from a directory: SCIM and LDAP › Sign-in with LDAP
LDAP_TLS_CAemptyCA certificate for ldaps:// or StartTLS (file path or PEM text).Users from a directory: SCIM and LDAP › Sign-in with LDAP
LDAP_URLemptyldap://host:389 or ldaps://host:636.Users from a directory: SCIM and LDAP › Sign-in with LDAP
LDAP_USER_FILTER(|(uid={user})(mail={user})){user} is replaced by the escaped name.Users from a directory: SCIM and LDAP › Sign-in with LDAP
LITESTREAM_SSE_C_KEYemptyOptional: the storage provider encrypts the Litestream replica (SSE-C, 32 bytes base64, only over https and with providers that support SSE-C).Configuration: storage, database and security › S3 and database backup
MEETING_LIVE_TRANSCRIPTIONonoff: transcribe meetings only after they stop instead of while recording.Configuration: AI, voice notes and push › Voice notes (Whisper)
MOBILE_PUSH–Notifications to the apps for iPhone, iPad and Android.Configuration: AI, voice notes and push › Push notifications
MOBILE_PUSH_CONTENT–Whether the notification's text comes along – and with it the buttons Done and Tomorrow on due tasks and Reply on comments (Buttons on notifications); Mark as read is always there.Configuration: AI, voice notes and push › Push notifications
MS_CALENDAR_CLIENT_IDemptyApp registration in Microsoft Entra ID (web platform) with the delegated permissions Calendars.ReadWrite and offline_access.Configuration: e-mail, integrations and workflows › Calendar sync
MS_CALENDAR_CLIENT_SECRETemptyApp registration in Microsoft Entra ID (web platform) with the delegated permissions Calendars.ReadWrite and offline_access.Configuration: e-mail, integrations and workflows › Calendar sync
MS_CALENDAR_TENANTcommoncommon (work and personal accounts), organizations or a tenant ID.Configuration: e-mail, integrations and workflows › Calendar sync
NETBOX_ALLOW_PRIVATEemptytrue also allows internal addresses and http:// for the NetBox import on whiteboards – for example a NetBox in the same network.Configuration: e-mail, integrations and workflows › Integrations
NEXT_TELEMETRY_DISABLED–The image sets NODE_ENV, PORT, HOSTNAME and NEXT_TELEMETRY_DISABLED itself, and FLOWPLAN_DROP_ROOT=1 (Flowplan's tools in the container give up root and run as PUID:PGID).Configuration › Do not set
OIDC_ADMIN_GROUP–Members of this group see the Administration.Single sign-on with OIDC › Variables
OIDC_ALLOW_LOCAL_HTTP–FLOWPLAN_DIST_DIR is only meant for parallel development servers, OIDC_ALLOW_LOCAL_HTTP only for tests with a provider on http://localhost, FLOWPLAN_GIT_ALLOW_HTTP only for tests of the Git export with an http:// server (no effect in production).Configuration › Do not set
OIDC_ALLOWED_GROUP–If set, only members of this group may sign in.Single sign-on with OIDC › Variables
OIDC_CLIENT_ID–Client ID.Configuration › Sign-in
OIDC_CLIENT_SECRET–Client secret.Configuration › Sign-in
OIDC_GROUPS_CLAIM–The claim with the groups, also as a path such as realm_access.roles.Single sign-on with OIDC › Variables
OIDC_ISSUER–The issuer URL; Flowplan reads the discovery from it (/.well-known/openid-configuration).Single sign-on with OIDC › Variables
OIDC_LINKED_SSO_ONLY–true: accounts connected to SSO sign in through SSO only (off by default).Single sign-on with OIDC › Variables
OIDC_NEW_ACCOUNTS–false: SSO sign-in creates no new accounts (on by default) – only existing, connected or SCIM-provisioned accounts sign in.Single sign-on with OIDC › Variables
OIDC_PICTURE–Take the profile picture from the picture claim (on by default, off turns it off).Single sign-on with OIDC › Variables
OIDC_PROMPT_CREATE–true: Sign up opens the provider's registration directly (prompt=create).Single sign-on with OIDC › Variables
OIDC_SCOPES–With SSO the group is missing in the token: check OIDC_SCOPES, OIDC_GROUPS_CLAIM, OIDC_ADMIN_GROUP and sign in again.Operations and troubleshooting › Troubleshooting
OLLAMA_URLemptyAddress of Ollama, e.g. http://ollama:11434 with the Compose service.Configuration: AI, voice notes and push › AI
OTEL_EXPORTER_OTLP_ENDPOINTemptyOTLP collector (HTTP); security events go there as OpenTelemetry logs.Configuration › Operations
OTEL_EXPORTER_OTLP_HEADERS–With OTEL_EXPORTER_OTLP_HEADERS and OTEL_SERVICE_NAME.Configuration › Operations
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT–With OTEL_EXPORTER_OTLP_ENDPOINT (or OTEL_EXPORTER_OTLP_LOGS_ENDPOINT) Flowplan sends the events as OTLP logs (HTTP/JSON, /v1/logs) to your collector, e.g. Grafana Alloy, the OpenTelemetry Collector, Grafana Cloud, Honeycomb or Datadog.Security and attack detection › OpenTelemetry
OTEL_EXPORTER_OTLP_LOGS_HEADERSOTEL_EXPORTER_OTLP_HEADERSHeaders for the collector, for the logs only: api-key=abc,x-scope=flowplan (comma-separated, values URL-encoded).Security and attack detection › More variables
OTEL_SERVICE_NAME–With OTEL_EXPORTER_OTLP_HEADERS and OTEL_SERVICE_NAME.Configuration › Operations
PG_CLIENT_MAJOR–Build arguments: PG_CLIENT_MAJOR (default 18) chooses the version of pg_dump, pg_restore and psql in the image – at least your PostgreSQL server's major version (PostgreSQL).Installation with Docker › Build the image yourself
PGCONNECT_TIMEOUT15How many seconds pg_dump, pg_restore and psql wait at most for the connection to the server (libpq's variable).PostgreSQL › Variables
PGID1000 / same as PUIDOnly in the image, without user: (as with linuxserver.io): at start Flowplan gives the data folder to this user and group and runs as them, never as root; 0 is refused.Configuration › Operations
PLUGIN_ALLOWED_ORIGINSemptyHTTPS origins owners may register block extensions from, comma-separated (e.g. https://plugins.example.org).Configuration: e-mail, integrations and workflows › Integrations
PRIVACY_URLemptyLink to the privacy policy, in the same places and also only when set.Configuration: storage, database and security › Legal and interface
PUID1000 / same as PUIDOnly in the image, without user: (as with linuxserver.io): at start Flowplan gives the data folder to this user and group and runs as them, never as root; 0 is refused.Configuration › Operations
PUSH_RELAY–off: no relay.Configuration: AI, voice notes and push › Push notifications
PUSH_RELAY_URL–The push relay notifications to the apps go through.Configuration: AI, voice notes and push › Push notifications
REDIS_URLemptyRedis for cluster mode, redis://… or rediss://….Configuration: storage, database and security › Database and cluster
RENDER_EXTERNAL_HOSTNAME–Address: without APP_URL, Flowplan uses Render's own address (RENDER_EXTERNAL_URL, or else https:// with RENDER_EXTERNAL_HOSTNAME).Deploy in one click › Render
RENDER_EXTERNAL_URL–Address: without APP_URL, Flowplan uses Render's own address (RENDER_EXTERNAL_URL, or else https:// with RENDER_EXTERNAL_HOSTNAME).Deploy in one click › Render
S3_ACCESS_KEY_ID–Access keys with read and write access to the bucket.Configuration: storage, database and security › S3 and database backup
S3_BUCKETemptyTurns S3 on.Configuration: storage, database and security › S3 and database backup
S3_ENDPOINTAWSAPI address of the storage, e.g. http://minio:9000.Configuration: storage, database and security › S3 and database backup
S3_PREFIXflowplanFolder in the bucket; files under <prefix>/uploads/, the database under <prefix>/db/.Configuration: storage, database and security › S3 and database backup
S3_REGIONus-east-1Region.Configuration: storage, database and security › S3 and database backup
S3_SECRET_ACCESS_KEY–Access keys with read and write access to the bucket.Configuration: storage, database and security › S3 and database backup
SESSION_APP_DAYS90An app's session ends after this many days without use (1–365).Configuration › Sign-in
SESSION_APP_REMEMBERonThe desktop and mobile apps stay signed in while they (or their widgets) are used – for sign-ins the app proves (hand-off through the browser, or password with the app's device key; see Sign-in).Configuration › Sign-in
SESSION_GROUPS_HOURSemptyOnly when set: SSO sessions with "stay signed in" end after this many hours already, so group changes at the provider take effect with the new sign-in.Configuration › Sign-in
SESSION_HOURS–How long a browser session is valid in hours, as long as "Stay signed in" is not used; the apps stay signed in (see Stay signed in).Single sign-on with OIDC › Variables
SESSION_IDLE_HOURS168With "stay signed in" in the browser: the session ends this many hours after it was last used (1–8760).Configuration › Sign-in
SESSION_MAX_DAYS30 / 365Sessions that stay signed in end at the latest this many days after signing in (1–365; default 30 in the browser, 365 in the apps; never shorter than the time without use) – with SSO just as with password and passkey.Configuration › Sign-in
SESSION_REMEMBERofftrue offers Stay signed in in the browser when signing in – see Sign-in.Configuration › Sign-in
SMTP_FROMFlowplan <SMTP_USER>Sender, e.g. Flowplan <[email protected]>.Configuration: e-mail, integrations and workflows › E-mail (SMTP)
SMTP_HOSTemptyTurns on sending e-mail: invitations, address confirmations, password resets and digests of unread notifications.Configuration: e-mail, integrations and workflows › E-mail (SMTP)
SMTP_PASSWORDemptySign-in at the mail server.Configuration: e-mail, integrations and workflows › E-mail (SMTP)
SMTP_PORT587Port.Configuration: e-mail, integrations and workflows › E-mail (SMTP)
SMTP_SECUREby porttrue/false forces TLS from the start of the connection.Configuration: e-mail, integrations and workflows › E-mail (SMTP)
SMTP_USERemptySign-in at the mail server.Configuration: e-mail, integrations and workflows › E-mail (SMTP)
SOURCE_COMMIT–Docker images from our workflow know their commit; with Coolify it comes from SOURCE_COMMIT.Administering the instance › Instance
SPACE_GIT_ALLOW_PRIVATEemptytrue also allows internal addresses for the servers listed in SPACE_GIT_ALLOWED_HOSTS – for example a Forgejo on the same host that the container reaches via --add-host git.example.org:host-gateway.Configuration: e-mail, integrations and workflows › Integrations
SPACE_GIT_ALLOWED_HOSTSemptyAllowed Git servers for it, comma-separated (e.g. git.example.org).Configuration: e-mail, integrations and workflows › Integrations
SPACE_GIT_EXPORTemptytrue turns on the Git export of spaces: space owners push their space into a repository of their own, daily or weekly.Configuration: e-mail, integrations and workflows › Integrations
TENOR_API_KEYemptyKey for the GIF search on whiteboards at GIPHY or Tenor (if both are set, GIPHY wins).Configuration: e-mail, integrations and workflows › Integrations
WEB_PUSH_PRIVATE_KEY–VAPID key pair.Configuration: AI, voice notes and push › Push notifications
WEB_PUSH_PUBLIC_KEY–VAPID key pair.Configuration: AI, voice notes and push › Push notifications
WEB_PUSH_SUBJECT–Contact for the push services, e.g. mailto:[email protected].Configuration: AI, voice notes and push › Push notifications
WHISPER_API_KEYemptyOnly if the service requires a key.Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_DIARIZEemptyon: ask for speaker separation (diarize=true), only for services that support it.Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_LANGUAGEdeLanguage of the recordings (e.g. en).Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_MAX_MB200Largest recording in MB.Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_MODELSystran/faster-whisper-smallThe model name as the service expects it.Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_PROMPTemptyVocabulary for all workspaces (names, acronyms, separated by commas), sent to Whisper as prompt – before the workspace's glossary, together at most about 550 characters.Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_RESPONSE_FORMATverbose_jsonResponse format of speech recognition; falls back to json once.Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_TIMEOUT_SECONDSemptyHow long one transcription may take, in seconds.Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_URLemptyAddress of an OpenAI-compatible Whisper server (POST /v1/audio/transcriptions), e.g. http://whisper:8000.Configuration: AI, voice notes and push › Voice notes (Whisper)
WHISPER_VADemptyon: skip silence first (vad_filter=true, faster-whisper/speaches) – fewer made-up lines.Configuration: AI, voice notes and push › Voice notes (Whisper)
Was this helpful?
YesThanks!
No – tell us what's missing

Found a mistake or something missing?Edit on GitHub