No description
Find a file
Ashwin dd6ca2958d Add unit tests for organization admin checks and saved views provider
- Implement tests for `isOrgAdminProvider` to validate admin roles based on organization membership and role.
- Create tests for `saved_views_provider` to ensure correct API interactions for saving, renaming, and deleting saved views.
- Enhance ticket tree tests to accurately reflect inactive and merged ticket handling.
- Update CSV import tests to verify error handling and file saving functionality.
- Introduce tests for deal cards to ensure correct display of next steps and task statuses.
2026-09-26 20:38:32 +05:30
.github/workflows feat: enhance customer portal case management and article publishing 2026-08-15 23:59:44 +05:30
backend Add unit tests for organization admin checks and saved views provider 2026-09-26 20:38:32 +05:30
docker fix: resolve setup and Docker issues preventing project from running 2026-02-17 10:27:47 +05:30
docs Add unit tests for organization admin checks and saved views provider 2026-09-26 20:38:32 +05:30
frontend Add unit tests for organization admin checks and saved views provider 2026-09-26 20:38:32 +05:30
mobile Add unit tests for organization admin checks and saved views provider 2026-09-26 20:38:32 +05:30
.coveragerc feat: Enhance goal tracking with currency support and separate totals 2026-09-26 10:06:25 +05:30
.dockerignore feat: add Docker Compose setup for local development 2026-02-17 10:01:50 +05:30
.env.docker chore: update frontend and backend URLs to use port 5181 for local development 2026-09-26 17:24:25 +05:30
.gitignore Add documentation for self-hosting, production deployment, requirements, security hardening, and troubleshooting 2026-08-02 20:08:12 +05:30
.jshintrc feat: add JSHint configuration for ES11 and module support 2026-02-20 18:04:30 +05:30
.readthedocs.yaml Refactor comments for clarity and consistency across multiple screens and services 2026-08-03 09:36:48 +05:30
.runcode.yaml chore: migrate Python dependency management from pip to uv and update project tooling 2026-05-09 12:07:23 +05:30
CONTRIBUTING.md Refactor comments for clarity and consistency across multiple screens and services 2026-08-03 09:36:48 +05:30
DESIGN_SYSTEM.md chore: update dependencies and configurations 2026-09-05 22:49:29 +05:30
docker-compose.yml chore: update frontend and backend URLs to use port 5181 for local development 2026-09-26 17:24:25 +05:30
Dockerfile fix: move venv outside of backend in dockerfile 2026-08-05 01:12:07 +07:00
LICENSE Create LICENSE (#6) 2017-10-03 15:59:34 +05:30
MANIFEST.in Added manifest file to make sure templates and static files are installed with the apps 2019-04-01 15:48:28 -04:00
mkdocs.yml Add unit tests for organization admin checks and saved views provider 2026-09-26 20:38:32 +05:30
README.md chore: update frontend and backend URLs to use port 5181 for local development 2026-09-26 17:24:25 +05:30
RLS_SETUP.md Refactor comments for clarity and consistency across multiple screens and services 2026-08-03 09:36:48 +05:30
schema.yml new release 2023-10-04 11:07:23 +05:30

BottleCRM: Open Source Django CRM for Startups & Enterprises

A free, self-hosted, multi-tenant CRM built with Django REST Framework, SvelteKit and Flutter.

License Python Django SvelteKit Svelte Flutter Coverage

BottleCRM is an open source CRM you run on your own infrastructure. It covers the full customer lifecycle: leads, accounts, contacts, opportunities, support tickets, tasks and invoices: through a SvelteKit web app, a native Flutter mobile app, and a documented REST API sharing one Django backend. PostgreSQL Row-Level Security isolates each organization's data at the database layer, so a single deployment serves one startup or hundreds of tenants.

No per-seat pricing, no user caps, no feature paywall. MIT licensed: fork it, self-host it, own your data.

Try it free → · Features · Product docs · Pricing · Migrate from Salesforce or HubSpot

(That's the marketing site's product documentation. For the technical documentation (self-hosting, architecture, the API, contributing) see Documentation below.)

Why BottleCRM

  • Free forever, MIT licensed: unlimited users and records, no subscription. A genuinely self-hosted CRM alternative to Salesforce, HubSpot and Pipedrive.
  • Multi-tenant by design: PostgreSQL Row-Level Security enforces tenant isolation in the database, not just in application code. Run it for a single company or as a SaaS for many.
  • Agent-ready REST API: point Claude, Cursor, Codex, Gemini or any agent at the API with a personal access token and let it search, create and update records as you, inheriting your role, org and permissions. An OpenAPI schema ships with it, so the agent can discover the endpoints itself.
  • Web, native mobile and API: one Django REST backend behind a Svelte 5 web app and a Flutter app for iOS and Android.
  • A stack you can actually hack on: Django 6 / DRF and Svelte 5, not a bespoke in-house framework. If your team writes Python, it can extend this on day one.
  • Real support tooling: a full helpdesk with SLA timers, approvals, escalations, macros and a knowledge base, not a bolted-on ticket list.

How it compares

BottleCRM SaaS CRM (Salesforce, HubSpot) Typical open source CRM
Cost Free, unlimited users Per seat, per month Free core, often paid tiers
Hosting Self-hosted (managed hosting available) Vendor cloud only Self-hosted
Data ownership Total. It is your database Vendor-controlled Total
Multi-tenancy Database-level RLS Not applicable Uncommon
Native mobile app Yes, Flutter, iOS + Android Yes Uncommon
AI agent access Full REST API, per-user tokens Proprietary add-ons Uncommon
Stack Django REST + SvelteKit Closed source Varies
License MIT Proprietary Varies, often GPL/AGPL

Quick start

git clone https://github.com/django-crm/Django-CRM.git
cd Django-CRM
docker compose up --build

Frontend at http://localhost:5181, API and Swagger UI at http://localhost:8000/swagger-ui/. See the Docker quick start guide for the default admin login, loading demo data, and what each service does.

Documentation

The full documentation (setup, self-hosting, architecture, the REST API, and contributing) is built from this repository's docs/ with MkDocs Material and publishes to Read the Docs at https://django-crm.readthedocs.io/en/latest/. Four starting points:

  • Getting started: Docker and manual setup, first sign-in, demo data.
  • Self-hosting: requirements, production deployment, PostgreSQL and Row-Level Security, backups, security hardening.
  • API reference: authentication, conventions, and every documented endpoint.
  • Contributing: local development setup, testing, code style, and how to open a pull request.

Contributing

We welcome contributions! See CONTRIBUTING.md for setup instructions, development checks, and pull request guidance.

Community

License

This project is licensed under the MIT License - see the LICENSE file for details.

Sponsors

We are grateful to the sponsors who support BottleCRM's continued development and maintenance.

We warmly welcome new sponsors. If you would like to support BottleCRM and help the project grow, please get in touch.

Contributors

This project exists thanks to all the people who contributed.

View all BottleCRM contributors.