|
|
|
---
|
|
|
|
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 <kbd>ADIF Import / Export</kbd> from the user menu and also select the
|
|
|
|
<kbd>ADIF Export</kbd> 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
|
|
|
|
<kbd>Mark imported QSOs as uploaded to LoTW</kbd> 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.
|