I simply want to be able to access an html page from the public IP without 
breaking the Couch. This is just for my personal convenience, this is not for a 
public site. But I want to be able to access the webpage from anywhere (like a 
mobile device or public computer).

If I understand correctly, I could make this work if I had a registered domain 
name? That's fine, but is there any way to accomplish this WITHOUT buying a 
domain name?


On Mar 19, 2013, at 9:22 AM, Robert Newson <[email protected]> wrote:

> Virtual Hosting is predicated on host names. Vhosting the ip address
> is not recommended, for the reasons you've already encountered.
> 
> What are you trying to achieve? It's very odd to direct people to your
> site via IP address. Are you trying to use the virtual host feature as
> a security mechanism?
> 
> B.
> 
> On 19 March 2013 13:15, Chris Sphinx <[email protected]> wrote:
>> Sure, here is a secret gist with the relevant files:
>> 
>> https://gist.github.com/chrissphinx/a9e8411fa6efefa9572c
>> 
>> To state the problem again: I cannot access the webpage by hitting:
>> 
>> http://184.75.155.16:5984
>> 
>> It will simply return the JSON welcome message. However, if I (or anyone 
>> else I assume) were to create an entry in THEIR /etc/hosts file:
>> 
>> 184.75.155.16           couch
>> 
>> And hit the url:
>> 
>> http://couch:5984
>> 
>> Then it works. That's great, but it's not what I want. I want the public IP 
>> to go directly to the index.html file no matter what computer is hitting it. 
>> The only way I've found to get this to occur is to put in [vhosts]:
>> 
>> 184.75.155.16:5984
>> 
>> The public IP. This DOES work, but it breaks the entire database. You can't 
>> write nor can you retrieve any docs from the database. This makes sense to 
>> me because the database isn't at the IP anymore, just the webpage.
>> 
>> A sysadmin friend of mine told me that this is why you need a vhost set up, 
>> but now it's beginning to seem as if I actually want a "reverse proxy" which 
>> is functionality that is not provided by CouchDB? Or is serving a couch app 
>> to the public IP possible with only Couch running on the RPi? Thank you for 
>> the help so far, it is really appreciated.
>> 
>> 
>> On Mar 19, 2013, at 4:53 AM, Dave Cottlehuber <[email protected]> wrote:
>> 
>>> 
>>> 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
>> 
>>> 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?
>>> 

Reply via email to