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:
| Topic | Cloud | Community Edition |
|---|---|---|
| Hosting | Managed by LiveContext | You run it on your own infrastructure with Docker Compose |
| Sign-in | Email and password, social login, and workspace SAML SSO (Team and Enterprise) | Built-in email and password; no SAML SSO |
| Integrations | Full catalog, always current | The catalog shipped with the release, then refreshed automatically from the cloud (see below) |
| Models | Hosted catalog across many providers | Your own provider keys and CLI tools, or cloud-hosted models once linked; OpenRouter and Cohere are not available |
| Marketplace | Built in | The cloud marketplace, once the instance is linked to a cloud account (the page only offers to connect until then) |
| Limits and billing | Plans, credit limits, Stripe billing | No 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 publisheslinux/arm64images 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:
npx livecontext@latestThe 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)
- Get the code and create your configuration filebash
git clone https://github.com/livecontext-ai/livecontext-ce.git cd livecontext-ce cp docker/.env.ce.example .env - Edit .env before the first startOn a server, set your own
DB_PASSWORD,MINIO_ROOT_USER, andMINIO_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. - Start the stackThe first start downloads several GB and prepares the database. Wait untilbash
docker compose up -d docker compose pslivecontextis healthy, then openhttp://localhost:3000(or the port set inFRONTEND_PORT). - Create the first accountThe 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:
PUBLIC_BASE_URL=http://192.168.1.50:3000
GATEWAY_PUBLIC_URL=http://192.168.1.50:8080For 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):
| Variable | Purpose |
|---|---|
DB_USERNAME | PostgreSQL user. |
DB_PASSWORD | PostgreSQL password. Change it before exposing the install. |
MINIO_ROOT_USER | MinIO user, also used by the app to store files. |
MINIO_ROOT_PASSWORD | MinIO password, also used by the app to store files. |
CREDENTIAL_ENCRYPTION_PASSWORD | Protects stored API keys and OAuth tokens. Leave empty to have it generated on first start, then back it up. |
CREDENTIAL_ENCRYPTION_SALT | Companion of the encryption password. Same rules. |
FRONTEND_PORT | Port of the web app (default 3000). |
BACKEND_PORT | Port of the backend (default 8080). |
PUBLIC_BASE_URL | Address where browsers reach the web app. Used in email links and OAuth. No trailing slash. |
GATEWAY_PUBLIC_URL | Address where browsers reach the backend. Used for OAuth callbacks. No trailing slash. |
ANTHROPIC_API_KEY | Optional 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_HOST | Your SMTP relay. See Email below. Related: MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_FROM. |
MAIL_SMTP_STARTTLS | Encrypts mail when the relay supports it (on by default). Leave it on. |
COMPOSE_PROFILES | Turns on optional add-ons: renderer, browser-agent, or both. |
SCREENSHOT_RENDERER_URL | Connects the app to the renderer add-on. |
WEBSEARCH_ENABLED | Turns on web search and the Browser Agent (with the browser-agent profile). |
CE_VERSIONCHECK_ENABLED | Set to false to turn off the daily update check. |
CE_VERSIONCHECK_SENDINSTALLID | Set to false to keep the update check without the anonymous install id. |
CHANGELOG_ENABLED | Set 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.
| Add-on | What it adds | Settings in .env |
|---|---|---|
| Renderer | PNG 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 search | The 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.
- 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.
- AI providersPaste API keys for the providers you want: Anthropic, OpenAI, Google, Mistral, DeepSeek, xAI, Perplexity, Z.AI, Qwen, Moonshot, or MiniMax.
- CLI providersSet 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.
- Platform credentialsConfigure credentials for the integrations you plan to use (for example Gmail or Slack).
- DoneThe 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
| Group | Detail |
|---|---|
| Enabled by default | Anthropic, 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 providers | xAI, Perplexity, Z.AI, Qwen, Moonshot, and MiniMax can be added with a key in the setup wizard or in Settings > AI Providers. |
| Not available | OpenRouter and Cohere are not offered on CE and are refused if configured. |
| CLI providers | Claude 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:
| Switch | Where | Cloud | Local |
|---|---|---|---|
| LLM source | Settings > AI Providers | API 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 credentials | Settings > Cloud | Integration 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.
| Bundle | How it arrives | Needs a cloud link |
|---|---|---|
| Model catalog | Every 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 catalog | Seeded at first start, then refreshed from the cloud's public catalog about every 15 minutes. Your custom APIs are never touched. | No |
| Skills | The 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.
- Back up firstBack up your data, keys, and configuration (see Backups).
- Run the update from your cloned folderRunbash
git pull docker compose pull docker compose up -dgit 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, runnpx livecontext@latest updateinstead.
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
| Area | Detail |
|---|---|
| Included | The 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 out | SAML SSO, Stripe billing, plan-limit gating, and the platform margin on model costs. |
| Credits | Unlimited: 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:
| Volume | What it holds |
|---|---|
livecontext_data | The PostgreSQL database. |
livecontext_minio | Stored files and generated assets. |
livecontext_keys | Authentication and credential-encryption keys. |
livecontext_redis | Redis state and queued work. |
livecontext_logs | Logs 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.
| Symptom | Cause | Fix |
|---|---|---|
| After an update, Settings > Information still shows the old version | The 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 URL | PUBLIC_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 healthy | The 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 use | Another 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 refused | Relayed 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 start | The 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. |