I need to set up a second … site/company … not sure what term to use. I already have my Trinity Drones site on a droplet. All is well currently running 12.26 but I have already updated my 2 other servers to 12.28 so I shall shortly update this site to 12.28 as well.
And I am wanting to run an education-erpnext on the Trinity Drones server but stil keep
them separated as far as possible. So I am considering my options…
I had a look at the diagram on the frappeframework-website …
If I may take a moment of your time to verify that my understanding is correct …
same site. New company. This implies that it uses the same database with just a
“company name” entry into database tables that identifies for which company the
transaction is. Any Form-customization wil lbe visible in both companies.
This is multi-tenant. It creates a new site which uses its own database. ( I read this
in another post ). It also uses its own URL. What I am not clear on is form-customizations.
From the diagram it would seem to me that any form-customization is visible in both
sites ?
From these, it seems that , appart from the same-site-new-company and the the
same-bench-new-site approach there is also a new-bench approach.
I would still like to confirm that my interpretation is correct that , same-bench-new-site ( which is (2) above ) will have form-customizations visible in all sites ?
In either case, they “may” (or may not) be modified/forked/edited, in which case they will differ from the official code published by the original authors.
(Note that I am deliberately avoiding using the word “customize”, because that has very specific meaning to Frappe/ERPNext)
Q: Can you install more than 1 Instance per Device/Host? A: Yes, by installing Frappe/ERPNext again, but using a different base/root directory. So that all the files are stored in completely separate directory path on the device.
3. Site
Within an Instance, a distinct subdirectory beneath the 'sites' subdirectory.
Has a distinct MariaDB database (and therefore, a distinct set of all SQL tables)
1 Site = 1 Database.
1 Database = 1 Site.
A distinct set of Users with password.
Each Site decides to use 1-or-more Apps.
Q: Do all Sites in an Instance share the same Apps? A: No, not necessarily! Each Site can decide which of the available Apps to use.
Sites can Customize their installed Apps. These Customizations are stored inside the MariaDB database associated with the Site. Therefore, a Customization is --not-- shared between Sites.
Q: Does 1 Site = 1 legal entity? Company? Business? Organization? A : That is up to you to decide. There are no rules about what a Site is/isn’t. Treat it however you want.
4. Company
The “Company” is an ERPNext-specific DocType. It is used for:
A lightweight way of separating/categorizing -some- (but not all !) Documents. Example:
Purchase Order and Sales Orders have a 'Company'
Customers, Suppliers, and Items do not.
Users do not.
Roles and Permissions do not.
So what does Company “mean” … ?
…that’s really up to you. It’s a kind of a semi-global filter in ERPNext. Useful for reporting. Useful for having different default values, per Company. But not particularly strict. Companies are sharing data (customers, suppliers, items, and much more). And there’s no limits on what Users can “see/do”, based on Company.
Conclusion
Hopefully this provides enough information/context for you to make your decisions, @johnlongland.
I can see where I “missed the boat” with my interpretations.
This one had me sitting up straight…
I understand this as well now …
While reading through all this, I already have some more questions…
around nginx / letsencrypt … But let me first dig around on that and build my own picture
and then verify if I am correct / close.
But it seesm that there is only one way for me … lucky I have a test-server / play-server
that I can polish the procedure before implementing it on my production server.
I am not going to mark the thread with “solution” yet. I would like it to remain open
for now, just so that I can still add some input / comments.
Create another site, using multi tenant options. I would prefer this options if you still want to use the same version with other sites in the same bench.
Create another bench, so that you can have different versions of sites in the same server.
Like @brian_pond said, it can have different set of apps applied to each site.
On one of my previous posts, I made a comment that I just want to consider
lets-encrypt on a multi-tenant system, but I was overthinking things.
a Lets-encrypt certificate is linked to a particular URL (site) so if I add anothe rsite,
lets-encrypt will ask me which site I want to encrypt. So …worries.
Just for reference I am adding a link to another post …