Skip to content
Share & host

Self-hosting

Community Edition (CE) is the free, self-hosted build of LiveContext. It runs every backend service plus the web app with Docker Compose, keeps all your data on your own machine, and can optionally link to a LiveContext Cloud account for hosted models, the marketplace, shared skills, and fresh model catalogs.

License

CE is published under the LiveContext Sustainable Use License 1.0. You may use, copy, modify, and redistribute it for free, including in production and for your organization's internal business. What the license forbids is offering it to third parties, hosted or embedded, to compete with LiveContext's paid versions. Read the LICENSE file in the repository for the exact terms.

Cloud vs Community Edition

Both run the same workflow engine. The differences are about how you run and operate it:

Differences between LiveContext Cloud and Community Edition
TopicCloudCommunity Edition
HostingManaged by LiveContextYou run it on your own infrastructure with Docker Compose
Sign-inEmail and password, social login, and workspace SAML SSO (Team and Enterprise)Built-in email and password; no SAML SSO
IntegrationsFull catalog, always currentThe catalog shipped with the release, then refreshed automatically from the cloud (see below)
ModelsHosted catalog across many providersYour own provider keys and CLI tools, or cloud-hosted models once linked; OpenRouter and Cohere are not available
MarketplaceBuilt inThe cloud marketplace, once the instance is linked to a cloud account (the page only offers to connect until then)
Limits and billingPlans, credit limits, Stripe billingNo plan-limit gating, no Stripe; credits are unlimited but usage is still tracked

Requirements

  • Docker Engine 24 or later with Compose v2, or Docker Desktop with Linux containers.
  • 4 GB of RAM minimum, 8 GB recommended, and several GB of free disk for images and data.
  • A linux/amd64 (x86-64) machine. ARM64 images depend on the release: check that the release you install publishes linux/arm64 images before using Apple Silicon, Raspberry Pi, or other ARM hardware.
  • For the npm launcher: Node.js LTS with npm. For the repository install: Git.
  • For AI features: your own provider key, or a connected LiveContext Cloud account.

Install

Choose one method. Do not run both on the same machine: they use the same container names and ports.

Option 1: npm launcher (local install)

Run this from the folder where you want to keep the configuration:

bash
npx livecontext@latest

The launcher pulls the images, starts the stack, and prints the app URL (normally http://localhost:3000). From the same folder, manage it with npx livecontext@latest status, logs, down, and update. Configuration lives in ./livecontext: copy livecontext/.env.example to livecontext/.env to change settings. The optional add-ons below need Option 2.

Option 2: Docker Compose (local or server)

  1. Get the code and create your configuration file
    bash
    git clone https://github.com/livecontext-ai/livecontext-ce.git
    cd livecontext-ce
    cp docker/.env.ce.example .env
  2. Edit .env before the first start
    On a server, set your own DB_PASSWORD, MINIO_ROOT_USER, and MINIO_ROOT_PASSWORD. Leave the encryption settings empty: the first start generates the keys and keeps them. Do not change database credentials or encryption keys on an existing install without a backup and a migration plan.
  3. Start the stack
    bash
    docker compose up -d
    docker compose ps
    The first start downloads several GB and prepares the database. Wait until livecontext is healthy, then open http://localhost:3000 (or the port set in FRONTEND_PORT).
  4. Create the first account
    The first person to register becomes the install's administrator and goes through the setup wizard.

The stack runs PostgreSQL, Redis, MinIO (S3-compatible file storage, plus a one-time job that creates its bucket), the tools bridge, the LiveContext backend, and the web app. Code execution runs inside the backend; no separate sandbox service is needed.

Running it on a server, NAS, or VPS

The browser must reach two ports: the web app (FRONTEND_PORT, 3000 by default) and the backend (BACKEND_PORT, 8080 by default). Tell the install its public addresses in .env, without a trailing slash, so that email links and OAuth callbacks point at the server rather than at localhost:

.env (LAN example)
PUBLIC_BASE_URL=http://192.168.1.50:3000
GATEWAY_PUBLIC_URL=http://192.168.1.50:8080

For internet access, use HTTPS with a reverse proxy (Caddy, Traefik, nginx). A simple setup uses two hostnames: one proxied to port 3000, one to port 8080 with WebSocket upgrades, for example PUBLIC_BASE_URL=https://app.example.com and GATEWAY_PUBLIC_URL=https://api.example.com. Then run docker compose up -d again. Register <GATEWAY_PUBLIC_URL>/api/credentials/oauth2/callback as the redirect URL with each integration provider whose account you connect through OAuth.

Configuration reference

All settings go in the .env file at the repository root. Compose reads it on every command. Main variables (names and purpose; the example file has the defaults):

Main CE environment variables
VariablePurpose
DB_USERNAMEPostgreSQL user.
DB_PASSWORDPostgreSQL password. Change it before exposing the install.
MINIO_ROOT_USERMinIO user, also used by the app to store files.
MINIO_ROOT_PASSWORDMinIO password, also used by the app to store files.
CREDENTIAL_ENCRYPTION_PASSWORDProtects stored API keys and OAuth tokens. Leave empty to have it generated on first start, then back it up.
CREDENTIAL_ENCRYPTION_SALTCompanion of the encryption password. Same rules.
FRONTEND_PORTPort of the web app (default 3000).
BACKEND_PORTPort of the backend (default 8080).
PUBLIC_BASE_URLAddress where browsers reach the web app. Used in email links and OAuth. No trailing slash.
GATEWAY_PUBLIC_URLAddress where browsers reach the backend. Used for OAuth callbacks. No trailing slash.
ANTHROPIC_API_KEYOptional provider key. The same goes for OPENAI_API_KEY, GOOGLE_API_KEY, GEMINI_API_KEY, MISTRAL_API_KEY, and DEEPSEEK_API_KEY. Keys can also be added later in the app.
MAIL_HOSTYour SMTP relay. See Email below. Related: MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_FROM.
MAIL_SMTP_STARTTLSEncrypts mail when the relay supports it (on by default). Leave it on.
COMPOSE_PROFILESTurns on optional add-ons: renderer, browser-agent, or both.
SCREENSHOT_RENDERER_URLConnects the app to the renderer add-on.
WEBSEARCH_ENABLEDTurns on web search and the Browser Agent (with the browser-agent profile).
CE_VERSIONCHECK_ENABLEDSet to false to turn off the daily update check.
CE_VERSIONCHECK_SENDINSTALLIDSet to false to keep the update check without the anonymous install id.
CHANGELOG_ENABLEDSet to false to remove the in-app "What's new" panel.

The backend reads these at startup: run docker compose up -d after changing them.

Email (SMTP)

Nothing is required to run, but without a working relay every email is lost, including the password reset link, which is the only way back in for a locked-out administrator. Set MAIL_HOST and MAIL_PORT (587 on a real relay), set both MAIL_USERNAME and MAIL_PASSWORD or neither, and use a MAIL_FROM address your relay accepts. If your relay uses a certificate from a private certificate authority, mount that CA (see the next section) instead of turning TLS off. CE never emails workspace invitations: it uses copyable invite links instead.

Behind a TLS-intercepting proxy

If a corporate proxy or antivirus intercepts TLS, the setup wizard detects it during the cloud connection and offers a one-click way to trust that proxy's certificate. To make it permanent, put the proxy's root CA (PEM) in a folder, mount it as ./extra-ca:/app/extra-ca:ro on the livecontext service, and set NODE_EXTRA_CA_CERTS to that file on the bridge service.

Optional add-ons

Both are off by default, need extra memory and disk, and require the repository install. Put the settings in .env so every start, update, and stop keeps them.

Optional add-ons and their .env settings
Add-onWhat it addsSettings in .env
RendererPNG screenshots and PDFs from interface nodes (a headless browser, about 1 GB). Without it, interface nodes still run but produce no screenshot or PDF.COMPOSE_PROFILES=renderer and SCREENSHOT_RENDERER_URL=http://screenshot-renderer:8094
Browser agent and web searchThe Browser Agent and web search (adds a search engine and a browser container). The Browser Agent also needs an available LLM provider.COMPOSE_PROFILES=browser-agent and WEBSEARCH_ENABLED=true

To enable both, use one combined value, COMPOSE_PROFILES=renderer,browser-agent, together with both settings. Then run docker compose up -d.

First-run setup wizard

The first administrator goes through a five-step wizard before reaching the app. Other users are sent straight to chat.

  1. Cloud connection (recommended)
    Connect a LiveContext Cloud account, or skip. Linking unlocks cloud-hosted models, the marketplace, community skills, and fresh catalogs (see below). Skipping keeps the install fully self-contained on your own keys.
  2. AI providers
    Paste API keys for the providers you want: Anthropic, OpenAI, Google, Mistral, DeepSeek, xAI, Perplexity, Z.AI, Qwen, Moonshot, or MiniMax.
  3. CLI providers
    Set up the coding-agent CLIs (Claude Code, Codex, Gemini CLI, Mistral Vibe) that run through the bridge. Verify checks that the CLI is installed and signed in, and then makes it available to administrators right away.
  4. Platform credentials
    Configure credentials for the integrations you plan to use (for example Gmail or Slack).
  5. Done
    The install is marked as set up, once, on the server. Refreshing or changing browser does not bring the wizard back.

Models on a self-hosted install

Model availability on a self-hosted install
GroupDetail
Enabled by defaultAnthropic, OpenAI, Google, Mistral, and DeepSeek, each with its own key. The TypeSafe decision engine for the Classify node is also on, with its own key, and only when the LLM source is API keys.
More API providersxAI, Perplexity, Z.AI, Qwen, Moonshot, and MiniMax can be added with a key in the setup wizard or in Settings > AI Providers.
Not availableOpenRouter and Cohere are not offered on CE and are refused if configured.
CLI providersClaude Code, Codex, Gemini CLI, and Mistral Vibe run through the bridge. A CLI is offered only once the bridge confirms it is installed and signed in.

See Models & providers for reasoning effort, the admin model catalog, and model categories, which work the same on CE.

Linking to a cloud account (optional)

CE runs fully on its own. An administrator can link it to a LiveContext Cloud account in the wizard or later in Settings > Cloud. The Connection tab has Connect to Cloud and Disconnect; the Bundles tab shows the sync status of the Model catalog, the Integrations catalog, and Skills. Linking unlocks:

  • Cloud-hosted models, billed to the cloud account instead of your own keys.
  • The marketplace: browsing, installing, and publishing Applications.
  • Community and global skills shared by the platform.
  • Model and skill updates between releases (see the next section).

Any cloud plan can link an install, the Free plan included. The cloud account must first finish its setup (email verification code and profile): Connect to Cloudtakes you through it before it returns to your install. What runs on the cloud's own keys needs a paid plan on the cloud account: cloud-hosted models, integrations through the cloud's credentials, and web search through the cloud. Without one the install stays linked, keeps the marketplace, skills, and bundle updates, and uses its own keys.

Once linked, two switches decide what runs through the cloud:

Cloud source switches of a linked install
SwitchWhereCloudLocal
LLM sourceSettings > AI ProvidersAPI model calls use the linked cloud account. Tools and traces still run locally. Needs a paid plan on the cloud account.API keys: model calls use the keys configured on this install.
Integration credentialsSettings > CloudIntegration calls, and media generation (images, video, sound, speech, music), run through the cloud account's platform credentials, with a small per-call markup in credits billed there. Needs an active paid subscription on the cloud account.Local keys: integration credentials are configured and used on this install.

When either switch is on Cloud, the cloud account's plan also governs the install (see Plans & billing). If the cloud is unreachable, the install keeps running; only the cloud-dependent features pause.

Keeping models, integrations, and skills fresh

Catalogs arrive as signed bundles. Each bundle is checked against a trusted signing key before it is applied, and a bundle never overwrites your own edits, custom models, or custom APIs.

Catalog bundles and how they reach a self-hosted install
BundleHow it arrivesNeeds a cloud link
Model catalogEvery release ships the cloud's model catalog as of release day, applied at startup. A linked install also syncs updates between releases, at startup and on a schedule.Only for updates between releases
Integrations catalogSeeded at first start, then refreshed from the cloud's public catalog about every 15 minutes. Your custom APIs are never touched.No
SkillsThe cloud's global skills, added as read-only skills that are on for everyone by default (each user can hide one).Yes

Updating

CE never updates itself. Settings > Information shows the running version, edition, commit, and build date (also reachable from About in the user menu). When a newer release exists, the card shows Update available (or Security update for a security fix) with a How to update button and the release notes.

  1. Back up first
    Back up your data, keys, and configuration (see Backups).
  2. Run the update from your cloned folder
    bash
    git pull
    docker compose pull
    docker compose up -d
    Run git pullfirst: the Compose file pins the release's image version, so pulling images without updating the repository gets the same version again. Your data is kept, and database migrations run automatically on startup. With the npm launcher, run npx livecontext@latest update instead.

After an update, a one-time What's new panel describes the newest change. It ships inside the image and makes no network request.

Signing in and adding people

CE uses built-in email and password sign-in. The first person to register becomes the administrator. Once the setup wizard is completed, public registration closes. An administrator then adds people in one of two ways:

  • Invite link: invite by email, then share the copyable link. The person registers through it and joins with the invited role, even while registration is closed.
  • Reopen registration: let anyone create an account without an invitation.

See Organizations & roles for workspaces and roles.

What CE includes and leaves out

What the Community Edition includes and leaves out
AreaDetail
IncludedThe full workflow engine, agents and their tools, the integration catalog, built-in sign-in, embedded code execution, S3-compatible file storage, and unlimited usage. Web search, the Browser Agent, and the renderer are available as opt-in add-ons.
Left outSAML SSO, Stripe billing, plan-limit gating, and the platform margin on model costs.
CreditsUnlimited: nothing is capped or billed. Usage is still recorded at the providers' own prices, so you can see what you spend in Quota & Usage.

Backups

Your data lives in Docker volumes, not only in the cloned folder. A database-only backup without the keys and the file storage is not a complete recovery plan. Back up all of these together, from the same stopped snapshot:

Docker volumes to back up
VolumeWhat it holds
livecontext_dataThe PostgreSQL database.
livecontext_minioStored files and generated assets.
livecontext_keysAuthentication and credential-encryption keys.
livecontext_redisRedis state and queued work.
livecontext_logsLogs and audit history.

The actual volume names carry a project prefix (livecontext-ce for the repository install, livecontext for the npm launcher): check them with docker volume ls. Also keep .env, the Compose file, any overrides, and the catalog-seeds folder. Stop the stack with docker compose stop before exporting the volumes, and restrict access to the backup: it contains secrets.

Test a restore on a separate machine: same project name, same image versions, then check sign-in, a saved credential, and a stored file.

Troubleshooting

Start with docker compose ps and docker compose logs --tail=100 livecontext frontend from the cloned folder. None of the fixes below needs docker compose down -v.

Common self-hosting problems
SymptomCauseFix
After an update, Settings > Information still shows the old versionThe images were pulled without updating the repository. The Compose file pins the release version, so the same images come back.Run git pull, then docker compose pull and docker compose up -d.
On a server, email links or OAuth sign-ins send people back to localhost, or the provider rejects the redirect URLPUBLIC_BASE_URL and GATEWAY_PUBLIC_URL are not set, or end with a slash. A trailing slash produces a callback with a double slash that does not match the URL you registered.Set both addresses without a trailing slash, run docker compose up -d, and register <GATEWAY_PUBLIC_URL>/api/credentials/oauth2/callback with the provider.
livecontext does not become healthyThe first start downloads several GB and prepares the database, which takes a few minutes. A backend that keeps restarting has usually hit its memory limit (1.5 GB) or failed a database migration.Wait, then read the backend logs. For out-of-memory errors, raise the livecontext memory limit in the Compose file. For a migration error, keep your volumes and check the release notes.
The stack will not start because a port is already in useAnother program already uses port 3000 or 8080.Set FRONTEND_PORT and BACKEND_PORT in .env and run docker compose up -d. No rebuild is needed.
Connecting to the cloud fails with: An antivirus or corporate proxy is intercepting the connection to the cloud.Your network re-signs HTTPS traffic with a certificate the containers do not trust. Bundle syncs then fail with certificate (PKIX) errors in the Bundles tab.Click Trust & reconnect, or mount the proxy's root CA as described in Behind a TLS-intercepting proxy above.
Switching Integration credentials to Cloud is refusedRelayed calls need an active paid subscription on the linked cloud account.Subscribe on the cloud account, or keep Local keys and add the credentials on this install.
Switching the LLM source to Cloud is refused, or cloud models answer "paid plan required"Cloud-hosted models need a paid plan on the linked cloud account. The link itself stays in place.Choose a plan on the cloud account (it works right away, nothing to reconnect), or keep API keys on this install.
The install shows as connected but cloud features never startThe cloud account has not finished its setup (email verification code and profile), so the cloud has not registered the install.Sign in to LiveContext Cloud and finish the setup. The install registers by itself within a few minutes.

Related pages