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_SECRETmust be identical in Easy8 and Chain.EASY_AI_CHAIN_IMAGEis required for the AI package deployment.
Required compose services by product
Easy8 AI Basic
Required runtime services:
appchainceleryredis- LLM provider
Not required:
chroma- embeddings provider
Easy8 AI Knowledge assistant PRO / Easy8 AI Helpdesk
Required runtime services:
appchainceleryredischroma- 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_URLis used by the browser.- If
EASY_AI_PUBLIC_URLis not set, Easy8 defaults it to<Easy8 app URL>/ai/chain. - The Easy8 app URL is built from
::Setting.protocoland::Setting.host_name. ::Setting.host_nameis the URL or host name of the main Easy8 application.EASY_AI_CHAIN_URLis used by Easy8 for server-to-server calls.- If
EASY_AI_CHAIN_URLis not set, Easy8 defaults it tohttp://chain:8000. EASY_AI_CHAIN_HOSTdefaults tochain.EASY_AI_CHAIN_PORTdefaults to8000.EASY_AI_CHAIN_HOSTandEASY_AI_CHAIN_PORTare the internal service coordinates used to buildEASY_AI_CHAIN_URLwhen needed.EASY_AI_JWT_SECRETis still accepted by the chain as a deprecated fallback, but new installations should useEASY_JWT_SECRET.
Public vs internal access
Use these values for different purposes:
EASY_AI_PUBLIC_URLfor browser access from the Easy8 frontendEASY_AI_CHAIN_URLfor 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_URLis not set, it defaults from the application settingHost name and pathon/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/chainURL 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 pathand the effectiveEASY_AI_PUBLIC_URLmatch 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:
3320is the host port exposed by the package compose for thechainservice.- the chain container is started with
--root-path /ai/chain/, so the public/ai/chainprefix 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:
chainchromacelery- shared
redis
The installed scenario then decides which of those services are actually needed by the enabled Easy8 AI product.