How to Deploy Self-Hosted Business Management Software
Deploying a self-hosted business management system like Celerp involves moving your core operations—accounting, inventory, and CRM—away from SaaS subscriptions and onto your own hardware. This method is for businesses that prioritize data sovereignty and want to avoid monthly per-user fees, but it requires you to take full responsibility for your local network, hardware uptime, and database backups.

Who is this deployment for and what will it cost?
Estimated Cost Breakdown (Case Study):
- Software: $0 (Open
- Hardware: $150–$600 for a dedicated local machine (a refurbished OptiPlex or a dedicated NUC) to act as the permanent server.
- Maintenance: $0 (Self-managed) or $50–$100/month if hiring a freelance sysadmin to handle backups and security patches.
- Total Initial Outlay: Approximately $150–$600 one-time.
Note on Risk: Unlike a SaaS platform where the provider handles data redundancy, if your local hard drive fails and you haven't configured an automated backup, your entire business history (invoices, inventory, ledger) is gone. You are the IT department.
How do I deploy the system on a local server?
The Professional Server Setup (Ubuntu/Debian Linux):
- Prepare the environment: Ensure Python 3.10+ is installed. It is highly recommended to use a dedicated Linux machine rather than a Windows workstation to ensure stability.
- Install Run
pip install celerp. - Initialize the database: Use
celerp init. If you are running this on a dedicated server, Celerp will bundle its own PostgreSQL instance. However, for production reliability, I recommend pointing it to a managed PostgreSQL instance on the same machine usingcelerp init --db-url postgresql+asyncpg://[user]:[password]@[host]/[db]. - Set up as a system service: To ensure the software restarts automatically if the power cycles or the system crashes, do not just run "start." Use
celerp init --no-startfirst, then configure a systemd service file. This allows the OS to manage the process in the background. - Network Access: Once running on
localhost:8080, your teammates can access the interface by navigating tohttp://[Your-Server-IP]:8080from any device on the same Local Area Network (LAN).
How do I extend the functionality with custom modules?
Celerp is built on a modular architecture using FastAPI and FastHTML. This means you don't have to modify the core code to add custom business logic—which is vital for keeping the system upgradeable.
What went wrong during my deployment?
In a previous deployment for a small manufacturing client, I hit a critical failure regarding network visibility and firewall settings.
Another failure point is IP volatility. If you host the server on a standard desktop that uses DHCP, the local IP address will change every time the router reboots. This breaks all your team's bookmarks and integration links. Always assign a Static IP to your server machine at the router level before rolling it out to employees.
How does this compare to other methods?
Choosing between self-hosting and traditional methods depends on your technical debt tolerance and your need for privacy.
- SaaS (QuickBooks/Xero/Shopify): High convenience, zero maintenance, but high recurring costs and zero control over data privacy. You are renting your business logic.
- Managed Cloud (AWS/DigitalOcean): High uptime and accessibility, but requires significant DevOps knowledge to secure the server and manage database backups.
- Self-Hosted (Celerp on Local LAN): Lowest long-term cost and highest privacy. You own the data and the hardware. However, you are responsible for hardware failures and local network security.
Use this self-hosted method if you have a physical office with a reliable router and you want to own your data. Do not use this method if you are a fully remote team spread across different cities without a VPN or a centralized cloud server, as the "local network" requirement will become a massive connectivity bottleneck.