FabricLabs / soundtrack

Self-hosted collaborative music playing application.
https://soundtrack.io
126 stars 52 forks source link

Please document the DNS/server config for the rooms sub-domaine names #186

Open Lucas-C opened 8 years ago

Lucas-C commented 8 years ago

Hi,

I'm trying to setup an instance of soundtrack.io for me and some friends, and I don't really know how to configure my server so that e.g. "coding.soundtrack.chezsoi.org" can be queried. Could you please document this configuration ?

Thanks

martindale commented 8 years ago

This should be documented here: https://github.com/martindale/soundtrack.io/blob/soundtrack.io/README.md#testing-rooms

Lucas-C commented 8 years ago

Oh, ok. I thought this paragraph was only for tests, as it concerns only local hostname lookups. I tried this but I still remain stuck with:

$ curl https://coding.soundtrack.chezsoi.org
curl: (6) Could not resolve host: coding.soundtrack.chezsoi.org
martindale commented 8 years ago

It looks like you're deploying to a public webserver – you'll need to use a wildcard entry at the apex domain, I believe. I have not tested using a subdomain as the top-level site, as we have only ever deployed locally or on soundtrack.io.

I'm really excited that you're deploying a copy, by the way. I'd be very interested to discuss a peer-to-peer data-sharing arrangement, even ahead of Fabric and Maki. It'd be useful to attempt to synchronize / reconcile differences between our Tracks and Artists collections.

Lucas-C commented 8 years ago

you'll need to use a wildcard entry at the apex domain, I believe.

Ok, but to what path on the Node server should I route the requests ?? Can I route them directly to the root /, and the app will detect the room from the HTTP "Host" header ?

I only plan to use this with a close circle of friends, and we may prefer to keep our playlists separated. But I'd be happy to give you some feedback on this experiment :) Also, what are Fabric & Maki ?

martindale commented 8 years ago

Yes, the / route handles everything automatically, based on the Host field. Based on the changes you've made, everything should work as expected, but let me know if it doesn't! :)

edit: correction incoming, including other answers.

Maki is a full-stack framework for implementing web applications, like soundtrack, using resource-oriented design. It's a project that emerged directly as a result of soundtrack.io and how the product evolved over time, including what you see today – though the existing codebase does not use the latest version of Maki, we are in the process of a significant refactor that does.

I'm hoping to use Maki as a reference implementation of a new distributed application protocol that I have been working on for some time, which I'm calling Fabric. The protocol aims to eliminate the need for servers to host applications, replacing it with a peer-to-peer network of nodes that exchange data with one another on an on-demand basis.

This is why I'm so excited to have you running another instance! It gives us an opportunity to test a few of the hypotheses we have about synchronizing data without diminishing the value of a localized instance, including derived consensus on application state.

You might want to join the Maki Slack if any of this intrigues or interests you. We have a dedicated #soundtrack channel for discussion about this specific project, including our in-progress refactor.

Lucas-C commented 8 years ago

In case anyone else faces the same issue, here is the solution I found to the DNS wildcard problem, considering I'm using bind9 on my machine : simply add the following line into /etc/bind/db.chezsoi.org :

*.soundtrack      IN              CNAME           soundtrack.chezsoi.org.

And then: sudo service bind9 restart.

Your Maki + Fabric project sounds great ! I'd be happy to help, I'll trying to get a look at those during the week