I've only worked with intranet apps so far, but I'm seriously thinking about starting a SaaS webapp. However I'm largely ignorant of the workings of the wild wide web, so please bear with me.
My idea is to get a big picture of the issue of multi-tenancy, some aspects have to do with web2py, others (perhaps most, do not). Web2py is however, my platform of choice, and I would like to have understand how the involved pieces fit together. Hopefully the answers to this post are helpful not just for me but for others evaluating or treading the same route. My idea is to achieve multi-tenancy using the common: customername.mydomain.com where customername changes for each customer. This is quite common and can be observed in webapps such as unfuddle, basecamp and many many others. My understanding is that this implies: 1. a DNS registration with a wildcard subdomain: So I will have www.myawesomeapp.com and *.myawesomeapp.com registrations 2. SSL certificates for both www.myawesomeapp.com and *.myawesomeapp.com 3. The server: Apache, Nginx, ... will have some configuration in order to send requests in the form of *.myawesomeapp.com/... to web2py Is this that "simple"? is this all that is needed so that web2py will start receiving requests with customerXsubdomain.myawesomeapp.com? (be patient... I've only ever used the built in webserver, a part from a single production site I did long long ago) 4. Lastly, the customer calling can be checked by web2py using request.env.http_host which will hold something like: fireworksltd.myawesomeapp.com for client connections from customer fireworksltd so if, has suggested in the book, we use: db._common_fields.append(Field('request_tenant', default=request.env.http_host, writable=False)) That is it, this is the extent of fiddling in web2py. There is no need fr extra fiddling with db.table.request_tenant.default in function controllers? And, would it be possible or does it make any sense to somehow make request_tenant default to an integer id? Or is my feeling of reducing record size, senseless knit-picking here? 5. Is it possible to somehow test this feature on localhost? How? Is my overall picture correct or am I missing anything? Txs, Miguel -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.