If you selfhost, please make sure to create your own oAuth app and report the credentials in the dashboard or directly fill these env vars in your .env here!

Backend

Secrets

VariableExamplePurpose
JWT_SECRETsecret_jwtJwt token used to authenticate requests coming from the webapp to the server
ENCRYPT_CRYPTO_SECRET_KEY0123456789abcdef0123456789abcdef256-Bit Encryption key used to encrypt sensitive data

Configuration

VariableExamplePurpose
ENVdevValues are dev, prod or sandbox
DISTRIBUTIONselfhostValues are selfhost or managed
PANORA_BASE_API_URLhttp://localhost:3000
REDIS_HOSTredisThe redis host
REDIS_PASSA3vniod98Zbuvn9u5The redis password
REDIS_PORT6379The redis port
EMAIL_SENDING_ADDRESS
SMTP_HOST
SMTP_PORT
SMTP_USER
SMTP_PASSWORD

Errors & Analytics (Optional in Selfhost)

VariableExamplePurpose
SENTRY_DSNSentry Dsn
SENTRY_ENABLEDFlag which indicates if you want to enable Sentry
POSTHOG_HOST
POSTHOG_KEY
PH_TELEMETRY

Database

VariableExamplePurpose
POSTGRES_USERmy_userusername to get access access to the db
POSTGRES_DBpanora_dbdatabase name to get access access to the db
POSTGRES_HOSTpostgreshost to get access access to the db
POSTGRES_PASSWORDmy_passwordpassword to get access access to the db

Ingress

Check here to set up Ngrok !
VariableExamplePurpose
REDIRECT_TUNNEL_INGRESShttps://MY-NGROK-DOMAIN.ngrok-free.appMandatory only when DISTRIBUTION=selfhost. Endpoint (an Ngrok tunnel domain) when you have to test your OAuth App and needs a HTTPS redirectUri that redirects to your localhost (useful for contributors that might need to test their oAuth flow)
WEBHOOK_INGRESShttps://MY-NGROK-DOMAIN.ngrok-free.appIf you plan to use the Backend SDK to receive data, if your receiving server is running locally you must use a Ngrok redirect as well. (our main API is runnning within docker and doesnt have localhost context so requests must be https). Alternatively, you can just input it using the dashboard.

Providers Specific Credentials

You must manually create a custom OAuth2 App inside the 3rd party and copy the critical values (likely client id and client secret)

You have the option to manage a custom 3rd party OAuth App.

Each custom 3rd party environment variable must be of the form PROVIDER_category_SOFTWAREMODE_ATTRIBUTE where

  • PROVIDER is any 3rd party name
  • category is for example [CRM, TICKETING, MARKETINGAUTOMATION, …]
  • SOFTWAREMODE is [ CLOUD, ONPREMISE ]
  • ATTRIBUTE is for example [ CLIENT_ID, CLIENT_SECRET, SUBDOMAIN, … ]

Example :

  • HUBSPOT_CRM_CLOUD_CLIENT_ID = client_id_value_pasted_from_hubspot_developer_app
  • HUBSPOT_CRM_CLOUD_CLIENT_SECRET = client_secret_value_pasted_from_hubspot_developer_app
VariableExamplePurpose
HUBSPOT_CRM_CLOUD_CLIENT_ID
HUBSPOT_CRM_CLOUD_CLIENT_SECRET
ZOHO_CRM_CLOUD_CLIENT_ID
ZOHO_CRM_CLOUD_CLIENT_SECRET
PIPEDRIVE_CRM_CLOUD_CLIENT_ID
PIPEDRIVE_CRM_CLOUD_CLIENT_SECRET
ZENDESK_CRM_CLOUD_CLIENT_ID
ZENDESK_CRM_CLOUD_CLIENT_SECRET
ATTIO_CRM_CLOUD_CLIENT_ID
ATTIO_CRM_CLOUD_CLIENT_SECRET
CLOSE_CRM_CLOUD_CLIENT_ID
CLOSE_CRM_CLOUD_CLIENT_SECRET
CAPSULE_CRM_CLOUD_CLIENT_ID
CAPSULE_CRM_CLOUD_CLIENT_SECRET
TEAMLEADER_CRM_CLOUD_CLIENT_ID
TEAMLEADER_CRM_CLOUD_CLIENT_SECRET
ZENDESK_TICKETING_CLOUD_CLIENT_ID
ZENDESK_TICKETING_CLOUD_CLIENT_SECRET
ZENDESK_TICKETING_CLOUD_SUBDOMAIN
JIRA_TICKETING_CLOUD_CLIENT_ID
JIRA_TICKETING_CLOUD_CLIENT_SECRET
FRONT_TICKETING_CLOUD_CLIENT_ID
FRONT_TICKETING_CLOUD_CLIENT_SECRET
GORGIAS_TICKETING_CLOUD_CLIENT_ID
GORGIAS_TICKETING_CLOUD_CLIENT_SECRET
LINEAR_TICKETING_CLOUD_CLIENT_ID
LINEAR_TICKETING_CLOUD_CLIENT_SECRET
CLICKUP_TICKETING_CLOUD_CLIENT_ID
CLICKUP_TICKETING_CLOUD_CLIENT_SECRET
ASANA_TICKETING_CLOUD_CLIENT_ID
ASANA_TICKETING_CLOUD_CLIENT_SECRET
AHA_TICKETING_CLOUD_CLIENT_ID
AHA_TICKETING_CLOUD_CLIENT_SECRET
AHA_TICKETING_CLOUD_SUBDOMAIN
HELPSCOUT_TICKETING_CLOUD_CLIENT_ID
HELPSCOUT_TICKETING_CLOUD_CLIENT_SECRET
IRONCLAD_TICKETING_CLOUD_CLIENT_ID
IRONCLAD_TICKETING_CLOUD_CLIENT_SECRET
GITHUB_TICKETING_CLOUD_CLIENT_ID
GITHUB_TICKETING_CLOUD_CLIENT_SECRET
WRIKE_TICKETING_CLOUD_CLIENT_ID
WRIKE_TICKETING_CLOUD_CLIENT_SECRET
GITLAB_TICKETING_CLOUD_CLIENT_ID
GITLAB_TICKETING_CLOUD_CLIENT_SECRET
SAGE_ACCOUNTING_CLOUD_CLIENT_ID
SAGE_ACCOUNTING_CLOUD_CLIENT_SECRET
PENNYLANE_ACCOUNTING_CLOUD_CLIENT_ID
PENNYLANE_ACCOUNTING_CLOUD_CLIENT_SECRET
FREEAGENT_ACCOUNTING_CLOUD_CLIENT_ID
FREEAGENT_ACCOUNTING_CLOUD_CLIENT_SECRET
FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_ID
FRESHBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET
MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_ID
MONEYBIRD_ACCOUNTING_CLOUD_CLIENT_SECRET
QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_ID
QUICKBOOKS_ACCOUNTING_CLOUD_CLIENT_SECRET
XERO_ACCOUNTING_CLOUD_CLIENT_ID
XERO_ACCOUNTING_CLOUD_CLIENT_SECRET
DEEL_HRIS_CLOUD_CLIENT_ID
DEEL_HRIS_CLOUD_CLIENT_SECRET
RIPPLING_HRIS_CLOUD_CLIENT_ID
RIPPLING_HRIS_CLOUD_CLIENT_SECRET
GUSTO_HRIS_CLOUD_CLIENT_ID
GUSTO_HRIS_CLOUD_CLIENT_SECRET
FACTORIAL_HRIS_CLOUD_CLIENT_ID
FACTORIAL_HRIS_CLOUD_CLIENT_SECRET
NAMELY_HRIS_CLOUD_CLIENT_ID
NAMELY_HRIS_CLOUD_CLIENT_SECRET
NAMELY_HRIS_CLOUD_SUBDOMAIN
GOOGLEDRIVE_FILESTORAGE_CLOUD_CLIENT_ID
GOOGLEDRIVE_FILESTORAGE_CLOUD_CLIENT_SECRET
ONEDRIVE_FILESTORAGE_CLOUD_CLIENT_ID
ONEDRIVE_FILESTORAGE_CLOUD_CLIENT_SECRET
SHAREPOINT_FILESTORAGE_CLOUD_CLIENT_ID
SHAREPOINT_FILESTORAGE_CLOUD_CLIENT_SECRET
DROPBOX_FILESTORAGE_CLOUD_CLIENT_ID
DROPBOX_FILESTORAGE_CLOUD_CLIENT_SECRET
BOX_FILESTORAGE_CLOUD_CLIENT_ID
BOX_FILESTORAGE_CLOUD_CLIENT_SECRET
KEAP_MARKETINGAUTOMATION_CLOUD_CLIENT_ID
KEAP_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET
MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_ID
MAILCHIMP_MARKETINGAUTOMATION_CLOUD_CLIENT_SECRET
KLAVIYO_TICKETING_CLOUD_CLIENT_ID
KLAVIYO_TICKETING_CLOUD_CLIENT_SECRET
NOTION_PRODUCTIVITY_CLOUD_CLIENT_ID
NOTION_PRODUCTIVITY_CLOUD_CLIENT_SECRET
SLACK_PRODUCTIVITY_CLOUD_CLIENT_ID
SLACK_PRODUCTIVITY_CLOUD_CLIENT_SECRET
GREENHOUSE_ATS_CLOUD_CLIENT_ID
GREENHOUSE_ATS_CLOUD_CLIENT_SECRET
JOBADDER_ATS_CLOUD_CLIENT_ID
JOBADDER_ATS_CLOUD_CLIENT_SECRET
LEVER_ATS_CLOUD_CLIENT_ID
LEVER_ATS_CLOUD_CLIENT_SECRET
SHOPIFY_ECOMMERCE_CLOUD_CLIENT_ID
SHOPIFY_ECOMMERCE_CLOUD_CLIENT_SECRET
SHOPIFY_ECOMMERCE_CLOUD_SUBDOMAIN
SQUARESPACE_ECOMMERCE_CLOUD_CLIENT_ID
SQUARESPACE_ECOMMERCE_CLOUD_CLIENT_SECRET
EBAY_ECOMMERCE_CLOUD_CLIENT_ID
EBAY_ECOMMERCE_CLOUD_CLIENT_SECRET
EBAY_ECOMMERCE_CLOUD_RUVALUE
FAIRE_ECOMMERCE_CLOUD_CLIENT_ID
FAIRE_ECOMMERCE_CLOUD_CLIENT_SECRET
WEBFLOW_ECOMMERCE_CLOUD_CLIENT_ID
WEBFLOW_ECOMMERCE_CLOUD_CLIENT_SECRET
AMAZON_ECOMMERCE_CLOUD_CLIENT_ID
AMAZON_ECOMMERCE_CLOUD_CLIENT_SECRET
AMAZON_ECOMMERCE_CLOUD_APPLICATION_ID
MICROSOFTDYNAMICSSALES_CRM_CLOUD_CLIENT_ID
MICROSOFTDYNAMICSSALES_CRM_CLOUD_CLIENT_SECRET
SALESFORCE_CRM_CLOUD_CLIENT_ID
SALESFORCE_CRM_CLOUD_CLIENT_SECRET

RAG

Embedding Models

Just use 1 model, it’s not required of course to have them all.

VariableExamplePurpose
OPENAI_API_KEY
JINA_API_KEY
COHERE_API_KEY
VariableExamplePurpose
UNSTRUCTURED_API_KEY
UNSTRUCTURED_API_URL

Vector Database

Just use 1 Vector DB, it’s not required of course to have them all.

VariableExamplePurpose
PINECONE_API_KEY
PINECONE_INDEX_NAME
QDRANT_BASE_URL
QDRANT_API_KEY
QDRANT_COLLECTION_NAME
CHROMADB_URL
CHROMADB_COLLECTION_NAME
WEAVIATE_URL
WEAVIATE_API_KEY
WEAVIATE_CLASS_NAME
TURBOPUFFER_API_KEY
MILVUS_ADDRESS
MILVUS_COLLECTION_NAME

Frontend

Configuration

VariableExamplePurpose
NEXT_PUBLIC_BACKEND_DOMAINhttp://localhost:3000Server url. Values are [http://localhost:3000, https://api-dev.panora.dev, https://api-sandbox.panora.dev, https://api.panora.dev]
NEXT_PUBLIC_MAGIC_LINK_DOMAINhttp://localhost:81Magic link server. Values are [http://localhost:81, https://connect-dev.panora.dev, https://connect.panora.dev ]
NEXT_PUBLIC_DISTRIBUTIONmanagedValues are selfhost or managed
NEXT_PUBLIC_WEBAPP_DOMAINhttp://localhostWebapp client url. Values are [http://localhost, https://app-dev.panora.dev, https://app.panora.dev, ]
NEXT_PUBLIC_POSTHOG_HOSTHost domain of your posthog
NEXT_PUBLIC_POSTHOG_KEYKey of your posthog account

Storage (Optional)

If you selfhost, and you want the RAG feature you must fill these values.Just choose either AWS or Minio ! We already put variables for Minio, so you dont have to do anything. If you’d like to use AWS contact us for more info.

Minio bucket is available at http://localhost:9000

VariableExamplePurpose
MINIO_ROOT_USERmyaccesskey13
MINIO_ROOT_PASSWORDmysecretkey12
AWS_S3_REGION
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY