Linux Privacy Projects Technology

Building a Digital Haven (home server)

As part of my “Prism break” initiative, I’ve started working on a personal (family) server — a safe haven in the wild digital world.

Target and usage

  • near-silent box you turn on and forget about
  • low energy consumption
  • large disk space
  • above-average data storage reliability, probably via RAID 1
  • web server (for email client, “cloud” storage interface, …, Friendica, etc.)
  • IM server (Jabber)


Ideal setup: specialized low-energy no-fans computer.
Problem: hard to come by the appropriate parts, expensive, weak hardware.

My current plan: choose from what is available on the regular PC market, focus on power consumption, size and minimize unnecessary components / features.
Reason: consumer electronics are pretty cheap, standardized, easy to obtain. The bill for electricity will not outweigh the cost of a more energy efficient hardware.

— W-I-P —


Must have:

  • several SATA ports — for several disks
  • RAID 1 support
  • basic integrated graphics card (just for the setup phase, will not be actually used later on)

Should have:

  • USB 3.0 — for external disks
  • eSATA — for external disks

Selected type: AMD, FM2 socket. Supports the latest Trinity processors. These should have some usable power-saving capabilities.

Example: ASUS F2A85-M LE


Should have:

  • power-saving options — large portions of time it’s not going to be used
  • multiple cores — will have to serve multiple requests at a time

Selected type: based on the selected motherboard.

Example: AMD Athlon X4 740


Size “table”:

  • 2 GB — bare minimum
  • 4 GB — sufficient for most work
  • 8 GB — sufficient for most work with a nice reserve and smooth operation
  • 16 GB — virtualization becomes a usable possibility
  • 32 GB — … Hello? Anyone there? … *sound of echo*

Basic memory sticks seem to be the best — no fancy coolers needed, that can only mean energy wasted.

Example: Kingston 8GB 1333MHz

Power supply

Should have:

  • less than 400 W — should be a low-energy device, so no need for anything stronger
  • large fan (if any) — large means less RPMs means less noise
  • surge-protection etc.

Example: Seasonic G Series 360W

Hard drives


  • 1 system disk
  • 2 data disks in RAID 1

Data disks should be separate from the OS disk. It would be best if the data disks could be simply unplugged and used freely on their own if the server broke down.

Energy efficiency is a question here: shared OS+Data disk would be a one-disk-less solution, meaning less devices to power. On the other hand, if the data is not needed, the disks may be powered down and only one device would then run.

Should have:

  • generally
    • low energy consumption (lower RPMs, etc.)
  • system disk
    • 32+ GB of space
    • fast
    • used for the OS and installed applications
  • data disk
    • 1+ TB of space
    • mostly sequential access to larger files, not many changes, mostly read operations


System disk — 32 GB SSD?

Data disk — WD Green WD10EZRX 3.5″ 1TB

Other things

Electricity usage meter might come in handy. Example: BaseTech Cost Control 3000


Grand total: 11 500 CZK = 444 EUR = 584 USD

…it is arguable whether it is worth it. Time for a web-hosting solution!


Friendica Ideas Open source Privacy Projects Raspberry Pi Technology Uncategorized

Prism break

If you haven’t heard about the Prism scandal, you should read a bit about it. But basically, numerous large companies based in the US have allowed private information of their users to be accessible to the government (the NSA, to be more exact). Maybe even yours, if you’ve ever interacted with companies like Google, Apple, Facebook and others.

As mentioned on the Prism-Break website, there are lots of alternatives to the services and software most of us currently use. And surprisingly, it should’t be that hard to switch to a more secure and privacy-protecting solution to your daily internet-related needs.

Here is my personal ‘Prism break’ roadmap, or a security todo list:
Note: work in progress, subject to change.


Biggest challenge as far as I can see. The concept itself is sadly not really that secure.

Must have:

  • highly reliable (so no self-hosted solutions are acceptable)
  • web client for easy accessibility
  • address based on own domain name (and email address), e.g. me at dejvino dot com
  • at least country-local hosting (i.e. here in Czech Republic for me)

Should have:

  • contacts
  • calendar

Could have:

  • email content encryption. Currently it seems pretty impractical, but who knows. Maybe there is a usable solution?

Some cheap web-hosting with emails?


Similar to email. Doesn’t require 100% availability.


  • own secure Jabber/XMPP server? Could be self-hosted / VPS. Expensive, hard to maintain.
  • rented server? server-side history is hard to come by. Only Google has got it all…

Should have:

  • encrypted transmission
  • secured history saved on server side

Web hosting

I’m currently using external paid services. I might switch to a more custom solution, i.e. home server.

Raspberry Pi anyone? … UPDATE: nope, it could work for really simple services, but running anything more sophisticated results in long response times. And since I’ve got big plans, it is not the right solution.

Cloud storage

Dropbox has been a great service — lots of free space, great tools on Windows as well as on Android.
I’m in the process of switching to a more controlled ownCloud server solution.

Must have:

  • web interface
  • handle large files
  • access restrictions
  • per-user space limits (quotas)
  • PC client (Windows)

Should have:

  • online music streamer
  • public file-linking capability
  • applications / plugins / extensions

Could have:

  • Android client
  • synchronization / backup support

Social media

Friendica is a project I’ve been using a bit and am planing to use a bit more. But the other “standard” ones still seem quite usable, to some extent.

Should have:

  • RSS-feed-reader-like view
  • responsive design / client for Android
  • integration of different social networks

TODO: move Friendica to a more powerful server. It is quite CPU-demanding.

Web browsing

Type Current New Status
Browser Google Chrome Firefox DONE
Passwords KeePass KeePass + KeeFox DONE
Plugins DoNotTrackMe, HTTPS Everywhere, … see as a handy guide. DONE


Awesome Music Technology

Floppy drive music

I knew this could be done! … Game of Thrones’ main theme played by 6 floppy drives. Enjoy.


Awesome Programming Technology Web development

Peer to peer in JavaScript

I just came across PeerJS – Peer-to-peer JavaScript library. Great to see this kind of API available, hope  we will soon see some real-world applications.


Awesome Programming Technology

Project idea – Fixing the ISS

There is an interesting project for your next free weekend – fixing the ISS by inventing a solar panel positioning algorithm. Sounds fun!

For more information:


Open source PicoPosts Programming Technology

Inferno vs. Java

An interesting read back from the year 1996 about Inferno vs. Java –

Infernos with its programming language (Limbo) seemed like such an awesome project. Why did it not take off and why do we use Java instead? I guess some concepts just come too soon, before it is their time to shine…


Raspberry Pi Technology

Plan 9 on Raspberry Pi – done

Finally got it working. All it needed was a 2+ GB SD card and not only 1 GB, which resulted in a restart-loop with error messages not far from “Something is broken! Panic!”.
Next on my agenda – hook up all of my 5 RPis and form a “supercomputer”!


Also interesting:

To get you started:

And by the way – the user experience is ground-breaking and paradigm-shifting. The scrolling wheel works in an opposite direction! (+ some other mind blowing things)


PicoPosts Raspberry Pi Technology Uncategorized

Raspberry Pi case

It is finally here! My new Raspberry Pi case.

You can buy it here –


Linux Open source PicoPosts Raspberry Pi Technology Uncategorized

Distributed Pi

Plan 9 – distributed operating system, now ported to Raspberry Pi.

…newly on my ToDo list.


Linux Open source Raspberry Pi Technology

Raspberry Pi – sound HOW-TO

Here are a few pointers on how to make the sound work on Raspberry Pi. I’ve gathered these bits and pieces along the way of using this tiny computer.

First of all – Arch Linux for ARM (i.e. alarm) is the best distro I’ve used on RasPi so far. Lightweight, starts in just a few seconds, has a lots of packages and you can install it just the way you want. And this is also the distro for which I am writing this short How-To.

How to add the sound module

To make the system see the integrated sound card you need to load the appropriate kernel module. Like so:

sudo modprobe snd_bcm2835

To check whether it is loaded, just check the output of lsmod. The command written above has to be executed every time the system starts. To make it “stick”, add the module to the list of automatically loaded modules. That is create a new file  /etc/modules-load.d/sound.conf containing just a single line:


That’s it. The sound module should now load every time you start your RasPi.

How to install Alsa

Most of the programs will be able to output sound using Alsa. To install it, issue this command:

sudo pacman -S alsa-utils alsa-plugins alsa-lib alsa-firmware

Now you can run speaker-test and it should produce a nice white noise on your speakers.

How to enable analog sound

If you want to select which sound output should be used (HDMI or analog 3.5mm jack), the command to use for Alsa and analog output is:

sudo amixer cset numid=3 1

Or substitute the last “1” for “2” if you want HDMI.

How to make VLC or mplayer work with Alsa

If you are getting messages like this:

alsa audio output error: cannot commit hardware parameters: Invalid argument
jack audio output error: failed to connect to JACK server
main audio output error: no suitable audio output module

All you have to do is fix the sound card configuration via creating a simple *.conf file: /etc/asound.conf with the following content:

pcm.!default {
   type hw
   card 0
ctl.!default {
   type hw
   card 0

For more info, take a look at this: