Status.net is a micro blogging service, similar to Twitter, but it’s open source, meaning that your team or company can run it’s own instance on hardware you control, while gaining the benefits of real time communication but keeping control of your data. In this quick demo I’m going to try Status.net on Ubuntu. As with ThinkUp, you can deploy this on a local machine, EC2, or OpenStack, but for this demonstration I will deploy it locally in an LXC container to play with it and I will introduce the `juju get` and `juju set` commands. This charm was written by George Edison (Nathan Osman), who also did the ThinkUp charm.
The first thing to do is to configure juju for use. If you want to use it locally you can use the instructions here. For now we’re deploying this via a PPA, but for Ubuntu 12.04 (released in April 2012) this will be built into Ubuntu Server. Let’s install juju:
sudo add-apt-repository ppa:juju/pkgs sudo apt-get update && sudo apt-get install juju charm-tools
Now let’s get started and snag the statusnet charm:
charm get statusnet oneiric/statusnet
Here I like to open another terminal and do a `watch juju status` so I can see what’s going on. Now let’s deploy it, along with MySql, and make them aware of each other, and let the charm do the rest:
juju deploy --repository . local:statusnet juju deploy --repository . local:mysql juju add-relation mysql statusnet
While that’s deploying I can also use this moment to pass along some arguments to Status.net. For example, it needs a username and password to login, things of that nature. These are configuration options in the charm. Let’s find out what they are:
juju get statusnet charm: local:oneiric/statusnet-1 service: statusnet settings: email: description: The email address of the administrator (cannot be changed) type: string value: -Not set- nickname: description: The nickname for the administrator (cannot be changed) type: string value: -Not set- password: description: The password for the administrator type: string value: -Not set- title: description: The name of the site type: string value: Untitled
Ok, so I can set 4 things right off the bat here. Let’s do it and then expose this to the world!
juju set statusnet email="email@example.com" nickname="jorge" password="whatever" title="jorgedentica" juju expose statusnet
Doing a `juju get statusnet` will also show me what values I have set for each option. Then I go to the IP address mentioned in `juju status`, login with the credentials and start customizing your new Status.net instance:
What about my favorite service?
Anything that can be deployed can have a juju charm, everything from Minecraft, to running your own Steam server is being worked on. Our list is already growing. If you’re looking to add your service to this growing list we would LOVE to work with you. We’ve got Mark Mims working with a bunch of upstream projects right now sharing best practices on getting their projects into charms. The nice thing about charms is they can be written in whatever language you want, which means, your sysadmin probably already has deployment scripts get you most of the way there.
You can find more information on the wiki page. We’re especially looking for upstream projects who want to lay claim to their charm and make it rock, we’re ready to help you get what you need out of the charm store.
We have two event’s coming up, one in IRC, and one at SCaLE if you want to hit us up with more questions, see you there!