[Freedombox-discuss] Virtual Machine Scripting and Tiny Tiny RSS
I went to a presentation this past weekend about Tiny Tiny RSS. It's an RSS web
app that can be installed on a server, to provide something like a "Google Reader" app.
(The title of the presentation was "The Coming Google RSS Reader Apocalpyse", at
The presenter has Tiny Tiny RSS running on a machine at home, and is providing service
for himself and some family and friends. He's even written a keyboard-centric web frontend:
He runs Tiny Tiny RSS as the backend, and then serves up pages based on the front end he's written.
Tiny Tiny RSS is listed on the FreedomBox LeavingTheCloud page:
This got me thinking about how I'd like to Tiny Tiny on the machine I've got at home.
Currently it's running ownCloud, WordPress, a Tor Relay, and BitTorrent. They run on
separate VMs. I'd like to run Tiny Tiny RSS too, and want to put it in a separate VM.
Ideally I'd have a script I could run, that just spins up a new VM running Tiny Tiny.
It would be something like:
freedombox-vm create tiny-tiny-rss [instance-name] [config-script-file]
freedombox-vm start [instance-name]
The VMs would run using KVM. Here's an interesting post on this, from this past week:
How to get started with libvirt on Debian
I want to dig into this as a next project, after some other things I'm working on.
I thought I'd put it out there to get any thoughts other might have on this, and
find out if anyone else is doing something similar.
Ultimately, it seems this kind of approach would be a good one for FreedomBox in
general. The process of spinning up instances would be hidden behind the FreedomBox
web UI, but a user would essentially be doing things such as "freedombox-vm create"
and "freedombox-vm start".
This way, services are better insulated from each other, for better security. The
host machine would probably be doing basic network services (dhcpd, dhclient, iptables,
etc.) But then there would be a separate VM for user services such as an RSS reader,
social networking, chat, etc.
To take this one step further, the longer term goal would be to do something similar to
what Qubes is doing with things such as temporary VMs -- VMs created temporarily for
just one task and then discarded: