27 April 2014

HowTo Install a Web Based Logbook on a BeagleBone

The title is misleading: You can install the Logbook on every Linux computer or CubieBoard 3 or what ever you like. I choose the BeagleBoneBlack for it is my communication server which is thanks to +Bob Mottram and his FreedomeBone concept as secure as a server can get. And this is important, when you store your data on a machine, which accessible from the net. So don't forget to follow the concepts I have explained in my FreedomeBone post.

Searching for a Logbook

It was not an easy decision. I started at the Debian site with amateur radio software . But as explained before it is more of a pointer to what is there than a real help: I can not install a *.deb file for I am working on an armhf based computer. But there is another page dedicated to Linux and Hamradio: Logging Software. It took me a while to look through all the software, installed some of them and had at last three programs running.
1. Tucnac - This is a kind of Terminal program which seemed to do everything. But when I started it from another computer via ssh things went wrong. The program - at least in my case wanted to run under root and that is one thing I don't like.
2. XLog - This is a very easy to use program, which imported also my adif-file, but it lacked some features, which I wanted to use and I had some crashes.
3. CQRLog - Here I found everything I needed. I compiled it on the CubieBoard 3 had nearly no problems. I could fulfill all dependencies and it imported also my adif-files.   But when it came to adding new entries - I had to wait. The CubieBoard although running on two kernels was at it's limits and some options e.g. Lookup on QRZ, made he use of this program on this tiny machine a non-option.

And the rest of the programs? Try it and look at the last release date. Some are grown old had are no longer supported. You have to install software from way back and sometimes you will get conflicts in the libraries. It has not been a wonderful journey.

Why did I choose CloudLog as Logbook?

So I stepped back and thought what I really wanted to have. In the last years I used UCXLog. It works like a charme and does everything what it was supposed to do, but it only runs on windows and the programmer is not willing to compile it for Linux and I can not run Wine. Sorry ...

There is one thing which runs stable on all machines during the last 10 or more years: Mysql. So I looked for a database program with python or Php. There were some but nearly all were very old. Normally this would not matter, but if there was a major new release of php or python you will run into trouble. I checked 3 programs but I could not get them running. So I decided to install CloudLog, were I found commits, which were not too old. Beside that somewhere stood, that it used the data-structure of the HRD-Database. So you can be sure, that it is not just something new but well matured over time.

What you need - perhaps.

The main source of information to install the software is found on the accompanying Wiki. When working with web based Software and Php it is normally a joy. You have to edit a config file and you are done. In principle this works also with the CloudLog, but you have to do some adjustments. But in this case there comes another problem, the size. Php is a scripting language, which is fine, for you find the source code on every page and it is not compiled. But CloudLog has about 500 pages and you have to find your way.
My main tools were 
  1. tree - You get some graphical representation of the directory and the files
  2. grep -  e.g. "grep -r 'miles' ." Here I looked for the page were the distance was computed. In normal words: " Show me all lines in this directory and below were you find the word 'miles' in the text.
  3. find - e.g "find -iname *.config" . In normal words: " Show me all files in this directory and below ending with *.config.

What you surly need.

You need LaMp:  (Linux Apache MySQL PHP) If you have not installed it, do it slowly and carefully. 
Another site with good explanations is here

Nothing will go wrong, BUT if you forget the password for your Mysql installation, you are allowed to remove and install it again. Don't accept the proposal to give no password, think hard and remember ;-) And remember: Mysql is working on the localhost. When you want to acces the database directly from the internet, that's another story. Apache will do the handling of Mysql and no one else. 

In our cases only I you have  installed it make a check that the apache2 is running. Another consideration installing apache2 is the place were you can upload your website or Logbook. If you have all the rights inclusive becoming root, consider to place your web offerings into the "normal" directory" e.g. "/var/www/(htdocs) ". When you want to place this under your /home/xxx dir, you can do it, but things will get more complicated. And as said above: Have a look at FreedomeBone. All additional security rules are considered.

Of course you will need the latest package of php and curl.

If you don't want to spend the next month lerning to handle Mysql and the sql-language install MyphpAdmin. Normally you should be able to make a "apt-get install phpmyadmin" .  This is a webtool to help you with all mysql data issues. When this will not work, check were the phpmyadmin software is installed. When it is not in your web-space, set a symbolic link from there to the installation directory.

And of course you have to download from the git-page the source code. Their is an option for a *.zip file which works well.

Finally: HowTo install

As always I will not do it step by step, for the installation process will differ, but I will give you some hints to simplify the process.

  1. Follow the Wiki-Instructions ;-)
  2. Copy the *.zip file to your web space and unzip it
  3. Open phpmyadmin
  4. Create a new database named to your liking e.g. "cloudlog" and remember the name.
  5. You could follow the Wiki-Installation script. 
If it works for you, you can skip the rest. If not, follow the next steps.
  1. Here is another fork: The /logger directory didn't exist. Just use the install directory. In the directory "install/assets" is a file "install.sql", which installs (import into your database) also the default users. I had problems with that.  
If it works for you, you can skip the rest. If not, follow the next steps.
  1. Search for the "sql" directory. Here you find a file "initial_import.sql".
  2. Go back to your phpmyadmin page and select your  database "cloudlog"
  3. There is a menu called "Import", click on it and search for the file "initial_import.sql" and import it. Don't change the proposed options.
  4. When the process is finished you will find a lot of tables for your database, but you are not done.
  5. Search again in the "sql" directory and you will find another directory "tables". Change into that and you will find a file "users.sql".
  6. Go back to your phpmyadmin page and select your database "cloudlog"
  7. There is a menu called "Import", click on it and search for the file "users" and import it. Don't change the proposed options.
  8. I had another problem. One table 'table_hrd_contacts_v01' was not recognized, but you find a workaround here. Write the table name in capital letters. You can do it with myphpadmin.
  9. Now you can try to use the install page "http://www.yourcall.net/cloudlog/install" and see if it works.
  10. I checked the various config.php and index.php pages and made some corrections by hand.
When the CloudLog page appears you are done, so far. I don't understand why my installation was so complicated, for all the necessary scripts were there, but they got kind of disturbed.

I had also trouble using the test user "m0abc": 
  1. It was not installed
  2. I installed it with the protected password with phpmyadmin, but couldn't login.
  3. I installed myself with no password. Was not accepted.
  4. I installed myself with password, but it was not encrypted. Was not accepted.
  5. I made it the easy way: In file 'application/config/config.php" I set
    &config['use_auth'] = false
    went to the website, created a new user,
    logged out;
  6. changed : &config['use_auth'] = true.
And from that moment on (nearly) everything went according to the book. If you want to export your database to '*.adif' don't forget to create in the application folder a directory 'backup'.

What you get:

  • A full blown logging program
  • Access to CloudLog from all over the world.
  • A trusty database
  • Adif import and export
  • Statistics
  • Cluster
  • Radio control
  • QRZ lookup
  • Works fairly well on a BBB and CubieTruck
And you can change everything you want for you have a scripting language with "open text".

Very Well Done +Peter Goodhall !

Stay Tuned!