- Docker
- Docker compose (docker-compose-plugin preferred)
-
Copy envs/default.env to envs/override.env
-
Edit envs/override.env:
- Set APP_HOST to IP/DNS of platform
- Set LICENSE_USERNAME and LICENSE_PASSWORD to your github username and token in order for pylons to clone private repositories automatically
- Change passwords/keys (for production, use default ones for dev at your own risk)
Special command for SECRETS_MASTER_KEY:
docker run --rm --entrypoint= getcarrier/pylon:1.2.22 python -c 'from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())' -
SSL (optional): copy your server.crt, server.key, ca.crt to ssl/, then:
- edit pylon_*/pylon.yml: uncomment SSL-related settings
- edit docker-compose.yml: uncommend SSL-related settings
- edit envs/override.env: set APP_PROTO to https
-
OpenID Connect SSO (optional):
- edit pylon_auth/configs/auth_core.yml: set auth_provider to oidc
- edit pylon_auth/configs/auth_oidc.yml: insert config for your OIDC provider
- edit pylon_auth/configs/auth_init.yml: specify ID from your provider (e.g. email) for default platform admin
docker compose pull
docker compose up -d
docker compose logs -f-
Login with admin account and wait for private project to be created (~5-10 minutes, refresh the page periodically untill Public and Private projects are present in dropdown)
-
[PGVector] In Public project Settings -> AI Configuration create new PgVector credential:
- Label: elitea-pgvector
- Shared: NO (do not check)
- Set as default: NO (do not check)
- Connection string: postgresql+psycopg://POSTGRES_USER:POSTGRES_PASSWORD@pgvector:POSTGRES_PORT/POSTGRES_DB use values from your default.env/override.env; example: postgresql+psycopg://centry:changeme@pgvector:5432/db
-
[PGVector] In Administration mode Tasks /~/administration/~/tasks/tasks/ start:
- Task: sync_pgvector_credentials
- Parameter (input below task dropdown): force_recreate,save_connstr_to_secrets
-
[LiteLLM] In Administration mode Tasks /~/administration/~/tasks/tasks/ start:
- Task: create_database
- Parameter (input below task dropdown): litellm
-
[LiteLLM] In Tasks table open logs ("file" action) for created task (usually last one with meta: {'task': 'create_database'}) and copy connection string from log.
-
[LiteLLM] In Administration mode Runtime -> Remote /~/administration/~/runtime/remote/ open runtime_engine_litellm config ("file" action)
- Click Load (Raw)
- Change database_url from null to copied connection string
- Generate master key in format sk-[alphanumeric] (example: sk-abcd1234ABCD)
- Change litellm_master_key to generated master key
- Click Save
Example:
database_url: postgresql://aaa:bbb@ccc:5432/litellm litellm_master_key: sk-abcd1234ABCD -
[LiteLLM] In Administration mode Runtime -> Pylons /~/administration/~/runtime/pylons/ open pylon-predicts settings ("cog / wheel" action)
- Click Restart
- Wait for pylon-predicts to restart
-
[LiteLLM] In Administration mode Tasks /~/administration/~/tasks/tasks/ start:
- Task: sync_llm_entities
- Parameter: (leave empty)
-
[Agent state] In Administration mode Tasks /~/administration/~/tasks/tasks/ start:
- Task: create_database
- Parameter (input below task dropdown): agentstate
-
[Agent state] In Tasks table open logs ("file" action) for created task (usually last one with meta: {'task': 'create_database'}) and copy connection string from log.
-
[Agent state] In Administration mode Runtime -> Remote /~/administration/~/runtime/remote/ open indexer_worker config ("file" action)
- Click Load (Raw)
- Uncomment agent_memory_config block
- Change connection_string to copied connection string
- Click Save
Example:
agent_memory_config: type: postgres connection_string: postgresql://aaa:bbb@ccc:5432/agentstate connection_kwargs: autocommit: true