Hi!
Last weekend i was in Vienna, working with Markus on remotestorage
support for the freedombox. Let me try to do a write-up, Markus please
fill in the gaps where needed! :)
We came up with the idea of using an external usb drive for the user
data (in the shape of the remotestorage logo), because that way it's
easy to see and understand where your data is, and it's easy to make
and restore backups.
We already discussed that in order to be able to support
remotestorage, the freedombox would need to come with a domain name
registration (DNR) from a 'normal' TLD (one that's recognized by the
DNS root servers), function primarily via IPv4 (not rely on IPv6 yet),
and use TLS with an SSL cert from a CA that's recognized by all five
big browsers.
Apart from that, since people generally don't have a static IPv4
address in their house, it should come with a pagekite account.
The DNR, SSL cert, and pagekite account, are services that need to be
renewed. For this, the remotestorage stick (the logo-shaped usb drive
that will hold your data) can contain provisioning tokens. That way,
you can buy a generic (still unconfigured) physical object in a shop,
and configure it on first use.
The first use flow would be as follows:
Plug the remotestorage stick into the device (this can have e.g. a
Raspberry Pi with an additional wifi stick inside), and connect the
network cable from the device to (one of) the free ethernet ports on
your existing home router.
A 'freedombox' wifi network will come up. The password for this is on
the *front* of the box.
If you connect to this and browse to
http://freedombox/ you see an
admin panel (called Plinth). The admin password for this is on the
*back* of the box, as well as in the instructions/packaging (so that
you don't have to unplug it at this point, but you know it's there for
future reference, should you discard the packaging).
It asks you to choose a domain name, which it would register using the
DNR token that's on your remotestorage stick. It would also ask you
for an admin email address, and once you confirm this, it will
register a domain name for you, set up an ssl cert, a DNS zone, and a
pagekite frontend for it, and start a remotestorage server on the
device that stores its data on the stick. The device does not have any
relation to the dnr, ssl and frontend providers, but the tokens that
comes on the stick, do.
When you visit
http://yourdomain.com/ or
http://www.yourdomain.com/
you're redirected to
https://yourdomain.com/ where it would show a
placeholder empty website, served from the public web directory on
your remotestorage. it would need to cache in memory to not hit the
usb drive too hard, but that's feasible.
then, if you visit
https://apps.yourdomain.com/ you would get your
apps portal (see
http://lanyrd.com/2012/unhosted/sygwp/ for a demo).
a next step would be to also add app dev flattering tokens on the
remotestorage stick when you sell it. That way, the remotestorage
stick would, in the shop, say "20 euros worth of unhosted web apps
included", and you could then pay for apps in the app store.
and there would be no 30% of that money going to Apple. :)
offering this on a dreamplug would probably cost 230 euros + labour,
whereas offering it on a raspberry pi would probably be possible for
100 euros + labour. One of the unhosted web apps would allow you to
publish and edit your website.
On the back of the remotestorage stick there would be room for a tag,
like a key ring label, on which you can write the domain name that is
served from that remotestorage stick, in case you have multiple ones
so you don't mix them up, and also to make the user understand that
this is your own website and blog, hosted entirely in your house and
under your control, yet available at the domain name you picked on
first run, and that becomes your Indie Web identity. Once we have a
few of the basic unhosted web apps that people are already working on,
I think a freedombox plus a remotestorage stick would make a brilliant
Christmas present for non-technical people who want freedom from
web2.0's platform monopolies. :)
Cheers,
Michiel.