The site was made with boringly simple tools:
- A text editor (Emacs and vim)
- A web server (Apache)
- A DNS Service (FreeDNS)
- A GNU/Linux distribution running on an always on low power computer.
The more interesting aspects:
- The GNU/Linux distribution is Parabola, a 100% free software distribution.
- The computer has an Asrock E350M1, with coreboot.
The machine is silent and consume very few power idle.
- The APU power dissipation is handled trough a huge fan that rotate very slowly. It cannot be heard by a human actively trying to ear it.
- The rootfs is on an SSD: this makes no noise.
- The PSU is fanless.
- The HDDs are and can be powered down when not in use.
The machine consumes about 16W idle. This is pretty low for an ATX machine with:
That low power is the result of:
- A powerful enough CPU: Dual core AMD E-350D APU (soldered)
- 1 active SSD and 3 suspended/off storage HDD
- WiFi (ath9k compatible) as client
- Gigabit Ethernet
- A fan
- An USB card reader
It was measured with a high precison contactless ampermeter. Being contactless, it requires to measure a single wire, so I had to modify a power strip to be able to access isolated single wires. I made sure that it was not possible to touch conductive wires during the measure.
- Agressive power management configuration:
- The hard disks and the SSD are configured for maximum power savings (hdparm -B 1 /dev/sdN). The downside is that, when in use, the HDD heads will wear out faster as they are parked and unparked a lot. smartctl helps monitoring their health.
- The hard disks are powered after the machine is booted.
- WiFi power savings are enabled
- The equivalent of powertop --auto-tune is configured trough udev
- The 80+ PSU: The ATX power supply specifications doesn't require very high efficency at low usage, so a PSU that is 80% efficent is probably responsible for a lot of the power efficency.
- Using 2.5" laptop SSD and HDD that consumes less.
- To have more flexibility I administrate my DNS zone (with bind).
- Have my own zone requires a public static IP address. I use the FDN VPN for that.
- GRUB is in the BIOS/UEFI flash chip,
along with coreboot. This makes booting more robust since it is determined by
the grub configuration, which resides in the BIOS/UEFI flash chip.
Coreboot is configured to automatically power on the computer after a power cut.
This is done with the "nvramtool -w power_on_after_fail=On" command.
The external integrated watchdog is used and configured with nowayout=1 to make the board
reboot when the computer is frozen. The wd_timeout daemon (from the "watchdog" package) is used as watchdog daemon.
- Due to the fact that the SSD is small and that SSD are very fast, checking it doesn't take too much time, so this is done at every boot.
- The SSD and HDDs are in a 2.5" rack to prevent accidental damage. The internal of the case is quite complicated to handle because of how the fan is mounted for maximum cooling efficency. Given the number of times where I need to access (add/remove/replace) the HDDs, the probability of breaking the mainboard would have been too high otherwise.