Configuration¶
This page shows where the Langfuse stack's configuration lives and how to
change it safely. Make every change as root, then restart the langfuse
service.
Where things live¶
| Path | What it is |
|---|---|
/opt/langfuse/docker-compose.yml |
The Compose stack: services, pinned images, loopback ports and volumes. |
/etc/langfuse/langfuse.env |
Values for the stack: URL, passwords, encryption keys and first-project settings. Created on first boot and not overwritten afterwards. Root only. |
/etc/langfuse/admin.password |
The admin password created on first boot. Root only. |
/etc/langfuse/project-api.env |
The first project's public and secret keys. Root only. |
/etc/langfuse/redis.conf |
Redis password and settings, mounted read-only into Redis. |
| Docker named volumes | Postgres, ClickHouse, Redis and MinIO data. List them with sudo docker volume ls. |
How settings reach the containers¶
The service runs docker compose with /etc/langfuse/langfuse.env as its
environment file. Compose substitutes those values into the environment
sections of docker-compose.yml. A container only receives the variables
listed there, so a new line in langfuse.env alone has no effect.
To change a setting that is already listed, such as NEXTAUTH_URL, edit its
value in langfuse.env. To add an upstream Langfuse setting that is not
listed, add it to the environment section of langfuse-web (and of
langfuse-worker if the worker needs it) in docker-compose.yml, then set
the value in langfuse.env.
For example, to turn off self sign-up on the login page, add this line under
langfuse-web → environment:
and this line to /etc/langfuse/langfuse.env:
See the Langfuse self-hosting configuration for the settings Langfuse supports.
Apply a change¶
sudo systemctl restart langfuse
systemctl is-active langfuse
curl -sS http://127.0.0.1:3000/api/public/health
The restart stops the containers and starts them again. Data in the volumes is kept. The UI can take a minute or two to answer again.
Change the URL¶
NEXTAUTH_URL is the address users open in their browser. It defaults to
http://127.0.0.1:3000, which matches Session Manager port forwarding. If you
put a reverse proxy in front of Langfuse, set it to the address users open
through the proxy, then restart.
Reach Langfuse from other machines¶
Every port is published on 127.0.0.1 only. Choose one of these:
- Session Manager port forwarding for your workstation, see Open the UI.
- Run your instrumented application on the same instance.
- A TLS reverse proxy on the instance that you install and manage, which
forwards to
127.0.0.1:3000. Bind it to the instance's private address, use a certificate your clients trust, allow its port in the security group only from your applications' security groups, and updateNEXTAUTH_URL.
Keep the data services private
Do not change the Compose ports to 0.0.0.0, and do not open ports 5432,
6379, 8123, 9000, 9090 or 9091 to anything. Only the web port should ever
sit behind a proxy.
Things to leave alone¶
- Do not change the generated passwords,
SALTorENCRYPTION_KEYinlangfuse.env. The databases and stored data already use them. - Do not run
docker compose pull, and do not change the image references. The stack uses pinned local images; a new Langfuse version comes as a new version of the image. - Do not edit
/etc/langfuse/redis.conf. First boot checks that it matches the Redis password inlangfuse.envand stops if it does not.
Last updated October 13, 2026 · Suggest an improvement