I am currently working on setting up a self-hosted Frappe Cloud deployment with separate servers for the app, database, and proxy, but without using press or a Frappe Cloud subscription.
Most of the documentation I have found is related to either:
Local development setup (which uses bench and press CLI).
Frappe Cloud-managed hosting, which requires a subscription.
However, I want to self-host everything while keeping full control over my infrastructure.
My planned setup:
Proxy Server (Reverse Proxy) – running NGINX
App Server (Frappe Application)
Database Server (MariaDB)
I would like to know:
Is there an official guide or community-supported documentation for self-hosting Frappe without press?
How do others in the community deploy Frappe in production with a multi-server setup?
Are there any best practices or potential issues I should be aware of when setting this up manually?
Any guidance, documentation links, or suggestions would be greatly appreciated!
Frappe/Press and Frappe/Agent is required if you are hosting your own frappecloud like setup. Are you planning to setup such service so you can charge subscriptions for your customers? Your customers can manage their benches, sites etc? You “also” want to start your customcloud?
If you just need a setup for your own or have frappe application that you need to host then use
If you wish to create your own Frappe PaaS instead of hosting your own frappe setup. If you are okay with using Kubernetes API (larger community, well documented and most common SaaS/PaaS questions answered already)
It gives you frappe DocTypes to manage benches and sites on Kubernetes.
You need to build your own commercial models and DocTypes around it. Like Subscription, Plan, Point, Credit, Bell, Whistle, etc.
You need to build your own restrictions and locks, e.g. Internally when subscription expires, you can disable the bench or site or restrict it using the k8s_bench_interface frappe app and Kubernetes API. All that code needs to be done by you.
Use it for managing your SaaS/PaaS customers and don’t expose any ui to them. Interact with them using email, phone, tickets.
You can build your own proprietary PaaS for your clients. The licenses are MIT.
Thanks for sharing this approach! I recently self-hosted Frappe Cloud using the Press Console, where I installed Bench locally, used Press to manage deployments, and automated dependencies with Ansible. It worked well, but the biggest challenge was the lack of documentation.
I’m very interested in comparing this Kubernetes-based approach with the Press Console method in terms of:
Ease of setup and deployment – Which one is simpler for initial setup?
Management and scaling – Which is easier to maintain in the long run?
Feature completeness – Does the K8s Bench Interface offer everything Press does, or are there limitations?
It would be great if you could share a full tutorial or a video walkthrough on setting this up. It’ll help in understanding how to configure domains, TLS, and manage sites using the k8s_bench_interface app.
Looking forward to your insights! Thanks in advance.