GitXplorerGitXplorer
t

langfuse-v3-terraform

public
8 stars
2 forks
1 issues

Commits

List of commits on branch main.
Verified
3e0269b7dec4541ab62d7a31a209ca4bd85b0e3d

Merge pull request #3 from scraymondjr/patch-1

ttubone24 committed 12 hours ago
Verified
526f404c86fccc91441b8ad477704ede93f1fb01

Fix ENCRYPTION_KEY env var name for langfuse_web

sscraymondjr committed 2 days ago
Verified
12854dc158e0ea74ccdd04d6d4a7b605896f4f44

Merge pull request #2 from kiririmode/main

ttubone24 committed 12 days ago
Unverified
17c8a3eaad4ac6d85bcb794349fc4bc8b48326f2

Implement certificate validation for custom domains in App Runner.

kkiririmode committed 13 days ago
Unverified
1990f5b4557a05acc06c623306077a53e24da77a

Fix inconsistencies between configuration values.

kkiririmode committed 13 days ago
Unverified
0632dde6d4e93efc0932eead57caa5735e4b8d36

Make it easier to repeatedly execute apply and destroy.

kkiririmode committed 13 days ago

README

The README file for this repository.

Langfuse v3 Terraform Module Sample

This Terraform module provides infrastructure components for deploying Langfuse v3 self-hosted on Amazon Web Service(AWS).

Langfuse is an open-source observability and analytics platform designed for LLM applications.

[!NOTE] This module specifically focuses on Langfuse core components deployment. It does not include:

  • VPC and networking configurations
  • Infrastructure for LLM applications that will interact with Langfuse

You can either:

  • Use this as a module within your existing Terraform codebase
  • Create your own VPC and network infrastructure separately

Features

archtecture.jpg

Core Components

  • Web Server: Deployed on AWS App Runner for scalable web application hosting
  • Async Worker: Implemented using AWS ECS Fargate for efficient background processing

Data Storage

  • OLTP Database: Amazon Aurora Serverless v2 (PostgreSQL-compatible) for transactional data
  • Queue/Cache: Amazon ElastiCache for Redis (Valkey) for high-performance caching
  • Blob Storage: Amazon S3 for object storage for media files and event logs
  • OLAP Database: ClickHouse running on AWS ECS Fargate with Amazon EFS for data persistence

Analytics & Monitoring

  • Analytics Dashboard: Grafana deployed on AWS ECS Fargate for OLAP query execution and visualization

Infrastructure

  • AWS-native service integration for efficient and cost-effective deployment, I mean, no EC2 instances!
  • Scalable and production-ready setup
  • Secure configuration with AWS best practices

For more information on Langfuse's architecture, please check the official documentation.

Prerequisites

  • AWS Account
  • Terraform >= 1.0 (tested version: v1.8.2)
  • AWS CLI configured with pushing Docker images to Amazon ECR

Setup Instructions

  1. Create Terraform backend resources for state management
  2. Configure required variables in variables.tf
  3. Deploy using the provided examples or integrate as a module

Infrastructure Configuration

  • identity_name - Unique identifier for resources (e.g., "mycompany")
  • vpc_id - Your VPC ID where Langfuse will be deployed
  • private_subnet_ids - List of private subnet IDs for components deployment
  • custom_domain_name - Domain name for Langfuse and Grafana (e.g., tubone-project24.com)
  • custom_domain_id - Route53 Hosted Zone ID

Security Configuration

  • web_next_secret - Session cookie validation key (Generate: openssl rand -base64 32)
  • web_salt - API key hashing salt (Generate: openssl rand -base64 32)
  • encryption_key - 256-bit encryption key (Generate: openssl rand -hex 32)

Database Configuration

  • database_user - Aurora Serverless v2 database username (Default: "langfuse")
  • database_max_capacity - Maximum Aurora capacity units (Default: 10)
  • database_min_capacity - Minimum Aurora capacity units (Default: 0.5)

Optional Configuration

  • env - Environment name (Default: "dev")
  • region - AWS region (Default: "us-east-1")
  • availability_zones - List of AZs (Default: ["us-east-1a", "us-east-1b", "us-east-1c"])
  • cache_node_type - ElastiCache instance type (Default: "cache.t2.micro")
  • is_spot_instance - Use spot instances for workers (Default: false)
  • worker_desire_count - Number of worker instances (Default: 1)

Push Docker Images to ECR

After running terraform apply, you need to push the required Docker images to the created ECR repositories.

Examples

Complete deployment examples are available in the examples directory.