Skip to main content

Moving from Cloudlog to Wavelog

·650 words·4 mins

Set up the database #

I’m going to use MySQL as the database type and I create a new user and database for it:

CREATE DATABASE wavelog;
CREATE USER 'wavelog'@'localhost' IDENTIFIED BY '${PASSWORD}';
GRANT ALL PRIVILEGES ON wavelog.* TO 'wavelog'@'localhost';
FLUSH PRIVILEGES;

Get the ADIF files from Cloudlog #

Choose ADIF Import / Export from the user menu and also select the ADIF Export tab.

Choose the callsign and download the ADIF file. We will import these later in our Wavelog installation.

Install Wavelog #

Clone the git repository to your webroot and adjust file permissions as stated in the wiki.

For future upgrades I modify the update script and save it as another file just to not interrupt the update procedure.

--- update_wavelog.sh	2024-06-23 15:08:15.138250067 +0200
+++ update2.sh	2024-06-23 15:13:02.786807949 +0200
@@ -8,7 +8,7 @@
 # appropriately set for your system!

 # The user and group that own the WAVELOG_SUBDIR directories. Passed to 'chown' as-is.
-DIR_OWNERSHIP="root:www-data"
+DIR_OWNERSHIP="http:http"
 # The list of directories that need to have ownership restored after a git pull
 declare -a WAVELOG_SUBDIRS=("application/config" "assets" "backup" "updates" "uploads" "images/eqsl_card_images" "userdata")
 # The name of the Git remote to fetch/pull from

So my file permissions look like this:

$ ls -la                                                                                                                                   .  master d846bc
insgesamt 88
drwxr-xr-x 1 root http   490 30. Jun 20:00 ./
drwxr-xr-x 1 root root    92 25. Jun 05:49 ../
drwxr-xr-x 1 root http   220 19. Mai 16:17 application/
drwxr-xr-x 1 http http   156 23. Jun 15:08 assets/
drwxr-xr-x 1 http http   162 23. Jun 20:20 backup/
drwxr-xr-x 1 root http   176 23. Jun 15:13 .git/
drwxr-xr-x 1 root http    46 19. Mai 16:17 .github/
drwxr-xr-x 1 root http   268 19. Mai 16:17 images/
drwxr-xr-x 1 root http    58 19. Mai 16:17 install/
drwxr-xr-x 1 root http    58 19. Mai 16:17 src/
drwxr-xr-x 1 root http   120 19. Mai 16:17 system/
drwxr-xr-x 1 http http   140 23. Jun 20:19 updates/
drwxr-xr-x 1 http http    20 23. Jun 20:57 uploads/
drwxr-xr-x 1 http http    12 23. Jun 15:13 userdata/
-rw-r--r-- 1 root http  1851 23. Jun 15:08 Dockerfile
-rw-r--r-- 1 root http    24 19. Mai 16:17 .dockerignore
-rw-r--r-- 1 root http   670 19. Mai 16:17 .editorconfig
-rw-r--r-- 1 root http 15406 19. Mai 16:17 favicon.ico
-rw-r--r-- 1 root http   404 19. Mai 16:17 .gitignore
-rw-r--r-- 1 root root   499 23. Jun 15:14 .htaccess
-rw-r--r-- 1 root http   499 23. Jun 15:08 htaccess.sample
-rw-r--r-- 1 root http 11041 19. Mai 16:17 index.php
-rw-r--r-- 1 root http  1122 19. Mai 16:17 LICENSE
-rw-r--r-- 1 root http 12009 19. Mai 16:17 manifest.json
-rw-r--r-- 1 root http  2507 19. Mai 16:17 README.md
-rw-r--r-- 1 root http    86 19. Mai 16:17 robots.txt
-rw-r--r-- 1 root http   247 19. Mai 16:17 SECURITY.md
-rwxr-xr-x 1 root http  2413 23. Jun 15:13 update2.sh*
-rw-r--r-- 1 root http  2417 23. Jun 15:08 update_wavelog.sh

Visit the configured website and go through the installation process by following the instructions. You may have to edit /etc/php/php.ini (or similar) to allow more memory to be used by the PHP processes and so on…

Station setup #

Now create the stations and locations that you want to use (usually the same as in the Cloudlog instance) and start importing the previously downloaded ADIF files.

As I have already uploaded my older logs to LOTW I checked Mark imported QSOs as uploaded to LoTW when I imported my logs.

Third party tools #

I do like WavelogGate already but haven’t had the chance to test it out in the field yet.

I can successfully see CloudlogOffline connecting to my webserver, but the test button never turns green – I also can’t upload logs from within the app so I guess the compatibility is broken there.

That will make me move back to my favourite iOS app for logging: RUMlog2Go for iPhone.

To upload the logs just export as adif, self-email and import. It’s not the “syncing” way but it is still acceptable in my opinion.