Overview
Discover what makes Tryton powerful
Tryton is a modular, open‑source ERP system designed for self‑hosting scenarios where developers need full control over the stack and data. At its core, Tryton implements a layered architecture that separates **business logic** from **presentation** and **data access**, enabling developers to extend or replace components without touching the core codebase. The application exposes a rich set of **RESTful APIs** (in addition to the traditional XML‑RPC interface) that allow external services, mobile clients, or custom dashboards to interact with its domain models such as `account.move`, `sale.order`, or `stock.picking`.
Core Language & Framework
Database
Web Frontend
Messaging
Overview
Tryton is a modular, open‑source ERP system designed for self‑hosting scenarios where developers need full control over the stack and data. At its core, Tryton implements a layered architecture that separates business logic from presentation and data access, enabling developers to extend or replace components without touching the core codebase. The application exposes a rich set of RESTful APIs (in addition to the traditional XML‑RPC interface) that allow external services, mobile clients, or custom dashboards to interact with its domain models such as account.move, sale.order, or stock.picking.
Architecture
- Core Language & Framework: Python 3, using the
trytondserver framework which follows a Model–View–Controller pattern. Models are defined in pure Python classes with declarative fields (Char,Many2One,Selection), and business rules are expressed via methods decorated with_()for transaction safety. - Database: PostgreSQL is the only supported backend, leveraging its advanced features (CTE, JSONB, full‑text search) for reporting and analytic accounting.
- Web Frontend: A lightweight JavaScript SPA powered by
tryton-web(built on React/Redux) communicates with the server via JSON‑RPC. - Messaging: Tryton uses
celerywith a Redis broker for asynchronous tasks such as scheduled invoices or stock re‑valuation. - Plugin System: Modules are packaged as Python wheels and installed via
pip. Each module declares its dependencies, enabling a plug‑and‑play architecture where developers can drop in modules liketrytond_sale,trytond_account, or custom ones for industry‑specific workflows.
Core Capabilities
- Domain Modeling: Declarative schema with automatic migration scripts (
trytond-migrate). - Security & Permissions: Role‑based access control at the field and record level, with support for record rules that enforce business constraints.
- API Surface: Exposes CRUD operations, search filters, and custom actions; supports webhooks for event notifications.
- Reporting: Built‑in report engine using QWeb templates, with PDF generation via
wkhtmltopdf. - Multi‑Company & Multi‑Currency: Built‑in support for separate company data and currency conversion tables.
Deployment & Infrastructure
Tryton is designed for self‑hosting and scales horizontally by separating the components:
- Database Layer – PostgreSQL can be tuned with connection pooling (PgBouncer) and replicated for read scalability.
- Application Layer –
trytondcan be run behind a WSGI server (Gunicorn, uWSGI) and load‑balanced. - Worker Layer – Celery workers handle background jobs; they can be scaled independently.
- Frontend Layer – The SPA is served by a static file server or CDN, reducing load on the application tier.
Containerization is fully supported: official Docker images expose TRYTOND_DB_URI, TRYTOND_WORKERS, and optional CELERY_BROKER_URL environment variables. Kubernetes manifests are available in the community repo, facilitating rolling upgrades and horizontal pod autoscaling.
Integration & Extensibility
- API Hooks: Developers can register hooks on model events (
create,write,unlink) to trigger external services. - Custom Modules: Any Python module that imports
trytond.modelcan be added; the framework auto‑discovers models, fields, and translations. - Webhooks: Outgoing events can be configured to POST JSON payloads to external URLs, enabling real‑time integration with CRMs or payment gateways.
- Batch Processing: Scheduled jobs (e.g.,
trytond.account.invoice.scheduled) can be overridden or extended to implement custom billing logic.
Developer Experience
- Documentation: The core docs are hosted on readthedocs.org, with extensive API references and a “module development” guide.
- Community: An active mailing list, IRC channel (
#trytonon Libera Chat), and a public GitHub repo foster rapid issue resolution. - Testing: The framework includes a built‑in test runner (
trytond-test) that supports unit, integration, and functional tests usingpytest. - Configuration: Settings are managed via a YAML file (
trytond.conf) or environment variables, keeping deployment scripts simple.
Use Cases
- Custom ERP for SMEs: Companies needing a lightweight, fully open‑source solution can deploy Tryton to manage accounting, inventory, and sales without vendor lock‑in.
- Industry‑Specific Extensions: Developers can build domain modules (e.g., for manufacturing or subscription billing) and share them as pip packages.
- Hybrid Cloud: On‑premise database with cloud‑based workers or vice versa, allowing incremental migration strategies.
- Educational Platforms: Universities can use Tryton as a teaching tool for ERP concepts, providing students with real code to modify.
Advantages
- Performance: Python’s async capabilities combined with PostgreSQL’s efficient query planner make Tryton suitable for medium‑size workloads.
- Flexibility: The declarative model system and hook architecture allow deep customization without core code changes.
- Licensing: AGPL‑3 ensures that any derivative works remain open, aligning with organizations that prioritize transparency.
- Community‑Driven:
Open SourceReady to get started?
Join the community and start self-hosting Tryton today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
ownCloud
Secure, self‑hosted file sharing and collaboration
Mafl
Customizable, privacy‑first homepage organizer
LinuxGSM
Command‑line tool for quick, simple game server management
Apache OpenMeetings
All-in-one web video conferencing and collaboration platform
SiYuan
Personal knowledge management, offline-first with end-to-end encryption
UnrealIRCd
Secure, modular IRC server for modern networks
