The Technology Inside the Amahi Home Server
Simplicity of use does not mean compromise in power and features for Amahi users.
How it Works
You only need two things to get you going: a Linux DVD and an internet-connected PC to install it to.
Some people like to install it on an old PC, some others get the latest hardware put a boatload of disk in it. Some people use it headless (no video or keyboard/mouse), in the basement or the garage, and some people also use the system as a desktop. The choice is yours!
Linux Foundation
Basing the concept of an Home Digital Assistant (HDA) on GNU/Linux was a no-brainer. After all, Linux has become one of the dominant operating systems in the server space, renowned for its stability, openness, resilience, richness of applications and unbeatable hardware support. If you are going to have something running your network 24x7, you want stability and reliability.
Fedora Based
We decided to further base the software on a longtime friend:
RedHat's Fedora™ Linux distribution.
Fedora is one of the leading distributions of the world, with reputation for being up to date, for a quick release cycle, a great set of features and wide hardware support.
We really feel like stand on the shoulders of giants.
A request we often get is to base Amahi on other distros, notably Ubuntu. We strive to support Ubuntu long term as well. Community participation will drive how this will play out!
Get the Code
We are taking the approach of adding a repo to the GNU/Linux install process to installing Amahi. So, there is no conventional software "download" to install "by hand."
However, if you need to get the code by hand, it's in our repos. NOTE: We do not link to them directly on purpose, because web spiders unnecessarily crawl them, sucking the bandwidth which otherwise we'd like to be available faster installs.
The code is in the directories i386, x86_64 and noarch
of the repo. The current repo can be accessed at f10.amahi.org.
The code is in the directories i386, x86_64 and noarch
The source code is in the Amahi Git repo. Bugs belong in the Amahi Tracker.
Architecture
The basic architecture of the Amahi Home Server is simple:
- A solid base of GNU/Linux OS
- Amahi services to manage your network, providing an API for apps and services running in your HDA
- Three types of apps:
- Linux Apps
- "HDA'ized" Apps, and
- Native Amahi Apps
A: Linux Base Services
Anything related to the hardware and basic OS services, is part of the Linux base OS. For instance, if you want to have RAID or use your HDA as a desktop and need some graphics hardware drivers, firewall settings, Bluetooth drivers, networking, adding or deleting users, managing SAMBA users, etc., that is something that you can do with the base Linux services.
B: Amahi Services
Some basic services in your network (DHCP, caching DNS) are managed by Amahi.
C.1. Linux Apps
Our foundation is Linux. If you are a power user and you are comfortable under the hood with Linux, you can install any apps you want, like an IMAP daemon, a MythTV back-end of front-end, web apps, etc. We hope to make installing Linux apps easier over time through porting them into HDA'ized apps.
C.2. HDA'ized Apps
We have a few apps that have been HDA'ized already, like the calendar reader, our integrated wiki, and a bittorrent downloader. These apps are regular Linux web-based apps, however, we have tweaked them to work as seamlessly as possible within the Amahi environment and to install them as Amahi apps from the My Apps panel.
C.3. Native Amahi Apps
This is where the action is! We have designed several apps to showcase what can be done with Amahi native apps. Native Amahi apps can be written as Ruby on Rails apps, PSP, Python, Perl, or anything else.
The demo apps that we currently feature are developed in Ruby on Rails, using AJAX technologies. Each one is designed to highlight one aspect of the Amahi platform.
Stay tuned for more on Amahi Apps as we expand our developer program ... however, if you like to hack RoR, get started today helping us shape the API today. You will be surprised by what we have already!