Что такое FARA CRM?
What is FARA CRM?
FARA CRM — это полнофункциональная система управления взаимоотношениями с клиентами, построенная на модульной Python-архитектуре. Каждый модуль можно подключить, заменить или вынести в отдельный микросервис без переписывания кода.
Интуитивная точка входа: один файл main.py с асинхронным lifespan — и вся система поднимается автоматически. Сервисы, роутеры, модули — всё инициализируется в правильном порядке.
Никаких чёрных ящиков — весь код открыт и документирован. FastAPI под капотом обеспечивает скорость и автодокументацию API.
FARA CRM is a full-featured customer relationship management system built on a modular Python architecture. Each module can be connected, replaced, or extracted into a separate microservice without rewriting code.
Intuitive entry point: a single main.py file with async lifespan — and the entire system boots automatically. Services, routers, modules — everything initializes in the correct order.
No black boxes — all code is open and documented. FastAPI under the hood ensures speed and auto-generated API docs.
# Интуитивная Entry Point — main.py
from backend.project_setup import env
@asynccontextmanager
async def lifespan(app: FastAPI):
# startup
app.state.env = env
await env.setup_services()
await env.start_services_before(app)
await env.load_routers(app)
await env.start_services_after(app)
await env.start_post_init(app)
yield
# shutdown
await env.stop_services(app)Модульная экосистема FARA CRM
FARA CRM Modular Ecosystem
Каждый модуль — независимое приложение со своими моделями, роутерами и правами доступа. Подключайте только то, что нужно.
Each module is an independent app with its own models, routers, and access rights. Enable only what you need.
Контрагенты
Partners
Партнёры, контакты и типы контактов. Единая база с полной историей взаимодействий и сегментацией.
Partners, contacts, and contact types. Unified database with full interaction history and segmentation.
Компании
Companies
Управление компаниями с расширяемыми полями. Поддержка юридических реквизитов через модуль Contract.
Company management with extensible fields. Legal details support via Contract module.
Лиды
Leads
Управление лидами с настраиваемыми стадиями, CRM-командами и автоматическим продвижением по воронке.
Lead management with configurable stages, CRM teams, and automatic funnel progression.
Продажи
Sales
Сделки, строки заказов, стадии продаж и налоги. Полный цикл от лида до закрытия сделки.
Deals, order lines, sale stages, and taxes. Full cycle from lead to deal closure.
Товары и каталог
Products & Catalog
Товары, категории, единицы измерения. Гибкий каталог для любого типа бизнеса.
Products, categories, units of measure. Flexible catalog for any business type.
Договоры
Contracts
Договоры с контрагентами. Расширение Partner/Company полями РФ — ИНН, КПП, ОГРН, ОКПО.
Contracts with counterparties. Partner/Company extension with Russian legal fields — INN, KPP, OGRN, OKPO.
Чат и WebSocket
Chat & WebSocket
Внутренний чат через WebSocket + PostgreSQL pub/sub. Каналы, группы, реакции, вложения. Real-time обмен.
Internal chat via WebSocket + PostgreSQL pub/sub. Channels, groups, reactions, attachments. Real-time messaging.
Telegram
Telegram
Интеграция с Telegram через стратегию-коннектор. Двусторонний обмен сообщениями прямо из CRM.
Telegram integration via connector strategy. Two-way messaging directly from CRM.
Email (SMTP/IMAP)
Email (SMTP/IMAP)
Отправка и получение email через SMTP/IMAP. Синхронизация через cron, привязка к записям CRM.
Send and receive email via SMTP/IMAP. Cron sync, binding to CRM records.
Интеграция с WhatsApp через ChatApp API. Plug-and-play коннектор на базе Strategy-паттерна.
WhatsApp integration via ChatApp API. Plug-and-play connector based on Strategy pattern.
Avito
Avito
Интеграция с Avito — получайте сообщения от покупателей прямо в CRM-чат.
Avito integration — receive buyer messages directly in CRM chat.
Задачи и проекты
Tasks & Projects
Проекты, задачи со стадиями и тегами. Kanban-борд для управления рабочим процессом команды.
Projects, tasks with stages and tags. Kanban board for team workflow management.
Активности
Activities
Звонки, встречи, email, напоминания — привязанные к записям. Уведомления через системный чат.
Calls, meetings, emails, reminders — bound to records. Notifications via system chat.
Вложения
Attachments
Локальное и удалённое хранение файлов. Кэширование, маршрутизация, поддержка нескольких хранилищ.
Local and remote file storage. Caching, routing, multi-storage support.
Google Drive
Google Drive
Хранение вложений в Google Drive через OAuth2. Расширение модуля Attachments стратегией Google.
Store attachments in Google Drive via OAuth2. Extends Attachments module with Google strategy.
Отчёты DOCX/PDF
Reports DOCX/PDF
Генерация отчётов из DOCX-шаблонов с Jinja2-тегами. Рендеринг через docxtpl, конверсия в PDF через LibreOffice.
Report generation from DOCX templates with Jinja2 tags. Rendering via docxtpl, PDF conversion via LibreOffice.
Безопасность (RBAC)
Security (RBAC)
Роли, правила, ACL-списки, сессии. Гранулярный контроль доступа до уровня модели и операции.
Roles, rules, ACL lists, sessions. Granular access control down to model and operation level.
Пользователи
Users
Управление пользователями, аутентификация через токены. Связь с ролями и сессиями.
User management, JWT token authentication. Linked to roles and sessions.
Auto CRUD
Auto CRUD
Автогенерация CRUD-роутеров и Pydantic-схем из DotORM-моделей. Один проход — все эндпоинты готовы.
Auto-generation of CRUD routers and Pydantic schemas from DotORM models. One pass — all endpoints ready.
DotORM + PostgreSQL
DotORM + PostgreSQL
Собственный ORM DotORM с пулом asyncpg. Транзакции, access-контроль на уровне запросов, диалект PostgreSQL.
Custom DotORM with asyncpg pool. Transactions, query-level access control, PostgreSQL dialect.
Cron-задачи
Cron Jobs
Запланированные задачи через subprocess + pg_advisory_lock. Только один воркер из N запускает cron.
Scheduled tasks via subprocess + pg_advisory_lock. Only one worker out of N runs cron.
Языки
Languages
Мультиязычность системы. Управление языками и локализацией интерфейса.
System multilanguage support. Language management and UI localization.
Сохранённые фильтры
Saved Filters
Пользователи сохраняют настроенные фильтры списков для быстрого доступа к нужным данным.
Users save configured list filters for quick access to needed data.
Документация разработчика
Developer Docs
Встроенная документация MkDocs + Swagger offline. Всё в одном месте прямо в приложении.
Built-in MkDocs + offline Swagger documentation. Everything in one place inside the app.
Как выглядит FARA CRM
How FARA CRM Looks
Реальные скриншоты системы — кликните на категорию для просмотра.
Real system screenshots — click a category to browse.

Три шага до запуска
Three Steps to Launch
Начните использовать FARA CRM за считанные минуты.
Start using FARA CRM in minutes.
Клонируйте репозиторий
Clone the Repository
git clone и docker-compose up — система готова к работе за 2 минуты.
git clone and docker-compose up — ready to go in 2 minutes.
Настройте модули
Configure Modules
Подключите нужные модули в project_setup, а настройки через .env файл. Только то, что нужно вашему бизнесу.
Connect needed modules via project_setup, and settings via .env file. Only what your business needs.
Начните работать
Start Working
Импортируйте базу клиентов или начните ее заполнять и начните управлять сделками прямо сейчас.
Import your client base or start fill and start managing deals right now.
Модульная Python-архитектура
Modular Python Architecture
FARA CRM построена на паттерне Apps Architecture — каждый модуль это независимое приложение (App) со своими моделями, роутерами, правами доступа и зависимостями.
Environment — центральный фасад: содержит Apps, Models и Settings. Monkey-patch трюк позволяет расширять модели через ExtensibleMixin и декоратор @extend без изменения исходного кода.
Три типа компонентов: App (бизнес-логика + CRUD + ACL), Service (инфраструктура: БД, логгер, cron) и Mixin (расширения: Google Drive, Telegram, WhatsApp — подключаются к существующим моделям).
FARA CRM is built on the Apps Architecture pattern — each module is an independent application (App) with its own models, routers, access rights, and dependencies.
Environment — the central facade: contains Apps, Models, and Settings. Monkey-patch trick allows extending models via ExtensibleMixin and @extend decorator without modifying source code.
Three component types: App (business logic + CRUD + ACL), Service (infrastructure: DB, logger, cron), and Mixin (extensions: Google Drive, Telegram, WhatsApp — plug into existing models).
# backend/project_setup.py
class Apps(AppsCore):
# CRM бизнес-модули
leads = LeadsApp()
partners = PartnersApp()
sales = SalesApp()
products = ProductsApp()
company = CompanyApp()
contract = ContractApp()
task = TasksApp()
activity = ActivityApp()
report_docx = ReportDocxApp()
# Коммуникации
chat = ChatApp()
chat_telegram = ChatTelegramApp()
chat_email = ChatEmailApp()
attachments = AttachmentsApp()
# Система
security = SecurityApp()
users = UserApp()
cron = CronApp()
db = DotormDatabasesPostgresService()
crud_auto = DotormCrudAutoService()FARA CRM vs другие решения
FARA CRM vs Other Solutions
Посмотрите, чем FARA CRM отличается от проприетарных CRM-систем.
See how FARA CRM differs from proprietary CRM systems.
Готовы попробовать FARA CRM?
Ready to Try FARA CRM?
Начните с документации или клонируйте репозиторий и запустите систему за 2 минуты.
Start with the docs or clone the repo and launch in 2 minutes.