---
title: Moving from Cloudlog to Wavelog
summary: >
I finally made the hop from Cloudlog to Wavelog and I don't regret it so far.
date: 2024-06-30T22:56:16+0200
# lastmod:
categories:
- amateur-radio
- computerstuff
tags:
- cloudlog
- wavelog
- selfhost
- draft_post
# showBreadcrumbs: true
# showDate: false
# showReadingTime: false
# showWordCount: false
# showPagination: false
# feed_exclude: true
# site_exclude: true
# some help
#
# highlighting with highlights
#
# use table, as inline creates a padding around
# and it pushes the text more to the right side (end of screen)
#
# ~~~html {linenos=table,hl_lines="3-6"}
# ~~~html {linenos=inline,hl_lines="1,3-6"}
#
# TODO more technical explanations maybe on how to finally get it to work and some
# screenshot might be worth adding... maybe...
draft: true
---
## Set up the database
I'm going to use MySQL as the database type and I create a new user and database for it:
~~~mysql
CREATE USER 'wlog'@'localhost' IDENTIFIED BY '${PASSWORD}';
CREATE DATABASE wavelog;
GRANT ALL PRIVILEGES ON wavelog.* TO 'wlog'@'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](https://github.com/wavelog/Wavelog/wiki/Installation#2-download-wavelog-using-git).
For future upgrades I modify the update script and save it as another file just to
not interrupt the update procedure.
~~~patch
--- 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:
~~~console
$ 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](https://github.com/wavelog/WaveLogGate) already but haven't had the
chance to test it out in the field yet.
Also [CloudlogOffline](https://apps.apple.com/gb/app/cloudlogoffline/id1528219213) should be
compatible with Wavelog as well
([also for Android phones](https://play.google.com/store/apps/details?id=de.webappjung.CloudLogOffline&hl=en_US&pli=1)).