Thank you for your detailed response. Following your response point by point with few additional googling, it works as expected.
On cpanel: I created a subdomain called * Then I chose document root as the main Django root. (This is needed so that letsencrypt can automatically create a certificate.) Then the routing works seemlessly Thank you On Thu, Dec 30, 2021, 7:06 PM Sherif Adigun <[email protected]> wrote: > Thank you very much for you guidance. I have been able to make it work > using Django-hosts on my local. Still trying to fix it out to work on my > shared hosting if possible > > On Thu, Dec 30, 2021, 10:29 AM Sherif Adigun <[email protected]> > wrote: > >> Thank you @Tim. Django subdomains looks promising but it's outdated. It >> uses codes and imports of django< v2 I have checked django-hosts but it >> looks as if it can be used for only predefined list of subdomains. Please >> help clarify this doubt. >> >> Thank you for your time >> >> On Thursday, December 30, 2021 at 1:10:17 AM UTC+1 Tim Chase wrote: >> >>> On 2021-12-29 15:02, Sherif Adigun wrote: >>> > I am faced with a requirement where each user is required to use >>> > the application under his own subdomain. Whenever a user registers, >>> > he gets username.domain.com and he can add staff, manage reports, >>> > etc under his subdomain. >>> > >>> > What is the best approach to you can suggest please? >>> >>> Generally this requires >>> >>> 1) configuring your DNS to allow for wildcard domains so that >>> *.domain.com points at your web server, usually looking something like >>> >>> *.example.com. 3600 IN A 198.51.100.17 >>> >>> 2) setting up your HTTPS certificates. This could be >>> >>> - involve an ACME-aware Django route (I'm not sure if such a beast >>> exists) >>> >>> - configuring an ACME client like certbot to update your >>> DNS records so that Let's Encrypt can verify that you own the >>> domain and then grant your a wildcard cert >>> >>> - use a different CA to obtain a wildcard cert >>> >>> 2b) if you used a more manual method, put the certs in the >>> appropriate place for your web-server to pick them up >>> >>> 3) configure your web-server front-end/proxy (usually nginx or >>> Apache, but there are others) to handle the wildcard domains and pass >>> them through to your Django app or WSGI server or what have you. Make >>> sure the domain information is passed through in the HTTP_HOST header >>> >>> 4) use django-subdomains[1] (or maybe django-hosts[2]) middleware to >>> extract the intended host-name from the HTTP_HOST header and possibly >>> make the route reversable so that .reverse() works >>> >>> 5) check your views so that they make use of the HTTP_HOST >>> information to filter for user-specific information >>> >>> -tkc >>> >>> >>> [1] https://django-subdomains.readthedocs.io/en/latest/ >>> >>> >>> [2] https://github.com/jazzband/django-hosts >>> >>> >>> >>> >>> >>> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "Django users" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/django-users/CTynQlthabY/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/6057efaf-5e10-498a-ad2a-40132425412dn%40googlegroups.com >> <https://groups.google.com/d/msgid/django-users/6057efaf-5e10-498a-ad2a-40132425412dn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CACP0aXhauGv-q4o_UERihQgAH3Ga6wn_MSYXqm8O4SmMfabTqQ%40mail.gmail.com.

