---
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-07-28T07:55:22+0200
# lastmod:
categories:
- amateur-radio
- computerstuff
tags:
- cloudlog
- wavelog
- selfhost
---
## 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 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](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.
I can successfully see [CloudlogOffline](https://apps.apple.com/gb/app/cloudlogoffline/id1528219213)
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][1].
[1]: https://dl2rum.de/rumsoft/RUMlog2Go.html
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.