Amahi Edge
Amahi Edge is the developer version of Amahi, with the very latest and greatest code in it. It lives in a branch of the Amahi Git repo, called
amahi-edge
This page is about working notes for the latest in the development tree.
How to Get Amahi Edge Running
This procedure is the way to get Amahi 7 running in development. This has been tested with a clean Fedora 17 minimal install from the original DVD (without updates):
- open a terminal window
- as Root (
su
):- enter the root password (not the one from the first user)
yum groupinstall 'Development Tools'
, or for a shorter install do:yum -y install make git mysql-devel sqlite-devel mysql-server gcc-c++ tar rpm-build
yum -y install ruby ruby-devel libxml2-devel libxslt-devel
systemctl start mysqld.service
gem install bundler
- exit the root user and use a regular user. you will need to reinstall fedora if you skip this step :(
- download the latest tarball
- extract the tarball into your user folder use tar or your file manager-extract function
cd ~/amahi-7
bundle install
(this will take a while and install all the necessary gems)rake db:create
this will ask for the mysql root password with a prompt ">"- if this is a fresh Fedora 17 install, your mysql server probably does not have a password, so just press Enter
- if you set a password for the mysql root user, type it. Note that it will show a warning and echo the password!
- if you are re-running this step and the db is already created, you can run rake db:drop first then create it again
rake db:migrate
(this will get the database up to snuff)rake db:seed
(this will get a basic database setup)- rails s (this will start the rails server)
The development dashboard can be reached with your favorite browser at:
http://localhost:3000
There is an initial user created called admin
with password admin
. Login should work out of the box.
To stop the development server, just hit Ctrl+C
in the terminal where you started the server.
hdactl packages
The next step is getting hdactl running. First let's install the dependencies:
yum -y install bind bind-utils caching-nameserver sudo dhcp samba httpd yum -y install monit perl-Authen-PAM fpaste yum -y install ruby-mysql ruby-libs eruby ruby-augeas yum -y install ruby-irb ruby-racc rubygem-rdoc eruby-libs yum -y install perl-Authen-PAM perl-libwww-perl yum -y install cadaver php php-mysql perl-URI filesystem rubygem-passenger
Here are two binaries, compiled on Fedora 17, for 32bits and 64bits.
Running Tests
A great way to contribute is to write tests. The spec tests are in the spec/
directory. To run them:
rake spec
It will show you one dot per test passing. It will show test fails with F and display the error.
You may need to
yum install rubygem-minitest
to get things to run properly for some reason that we did not root cause yet.
Old info for Amahi 6
First you need to get the latest git repository (see how on the Contribute-page)
After you've got the latest master branch you need to switch to the amahi-edge branch (and tell git to follow it on the remote server):
git checkout amahi-edge
The amahi-edge code uses a different database for it's data so we need to create one, copy the production data in it and migrate it to the new datamodel:
- Go to
/path/to/git/clone/platform/platform
- Execute
./hda-create-db-and-user amahi_devel
- Go to
/path/to/git/clone/platform/platform/html/script
- Execute
./db-duplicate hda_production amahi_devel
- Go to
/path/to/git/clone/platform/platform/html
- Execute
rake db:migrate
Now we have a working amahi-edge branch which can be used to develop features, gadgets, widgets and fix bugs.
To reach the amahi-edge branch you need to go to /path/to/git/clone/platform/platform/html
and execute
./script/server
How to install one Gadget
If you have developed a new gadget or fixed some bugs on an existing one you can install it using:
- Go to
/path/to/git/clone/platform/platform/html
- Execute
rake gadgets:install source=/path/to/the/gadget/source
, e.g.
rake gadgets:install source=../../gadgets/gadget_last_modified_files
When there are errors after installing the gadget you can uninstall it using:
- Go to
/path/to/git/clone/platform/platform/html
- Execute
rake gadgets:uninstall source=/path/to/the/gadget/source
Tips
- Start with virtual machine snapshots. Take a snapshot of your VM at the beginning, in case you have to revert, and take a snapshot as you progress through milestones.
- If you do not have a VM, take a snapshot of your development database. You can use ./script/db-duplicate and ./script/db-restore (use with care!)
- Don't forget, the Amahi forum has a section for virtualization, in case you're looking for some input in that area.