One ODK Central Instance, many domains / per project domain

1. What is the issue? Please be detailed.
Before going too deep into the weeds of my ODK Central install, I wanted to post this question. Is it possible to have a single ODK Central Instance where I have multiple projects, and I can make Web Forms / Enketo Forms that have different domain names? Ideally I'm looking for this:

I have no idea if this is possible and looking at that forum post it looks like Enketo is tied to a single domain, but not sure how Web Forms works/is being built. If this is better suited to be put in Ideas rather than Support feel free to move it. The only thing I found on the forum that looked relevant was this:

where you can have 2 domains pointed to the same IP, which is kinda what I'm looking to do, but not exactly.

Oooh, interesting question! I’ll try to pull this off later this week.

The immediate issue I can see with two different domain names pointing to the same server is that my username for treeproject.com will also log me into healthproject.com, which feels confusing and potentially co-mingling two different administrative entities into the same one inappropriately. Furthermore, you may want to send bespoke password reset emails for treeproject.comfrom that domain and similarly for the healthproject.com domain.

… then you also may get into cases where data from the Tree Project is co-mingled with the Health Project during backups. Perhaps these issues are not relevant for your use case, but I can see this being a footgun for users who need stronger barriers between the two.

What are you optimizing for in using two different domain names? ODK Central is not that difficult to set up - could you perhaps spin up two different containers in Proxmox or something similar?

I’m exploring the option of using a Web Form as a customer inquiry/checkout type of form/submission. Basically websites/landing pages with an order/checkout/contact us button that would go to an ODK Web Form, which needs to be the SAME domain as the website. This is the primary thing. I care much less about how the backend needs to be managed (logins/Central users/etc).

I have a minimum of 4 projects/unique domains I’m looking to setup, but each one is likely to be low traffic (maybe a couple dozen submissions/day) and I’d want to avoid setting up/managing multiple Central Instances for something that is so low traffic and likely would only require one form.

In my context, I’m looking at ODK Web Forms because of its multilingual and audio features, as well as the detailed GPS data/calculations that would facilitate/help shipping in a place that has no formal address system, group customers, AND avoid large quantities of inquiries from people outside of a target location/market/region/etc.

An interesting use case!

I wonder if the recent proposal to ship ODK without nginx would help meet this use case. I agree having the option to make ODK Central more oblivious to its domain name would reduce the complexity for those of us that want to tinker with it and/or push it to the edge of its design specs.

Yeah, this is precisely the issue that I want to solve, being able to more efficiently use resources essentially.

About a year ago, I had thought about attempting something similar. I didn't end up trying it out practically, but while thinking it through, a couple of questions / doubts came up to me back then:

  • When we build and run the ODK Central's containers, we specify the DOMAIN in the environment file. And, if I understand this correctly, that value gets embedded into Enketo's configuration at build time. Because of this, I wasn't fully sure how feasible it would be to run the same ODK Central instance across two different domains - especially from Enketo's point of view.
  • I was also curious about how things like CSRF protection, cookies, etc. would behave in such a setup.

Edit: Check This..!