Skip to content

Common Configuration

These settings apply to all on-premises Easy8 AI installations.

Core environment variables

Set these in the main Easy8 deployment .env file:

EASY_JWT_SECRET=change-this-to-a-strong-shared-secret
EASY_AI_CHAIN_IMAGE=registry.example.com/easy-ai-chain:tag

Notes:

  • EASY_JWT_SECRET must be identical in Easy8 and Chain.
  • EASY_AI_CHAIN_IMAGE is required for the AI package deployment.

Required compose services by product

Easy8 AI Basic

Required runtime services:

  • app
  • chain
  • celery
  • redis
  • LLM provider

Not required:

  • chroma
  • embeddings provider

Easy8 AI Knowledge assistant PRO / Easy8 AI Helpdesk

Required runtime services:

  • app
  • chain
  • celery
  • redis
  • chroma
  • embeddings provider
  • LLM provider

Redis is shared between the AI services in the package deployment.

Internal Easy8-to-Chain settings

In the standard package deployment, these values have working defaults and usually do not need to be set manually:

EASY_AI_CHAIN_HOST=chain
EASY_AI_CHAIN_PORT=8000
EASY_AI_CHAIN_URL=http://chain:8000
EASY_AI_PUBLIC_URL=https://your.easy.host/ai/chain

Notes:

  • EASY_AI_PUBLIC_URL is used by the browser.
  • If EASY_AI_PUBLIC_URL is not set, Easy8 defaults it to <Easy8 app URL>/ai/chain.
  • The Easy8 app URL is built from ::Setting.protocol and ::Setting.host_name.
  • ::Setting.host_name is the URL or host name of the main Easy8 application.
  • EASY_AI_CHAIN_URL is used by Easy8 for server-to-server calls.
  • If EASY_AI_CHAIN_URL is not set, Easy8 defaults it to http://chain:8000.
  • EASY_AI_CHAIN_HOST defaults to chain.
  • EASY_AI_CHAIN_PORT defaults to 8000.
  • EASY_AI_CHAIN_HOST and EASY_AI_CHAIN_PORT are the internal service coordinates used to build EASY_AI_CHAIN_URL when needed.
  • EASY_AI_JWT_SECRET is still accepted by the chain as a deprecated fallback, but new installations should use EASY_JWT_SECRET.

Public vs internal access

Use these values for different purposes:

  • EASY_AI_PUBLIC_URL for browser access from the Easy8 frontend
  • EASY_AI_CHAIN_URL for server-to-server calls from the Easy8 application

Do not assume the public URL and internal URL are always the same. In standard package deployments, they usually differ.

For standard package deployments:

  • the public URL usually resolves automatically from the main Easy8 application URL plus /ai/chain
  • the internal chain URL usually resolves automatically to http://chain:8000

Important:

  • In Easy8, if EASY_AI_PUBLIC_URL is not set, it defaults from the application setting Host name and path on /settings.
  • If a customer creates a test instance by copying the production database, this setting may still point to the production URL.
  • In that case, browser-based Easy8 AI requests can be sent to the production /ai/chain URL instead of the test environment.
  • If the reverse proxy is only configured on the test URL, AI activation or assistant actions in the test environment can fail because requests are sent to the wrong host.
  • After cloning an environment, always verify that Host name and path and the effective EASY_AI_PUBLIC_URL match the actual URL of that environment.

Nginx configuration

Easy8 clients access the chain through /ai/chain.

Use a reverse proxy rule equivalent to:

location /ai/chain {
  rewrite ^/ai/chain(/.*)$ $1 break;
  proxy_set_header Host $host:$server_port;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_pass http://127.0.0.1:3320;
}

Notes:

  • 3320 is the host port exposed by the package compose for the chain service.
  • the chain container is started with --root-path /ai/chain/, so the public /ai/chain prefix must be preserved

Optional variables

Use these when needed:

EASY_AI_CORS_ALLOWED_ORIGINS=https://your.easy.host

LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=...
LANGCHAIN_PROJECT=customer-name

Package deployment reminder

The standard package should include docker-compose_easy_ai.yml, which adds:

  • chain
  • chroma
  • celery
  • shared redis

The installed scenario then decides which of those services are actually needed by the enabled Easy8 AI product.