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

Reply via email to