Lago
Open-source billing platform for usage-based and subscription models. Track anything, bill anything.
Smart Download
Visit Project Homepage
No installer available yet — head to the source repository
Open-source billing platform for flexible pricing, self-hosted data control.
Core Features
- Usage Metering: real-time event ingestion and aggregation
- Billing & Invoicing: automated invoice generation for subscriptions, usage, hybrid plans
- Entitlements: feature access management tied to billing plans
- Cash Collection: payment orchestration with dunning, retries, multi-gateway
- Revenue Analytics: MRR, usage trends, revenue drivers
What It Can't Do
- •Self-host: update .env with server URL if not localhost. Default anonymous usage tracking (no PII) can be disabled. For high volume, configure dedicated workers. AGPLv3 license—check compliance for commercial use.
Use Cases
- SaaS companies with hybrid pricing (base subscription + overage)
- AI API platforms billing by tokens
- Marketplaces providing billing for third-party sellers
Detailed Introduction
Lago is the open-source billing platform designed for product-led companies. It supports usage-based, subscription-based, and hybrid pricing models with real-time event ingestion, automated invoicing, payment orchestration, entitlements, and revenue analytics. Self-host or use Lago Cloud. API-first, payment-agnostic, and SOC 2 Type II certified. Trusted by PayPal, Mistral AI, Groq, and more.
Troubleshooting & FAQ (2)
TroubleshootingWhy can't I log in with the new password after updating the LAGO_ORG_USER_PASSWORD environment variable?
The signup.rake task uses create_with, which only sets the password on user creation. If the user already exists, restarts after password changes leave the old password in place, causing "incorrect login or password". To fix permanently, modify lib/tasks/signup.rake to use find_or_initialize_by, set password explicitly, then save. As a quick workaround, delete the existing user (rails console: User.find_by(email: ENV['LAGO_ORG_USER_EMAIL'])&.destroy) and re-run the signup rake task, or update the password directly in the database. The fix ensures the password stays synced with the env var across restarts.
TroubleshootingWhy does db:schema:load fail with 'relation "public.payment_receipts" does not exist' in Lago?
This error occurs because the structure.sql file in Lago attempts to DROP TRIGGER on the payment_receipts table before it is created. A workaround is to manually create the table first: 'CREATE TABLE IF NOT EXISTS public.payment_receipts (id uuid DEFAULT gen_random_uuid() NOT NULL, number character varying NOT NULL, payment_id uuid NOT NULL, organization_id uuid NOT NULL, created_at timestamp(6) without time zone NOT NULL, updated_at timestamp(6) without time zone NOT NULL, billing_entity_id uuid NOT NULL);' Then run db:schema:load or db:migrate. The issue was reported on Lago v1.33.4 and v1.38.0. The maintainers could not reproduce it in the latest version, so upgrading may resolve it.
Tags
Getting Started
Download installer
Click the button above to download the installer for your system
Install the software
Double-click the downloaded installer and follow the prompts
Step 1: Ensure Docker and Git are installed
Step 2: Clone repo and enter directory: git clone --depth 1 https://github.com/getlago/lago.git && cd lago
Step 3: Generate RSA key and start: echo 'LAGO_RSA_PRIVATE_KEY="$(openssl genrsa 2048 | openssl base64 -A)"' >> .env && source .env && docker compose up
- Step 1: Ensure Docker and Git are installed
- Step 2: Clone repo and enter directory: git clone --depth 1 https://github.com/getlago/lago.git && cd lago
- Step 3: Generate RSA key and start: echo 'LAGO_RSA_PRIVATE_KEY="$(openssl genrsa 2048 | openssl base64 -A)"' >> .env && source .env && docker compose up
Checksum not available
This project has not published a SHA-256 checksum on its GitHub Release page
SHA256 Checksum
No checksum available
Download directly from GitHub Releases and verify file integrity yourself
All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.
Open Source Transparency
View GitHub SourceUninstall Info
Run docker compose down to stop containers, then delete the lago folder. To remove all data, delete the Docker volumes.
No Extra Dependencies
Ready to use after download. No additional runtime required.
Having issues? Check the FAQ below
2 FAQs
Similar Projects
godot
Godot Engine is a free, open-source, cross-platform 2D and 3D game engine with a unified editor. Unlike Unity or Unreal, it's entirely MIT-licensed and community-driven, offering a lightweight yet powerful node-based workflow that runs on a single executable.
Hoppscotch
Open source API development ecosystem with a lightweight, fast, and feature-rich interface for testing HTTP, WebSocket, GraphQL, and more.
lazygit
A simple terminal UI for git commands