Smack a Ho.st - A localhost domain(tbaggery.com)
tbaggery.com
Smack a Ho.st - A localhost domain
http://tbaggery.com/2010/03/04/smack-a-ho-st.html
9 comments
Hm, I modify my /etc/hosts all the time and it works as it should.
I works, but not as simple for using domain wildcards, as he mentioned.
I also wildcard *.localhacks.com to 127.0.0.1
Why is this specific to Rails?
The beauty of the web and of the internet protocols it's built on is that you can have multiple implementations that respond to the same interface. DNS doesn't care what language it's pointing to.
The beauty of the web and of the internet protocols it's built on is that you can have multiple implementations that respond to the same interface. DNS doesn't care what language it's pointing to.
It's not specific to Rails, only his example URL is - Rails listens on port 3000 by default. You could equally try http://iwishyouwouldnt.smackaho.st:80/ and get your local web server.
If you're developing on Rack-based webapps on MacOS, check out http://github.com/alloy/passengerpane -- it's a System Preferences panel to automatically sets up local DNS and Apache/Phusion Passenger vhosts for projects.
If there's a similar tool for non-MacOS or non-Rack stuff I'd love to hear about it.
If there's a similar tool for non-MacOS or non-Rack stuff I'd love to hear about it.
Do you need subdomains specificially, or just different addresses that resolve to localhost? If so you could use e.g http://127.1:3000/, http://127.2:3000/ etc. (or the full 127.0.0.1 127.0.0.2 if your browser doesn't like 127.1).
Having subdomains is nice when you're developing an app that will use sudomains for accounts in production.
One of the (Rails) apps I'm developing needs subdomains, and I don't think it's uncommon. We probably could find some way to develop without subdomains, but Rails likes doing it this way.
While aliasing localhost takes about 30 seconds (on Linux, at least), this trick will make it a little easier for new contributers to get involved.
While aliasing localhost takes about 30 seconds (on Linux, at least), this trick will make it a little easier for new contributers to get involved.
For getting up and running you don't necessarily need them, but it can make life easier e.g. name-based virtual hosts.
*.somesite.com has been around since 2003 and points to 127.0.0.1.
My /etc/hosts has:
127.0.0.1 me
So I can do http://me/website-to-test/
127.0.0.1 me
So I can do http://me/website-to-test/
But if you are developing a site that uses the subdomain as a routing rule, that fails. Your /etc/hosts entry won't make http://fuck.me/ go to your site, which is what smackaho.st will allow you to do.
Obviously this is easy enough to fake without DNS trickery; just modify the outgoing "Host:" header or teach your proxy how to "resolve" names in the form of "*.me".
Obviously this is easy enough to fake without DNS trickery; just modify the outgoing "Host:" header or teach your proxy how to "resolve" names in the form of "*.me".
There's already a totally unambiguous domain for this -- why not alias *.localhost?
Given all rails developers use a Mac ;) this is useful.