Sync at home – Weave minimal server on microapache

Just in case you didn’t know, Firefox Sync is a very convenient service Mozilla gave to the world: you can can keep synchronized history, bookmarks, tabs and passwords between different Firefox installations, on different platforms and devices.

Even if Mozilla affirms that

Your data is always protected, so only you have access to information like your passwords and browsing history.

(and I’m pretty sure they’re not lying), people usually like to keep private data private: encrypted is good, encrypted and at home is better.

Toby Elliot (Mozilla team), some months ago released a minimal version of the “real” sync server: it lacks all the user management api, but is a full implementation of the storage part. Set up Apache (or equivalent), configure your Firefox to a custom server, repeat for every device, and you’re done. I’ve been using it for more or less two years (iPhone and Android clients included), and indeed it works rather well.

Sadly, it is now discontinued, since the php version has been dropped and now Mozilla runs a brand new python sync server. There are instructions, if you want to set up your own, however it is not for the soft hearted (especially under Windows) and the server itself seems to be a bit more resource hungry than the minimal version.

If you want to try the weave minimal server on Windows, I have packaged microapache 2.0.63 with PHP 5, weave minimal and a simple GUI to configure and manage it (built with NSIS).

weave miniman on microapache GUI
The functions are quite self explanatory: in the upper section, you can configure the servername and the listening port for apache, and install/uninstall/start/stop the server. In the lower section you can add a new user to the sync db, remove already existing users, and you can see the url to use in Firefox.

To setup Firefox: Set up Sync -> Connect to an already existing Firefox Sync accont -> I don’t have the device with me -> and then complete the form and save.

firefox 7 sync custom server setup

Limits of this first release:

  • the apache configuration has not been particularly hardened for production use, it could be a very good idea to use it behind a VPN (I use a simple ssh tunnel). If you have experience in securing apache, I would gladly receive advices about the httpd.conf
  • HTTP only. SSL support is present but not yet configured (and not really needed as long as apache is not ready for production use)
  • The GUI needs admin rights.As long as it has to interact with Windows services, there isn’t really any alternative. If I receive enough feedbacks, I could release a no-service version of the GUI.
  • Tested on XP only (should work on Vista and 7, tho).

You can download it here (less than 4MB for the whole package), just decompress the archive and run config.exe.

Sources will be released on google code after some cleaning.

What can I say… as long as Mozilla does not revamp the storage API (making the minimal server useless), I think I’ll keep running this version, at least as long as I do not find the time to make a standalone version of the python server 🙂

UPDATE: v0.11 – fix: not working on non standard HTTP/80 port.


Clouds for all – Easiest and cheapest ESXi whitebox ever.

I always liked virtualization. It pushes breaking things to a totally different level.

I’ve been playing with ESXi at home for 3+ years, more or less since it was first released as a free version of ESX. Until version 5, if you wanted to deploy ESXi on (cheap) non-officially supported hardware, you had to rely on custom drivers built from the online community (vm-help is a great pool of answers), creating a custom tgz file which should then be injected in a file extracted from the installation ISO. Well, more or less.

All this was especially true if you did not want to go shopping for specific disk controllers and network cards. At some point, VmWare even took away support for the Atom processor family (it was probably a mistake, since the support came back in the next update).

Here enters ESXi 5.0, which finally adds out-of-the-box Realtek NICs (8168/8169) drivers, and supports all the hardware (at least, all the hardware you need to build a fully functional headless virtualization server) of the Asrock A330GC. Cheap, mini-itx, 1.6GHz dual core Atom CPU, one of the few Atom motherboards which supports ~4GB of RAM (just 3.5 available, sadly). Add a Pico-PSU, two sticks of 2GB DDR2 Kingston, add some storage (a 2.5″ sata hard disk is perfect), install ESXi on a USB key and you are ready to go with just a bit over 100$.

Even if the Atom isn’t exactly the speediest processor out there, for a home server works very well: four logical cores and 64bit are more than enough to virtualize a bunch of 32 bit machines (not VT-X, no 64bit guests), all in less than 30 watt/hour, passively cooled (if you remove the useless fan – as long as the enviroment is a bit ventilated), totally silent.

I’m not to say that there are no compromises, though: all the hardware sensors are not working (no temperature monitoring or similar), no VMDirectPath (hardware passthrough) and as I already said no 64 bit guest OSes, but if you really need these features, I suppose you can look at the HCL. :

Anyways, right now I have 7 VMs deployed, 5 of which (3 Windows XP, 2 linux) running 24/7 since 2009, and the only problems I had were human-caused (ok, me-caused, if you prefer ^^ ).

Happy virtualizing to everyone, and don’t forget to always backup: vGhetto is your friend.

root@ctc2416x – Inside the Asus DR900

Some days ago I bought myself a second-hand Asus DR900 (aka eeeReader). It’s an interesting toy: an e-book reader, 9 inches epaper (sipix technology) screen w/ capacitive touchscreen, linux based¹.

AFAIK, it’s not available worldwide yet (the official ftp support page shows firmware files just for italian, german and russian languages), the software is still in (active, hopefully) development (ATTOW, v0.0.394), it’s quite buggy (nothing new, we are in the first release-then fix era), the screen is not as contrasted as an eInk Pearl (the one used in the Kindle 3) but it’s cheap, slim and light. And it’s a manna from heaven if you like to read mangas on the go, especially if  your cellulose-based tankobons scream ‘this house ain’t big enough for both of us’.

I know, I’m divagating.

What I’ve found particularly interesting is that the DR900, while coming with Wi-Fi, has another feature: open ports.

Network Utility port scan results for Asus DR900

Surprisingly enough, the ssh root password is… dr900 -_-‘

root@ctc2416x:~# uname -a
Linux ctc2416x #5 Fri Dec 17 17:02:51 CST 2010 armv5tejl unknown

I mean, it’s nice having sources, hackin’ up a modded firmware, compiling, flashing (or booting from SD, when possible) and so on. But I don’t dislike being able to, directly out of the box, edit the root file system, and deploy cross-compiled files. At least, I wouldn’t, if I were able to develop something useful.

¹The OEM maker is Qisda, product model ‘oyo’, firmware sources are available, people are already investigating on them. People much more skilled than me. 🙂