---
title: Postgres Database (self-hosted)
sidebarTitle: PostgreSQL
description: Langfuse requires a persistent Postgres database to store its state.
label: "Version: v4"
---

# Postgres Database

Follow one of the [deployment guides](/self-hosting#deployment-options) to get started.

Langfuse requires a persistent Postgres database to store its state.
You can use a managed service on AWS, Azure, or GCP, or host it yourself.

Langfuse supports Postgres versions >= 12 and uses the `public` schema in the selected database. For Langfuse v4, PostgreSQL 16 is recommended and the minimum PostgreSQL version is 15 — see the [v3 to v4 upgrade guide](/self-hosting/upgrade/upgrade-guides/upgrade-v3-to-v4#step-1).

## Official and Community Support [#support]

Langfuse works with PostgreSQL and Postgres-compatible databases.
We distinguish between officially supported and community-supported options:

| Option                                                                    | Support Level |
| ------------------------------------------------------------------------- | ------------- |
| [PostgreSQL](https://www.postgresql.org/) (>= 12, self-hosted or managed) | Official      |
| [Amazon Aurora PostgreSQL](https://aws.amazon.com/rds/aurora/)            | Official      |
| Other Postgres-compatible databases (e.g., Google AlloyDB, YugabyteDB)    | Community     |

Managed services that run PostgreSQL, such as Amazon RDS, Azure Database for PostgreSQL, and GCP Cloud SQL, are covered by the official support level.
Aurora PostgreSQL is the default in our [AWS (Terraform)](/self-hosting/deployment/aws) deployment.

- **Official**: Maintained and tested by the Langfuse team. We prioritize bug reports for these options.
- **Community**: Expected to work based on community usage. We do not systematically test these options; support is best-effort and fixes often depend on community contributions.

In either case, please report problems via [GitHub issues](/issues) — pull requests that fix or improve support for community-supported options are highly welcome.

## Use Cases

Postgres is used for all transactional data, including:

- Users
- Organizations
- Projects
- Datasets
- Encrypted API keys
- Settings

## Configuration

### Timezones

Langfuse expects that its infrastructure components default to UTC.
Especially Postgres and ClickHouse settings that overwrite the UTC default are not supported and may lead to unexpected behavior.
Please vote on this [GitHub Discussion](https://github.com/orgs/langfuse/discussions/5046) if you would like us to consider supporting other timezones.

---

If you experience any issues when self-hosting Langfuse, please:

1. Check out [Troubleshooting & FAQ](/self-hosting/troubleshooting-and-faq) page.
2. Use [Ask AI](/ask-ai) to get instant answers to your questions.
3. Ask the maintainers on [GitHub Discussions](/gh-support).
4. Create a bug report or feature request on [GitHub](/issues).

  Enterprise-grade support is available when self-hosting Langfuse. Learn more on
  our [pricing page](/pricing-self-host).

<!-- agent-instructions -->

---

## Agent Instructions

This page is part of the [Langfuse](https://langfuse.com) documentation, published as plain Markdown for AI agents. Every page is available as Markdown by appending `.md` to its URL, or by sending an `Accept: text/markdown` header. This page: `https://langfuse.com/self-hosting/deployment/infrastructure/postgres.md`.

### Querying these docs

If the answer is not on this page, query the documentation instead of guessing:

- **Semantic search** across all Langfuse docs, returning an answer with the relevant pages and excerpts. Ask a specific, self-contained question:

  ```bash
  curl -sG "https://langfuse.com/api/search-docs" --data-urlencode "query=How do I trace a LangGraph agent?"
  ```

- **Index of every page**: <https://langfuse.com/llms.txt>, with per-section indexes [llms-docs.txt](https://langfuse.com/llms-docs.txt), [llms-integrations.txt](https://langfuse.com/llms-integrations.txt), and [llms-self-hosting.txt](https://langfuse.com/llms-self-hosting.txt).

### Before writing Langfuse code

- **Install the [Langfuse Agent Skill](https://langfuse.com/docs/api-and-data-platform/features/agent-skill).** It encodes Langfuse's own best practices for instrumentation, prompt management, and evaluation, and materially improves results.
- **Read [What does a good trace look like?](https://langfuse.com/docs/observability/best-practices.md)** before instrumenting an application.
- **Verify endpoints, parameters, and response fields** against the [API reference](https://api.reference.langfuse.com) instead of inferring them from code examples.
- **Use the [Langfuse CLI](https://langfuse.com/docs/api-and-data-platform/features/cli)** (`npx langfuse-cli api <resource> <action>`) to read or write traces, prompts, datasets, and scores from the terminal.

Found an error in these docs? Please open an issue at <https://github.com/langfuse/langfuse-docs/issues>.
