@numa08 猫耳帽子の女の子

明日目が覚めたら俺達の業界が夢のような世界になっているとイイナ。

Synology NASキットを使用してCloudlogをデプロイする

家族写真のバックアップ用にNASを買いました。

このNASに付属するユーティリティでdocker-composeによるアプリケーションの実行が可能と分かったので、以前から試してみたいと思っていたCloudlogをLAN内で実行するべく環境を整えました。

www.magicbug.co.uk

Cloudlogとは

アマチュア無線のログ管理ソフトCloudlogはOSSで開発されています。PHPMySQLで構築されているWebアプリケーションなので自分でホスティングすることで自分や自分のチーム向けにログ管理スペースを提供できます。

WebアプリケーションなのでOSや環境を問わず利用可能ですし、ホスティングする環境次第ではインターネット上のどこからでもアクセス可能です。

今回、このサービスをNAS上で実行してLAN内からアクセス可能な状態としました。

Dockerを使おう

Cloudlogのインストールガイドを見るとApachePHPMySQLの準備が必要なようです。ただNASに様々なソフトをインストールして環境を作ると今後遊ぶときに支障が出そうです。

Cloudlogのリポジトリを見ると、Dockerfileやdocker-compose.ymlが最初から用意されていてDockerよるコンテナの実行を想定しているようです。

github.com

ただし開発環境用という位置づけのようでサービスとして実行するためにはいくつか追加のステップが必要でした。

index.php

実行時に開発環境かどうかでデバッグ用メッセージの表示をしています。出ていても支障は無いですが、邪魔なので消します。

        #define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
-       define('ENVIRONMENT', 'development');
+       #define('ENVIRONMENT', 'development');
+       define('ENVIRONMENT', 'production');

docker-compose.yml

デフォルトで80番のポートを公開していますがNASで実行させる場合ポートが競合するため変更します。

     ports:
-      - "80:80"
+      - "8080:80"

.env

Dockerで実行する際、envファイルを用意します。envファイル内のホスト名がアプリケーション内部で使われるため、適切に設定が必要です。sampleファイルなどを参考にしつつ以下のようにしました。

MYSQL_ROOT_PASSWORD=*****
MYSQL_DATABASE=cloudlog
MYSQL_USER=cloudlog
MYSQL_PASSWORD=*****
MYSQL_HOST=db
MYSQL_PORT=3306
BASE_LOCATOR=PM95GO
WEBSITE_URL=http://192.168.1.156:8080 # 実行するホスト名
DIRECTORY=/var/www/html

セットアップ

Dockerで起動した場合、/installにアクセスしてセットアップする手順は不要です。デフォルトでユーザー名m0abc、パスワードdemoのアカウントがセットアップされているのでログインしてメインで使う管理用アカウントを作成します。その後、管理用アカウントでログインしてからm0abcを削除します。

Station LocationsとStation Logbooksを作成してログを記録できるようにします。

Log4OM2と連携

私がWindowsでメインで使っているログ管理ソフトのLog4OM2は2024年春のアップデートでCloudlogと連携可能となりました。Log4OM2上でログを保存すると自動的にCloudlogにログを送信します。

Cloudlogの管理者アカウントでAPI KeysメニューからAPI Keyを発行してLog4OM2上で以下のように設定します。

Log4OM2の設定

  • Cloudlog instance address: <cloudlogのホスト>/index.php/api/qso
  • Cloudlog API key: 払い出したAPI key
  • Cloudlog Station ID: Log4OM2で記録したログを転送したい先のStation ID

Cloudlogを使った感想

Web上で動作するのでマルチプラットフォームによるアクセスができる点が良いです。私が使うPCは時と場合によってWindowsだったりMacだったり様々なのでログがプラットフォームに依存していると管理が面倒くさいなあと思っていました。とりあえずCloudlogに記録しておいて必要に応じてADIFをエクスポート、ローカルのソフトにインポートするなど管理が可能です。当面はLog4OM2での管理を主とし、じわじわとCloudlogに移動したいなあと思っています。

また、eQSLの連携も良いです。Station LocationsとeQSLのプロフィールを1対1で紐づけることで受信したカードを一括でダウンロードできます。eQSLのWebページの場合、いちいちプロフィールごとにログインが必須で面倒でした。

一方、PHP&MySQLという構成に若干のレガシーさを覚えましたがその辺りはアマチュア無線界隈だなぁという感じです。UIのデザインなんかは思った以上に今風でしたが。