On 19 March 2013 09:32, Chris Sphinx <[email protected]> wrote:
> I have a CouchDB running on a RPi behind a router. I've seen countless
> tutorials about "pretty urls", but no matter what I do I just cannot get this
> to work for my public IP. All I want to do is be able to serve a boring
> webpage to anyone that hits
>
> http://my.pub.lic.ip:5984
>
> But the only way I was able to do this is by putting the public IP under
> vhosts in the local.ini file. Doing so breaks the database and I can't access
> it in any way until I remove the line from the local.ini file and restart it.
> Trying to get at any part of the database results in:
>
> {"error":"not_found","reason":"Document is missing attachment"}
>
> Sure, I can set up something like 127.0.0.1<tab>couch to hook up to
> http://couch:5984 on the RPi. I can even load it from another machine, but I
> have to set my /etc/hosts on whatever machine I want to use to include
> my.pub.lic.ip<tab>couch. What if I want to allow anyone to access the page
> without having to hack their /etc/hosts file? How am I supposed to set this
> up?
>
> I get the feeling that the only way to do this is to run something like ngix
> in front of the database with a reverse proxy, but I'm already killing an ant
> with a sledgehammer and I feel that there is just something I am overlooking
> here. Can anybody tell me what I'm doing wrong? Or walk me through how to get
> CouchDB to serve up a webpage to a public IP?
Hi Chris,
Sorry to hear you are stuck on this! I remember being equally
mind-boggled a couple years back. It will "click" soon hopefully.
BTW It will help a great deal if you can put a minimal case together &
post it back to the list (or via a paste service gist friendpaste
etc). vhosts, your CNAME, the design doc including the rewriter rules,
and the specific error message in the logfile.
I have this setup at home but power's off and I don't have the config
handy, if I have a free spot today I'll whip an example up. So this is
from memory,
Ensure you've got:
[httpd]
bind_address = 0.0.0.0
[vhosts]
cname:5984 = /dbname/_design/ddoc_name/_rewrite
in your local.ini, replacing cname, dbname, ddoc_name as appropriate.
In your design document, your rewriter key should be something like this:
[
{"from": "/","to": "/index.html"},
{"from": "/*","to": "/*" }
]
And obviously there should be an attachment called index.html within the ddoc.
Check through http://docs.couchdb.org/en/latest/pretty_urls.html and
see if that helps you out. I'm pretty sure out of this thread we can
put a better example up!
Note that you could also set http port to 80 both in the vhost and in
local.ini under [httpd] section which would be even tidier.
A+
Dave