The third alternative is setting up your own dns server (bind,
dnsmasq, a million other options) and pointing to it from all your
clients. In your situation that's just a slightly fancier variant of
your 2).

You could also try IrisCouch or Cloudant, I believe low levels of
usage are free in both but do check. Disclaimer: I work for Cloudant.

B.

On 19 March 2013 22:52, Chris Sphinx <[email protected]> wrote:
> Okay, sorry about this I'm a programmer but I don't know anything about 
> networking. I just want to be sure there's no way to achieve the 
> functionality I'm talking about without 1) getting a domain name or 2) 
> setting an entry in the /etc/hosts file on the computer I want to use to 
> access the page. Is that right?
>
>
> On Mar 19, 2013, at 6:45 PM, Robert Newson <[email protected]> wrote:
>
>> if you want a name maped to an ip address that works anywhere in the
>> world, that's what DNS *is*. :)
>>
>> If you control all the clients, you can add local hosts files and/or
>> point at your own dns server with your own custom zone.
>>
>> B.
>>
>> On 19 March 2013 22:40, Chris Sphinx <[email protected]> wrote:
>>> 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