Overview
Discover what makes Open Source Point of Sale powerful
Open Source POS (OSP) is a fully self‑hosted, web‑based point‑of‑sale platform written in **PHP** and powered by the **CodeIgniter 4** framework. The data layer relies on **MySQL/MariaDB**, while the front end is built with **Bootstrap 3** and customizable via Bootswatch themes. From a developer’s perspective, OSP is designed to be lightweight yet extensible: its core codebase exposes a clean MVC architecture, a robust permissions system, and a set of REST‑style endpoints that can be leveraged by external services or custom plugins.
Inventory & Stock Management
Financial Modules
Transactional Flow
Reporting & Analytics
Overview
Open Source POS (OSP) is a fully self‑hosted, web‑based point‑of‑sale platform written in PHP and powered by the CodeIgniter 4 framework. The data layer relies on MySQL/MariaDB, while the front end is built with Bootstrap 3 and customizable via Bootswatch themes. From a developer’s perspective, OSP is designed to be lightweight yet extensible: its core codebase exposes a clean MVC architecture, a robust permissions system, and a set of REST‑style endpoints that can be leveraged by external services or custom plugins.
Key Features & Core Capabilities
- Inventory & Stock Management – Items, kits, and an extensible attribute system allow fine‑grained product modeling. Stock levels are updated in real time during sales, receipts, and transfers.
- Financial Modules – Multi‑tier taxation (VAT/GST), customer deposits, gift cards, and a cash‑up ledger give developers full control over accounting logic. All financial records are persisted in the relational schema and can be queried via SQL or OSP’s query builder.
- Transactional Flow – The register workflow is implemented as a state machine: quote → sale → receipt. Each transition emits events that can be hooked into custom listeners or webhook endpoints.
- Reporting & Analytics – Built‑in report generators expose CSV/JSON exports, while the underlying data can be queried directly through the database or via the provided API.
- Extensibility – OSP ships with a plugin scaffold (
app/Plugins) and an event dispatcher. Developers can write PHP modules that register new routes, views, or database migrations without touching the core code.
Architecture & Technical Stack
- Framework: CodeIgniter 4 – MVC, dependency injection, and a lightweight routing system.
- Language: PHP 8+ (strict typing enabled) for performance and modern syntax.
- Database: MySQL 8 / MariaDB 10, accessed through CodeIgniter’s Query Builder or raw PDO.
- Front End: Bootstrap 3 with optional Bootswatch themes; client‑side logic uses vanilla JS and jQuery for legacy compatibility.
- Containerization: Docker images are available on the repo’s CI pipeline; a
docker-compose.ymlcan spin up a fully functional stack in minutes. - CI/CD: Travis CI builds and tests on every push; artifacts are pushed to Docker Hub for easy deployment.
Deployment & Infrastructure
OSP is intentionally minimalistic: a single LAMP stack or Docker container suffices. It requires PHP extensions such as pdo_mysql, mbstring, and openssl. For production, a reverse proxy (NGINX/Apache) with HTTPS termination is recommended. The application’s configuration lives in app/Config/App.php and environment variables, making it straightforward to adjust database credentials or enable reCAPTCHA.
Scalability is handled at the infrastructure level. Since OSP is stateless apart from session data (stored in database or Redis), horizontal scaling can be achieved by load‑balancing multiple container instances behind a proxy. The event system also allows integration with message queues (RabbitMQ, Redis Streams) for heavy‑lifter operations like bulk reporting or email dispatch.
Integration & Extensibility
- API: RESTful endpoints for sales, inventory, and user management expose CRUD operations. Authentication uses session cookies; an optional JWT middleware can be added via a plugin.
- Webhooks: Custom events (
sale.completed,inventory.updated) can trigger external HTTP callbacks. - Plugins: The plugin directory supports autoloading of
serviceProviderclasses that can register routes, middleware, or database migrations. - Custom Themes: Developers can create new Bootstrap themes and register them in the UI settings.
- Third‑Party Integrations: Built‑in hooks for MailChimp, SMS gateways, and Google reCAPTCHA illustrate how to plug in external services.
Developer Experience
OSP’s documentation is hosted on the project website and follows a “docs” folder structure. The README provides quick start guides, while deeper architectural diagrams are available in the wiki. Community support is active on Gitter and GitHub Discussions, with a dedicated contribution workflow that includes automated linting and unit tests. Licensing under the MIT license removes barriers to modification, allowing enterprises to adapt the codebase for internal use or contribute back.
Use Cases
- Retail Chains: A single codebase deployed across multiple stores with shared inventory and centralized reporting.
- Restaurants: Table‑management features combined with kitchen‑display integration; the event system can push orders to a POS‑to‑kitchen bridge.
- Subscription Services: Gift cards and recurring billing can be managed via the API, enabling custom subscription dashboards.
- E‑commerce Backends: The same inventory and sales engine can power an online storefront, with the API serving as a backend for headless commerce.
Advantages
- Performance: CodeIgniter 4’s lightweight core and PHP 8 optimizations result in sub‑200 ms request times for typical sales transactions.
- Flexibility: Full source code access and a plugin architecture let developers tailor the system to niche workflows.
- Open Source Freedom: MIT licensing permits commercial use without royalties, while community contributions keep the feature set evolving.
- Security: Built‑in reCAPTCHA, GDPR
Open SourceReady to get started?
Join the community and start self-hosting Open Source Point of Sale 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
Directory Lister
Browse and share web folders with zero configuration
Dawarich
Track, map, and remember your location history
ydl_api_ng
Self-hosted other
Mistborn
Self-hosted cloud-platforms
Immich
Self‑hosted photo and video manager
Docker Mailserver
Self‑hosted, full‑stack mail server in a single container
