自分のGPSトラッカーをLinuxでUloggerを使って作成する方法

トレッキング中にデジタルマップを見ている人の写真

UloggerはLinux用の軽量GPSトラッキングサーバーで、専用のモバイルアプリもあります。この記事では、Ubuntu 24.04サーバーにUloggerをインストールし、Android電話に接続する方法を示します。

目次

  • UloggerでGPSデータを追跡する理由
  • Uloggerの依存関係の取得
  • Uloggerのビルドとインストール
  • Nginxを使用したSSLリバースプロキシの設定
  • 初めてのUloggerの実行

UloggerでGPSデータを追跡する理由

Ulogger GPSトラッカーの最大の売りは、Linuxシステム上で直接ホストできるという点です。これにより、悪意のある第三者がデータを盗み見るリスクなしに、地理位置データを記録できます。

Uloggerのデフォルトインターフェースのスクリーンショット

Uloggerのもう一つの利点は、KMLやGPXなどの標準の地理位置ファイルフォーマットをインポートおよびエクスポートできることです。既存のGPSソリューションを使用していて、データをUloggerに移行したい場合、この機能は非常に便利です。

最後に、Uloggerは無料でオープンソースのソフトウェアです。これは、誰でもプログラムのソースコードにアクセスでき、脆弱性の発見と修正が容易になることを意味します。その結果、UloggerはLinux用の長期的なGPSログサーバーを探している場合の、より堅牢な選択肢になります。

参考情報: GPS技術の仕組みを簡単に理解しましょう。

Uloggerの依存関係の取得

前提条件: この記事は、2GBのRAMを持つUbuntu 24.04 VPSにUloggerをインストールしていると仮定します。また、ドメイン名を現在所有していることも前提とします。

Uloggerのインストールの最初のステップは、Dockerの依存関係を取得することです。そのために、Dockerプロジェクトのリポジトリの署名キーをインポートします:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

お気に入りのテキストエディタを使って、Dockerプロジェクト用の新しいリポジトリファイルを作成します:

sudo nano /etc/apt/sources.list.d/docker.list

新しいリポジトリファイル内に以下の行を貼り付けます:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable

マシンのリポジトリリストを更新し、システム内の現在のすべてのパッケージを更新します:

sudo apt update && sudo apt upgrade

サーバー上で「core」Snapパッケージが動作していることを確認します:

sudo snap install core

電子フロンティア財団からCertbotパッケージをインストールします:

sudo snap install certbot --classic

UloggerをデプロイするためのDocker、Docker Compose、および依存関係をインストールします:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx unzip git

Uloggerのビルドとインストール

ホームディレクトリに新しいフォルダを作成し、そこに入ります:

mkdir ~/ulogger && cd ~/ulogger

開発者のGithubリポジトリからUloggerの最新バージョンをプルします:

git clone https://github.com/bfabiszewski/ulogger-server.git  
cd ./ulogger-server

プログラムの最新の安定ブランチに切り替えます:

git checkout -b v1.2 tags/v1.2

お気に入りのテキストエディタを使ってUloggerのDockerfileを開きます:

nano ./Dockerfile

「DB_ROOT_PASS」と「DB_USER_PASS」を含む行を見つけ、それらの値を2つのランダムな文字列に置き換えます。

Uloggerサーバーのデータベース用の2つのランダムパスワードを強調表示している端末の画像

注意: 自分のランダムなテキストを生成するには、次のコマンドを実行します:cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1

Dockerfileを保存したら、お気に入りのテキストエディタを使って「docker-compose.yml」ファイルを作成します:

nano ./docker-compose.yml

コンポーズファイル内に以下のコードブロックを貼り付けます:

services:  
  ulogger:  
    container_name: ulogger-instance  
    build:  
      context: .  
      dockerfile: Dockerfile  
    ports:  
      - 8080:80

docker-compose.ymlファイルを保存し、次のコマンドを実行してUloggerのDockerコンテナを起動します:

sudo docker compose up -d

システム内の実行中のコンテナを一覧表示してUloggerが適切に動作しているか確認します:

sudo docker ps

実行中のulogger-server Dockerコンテナを強調表示している端末の画像

Nginxを使用したSSLリバースプロキシの設定

この時点で、ポート8080でUloggerサーバーが動作していることになります。ただし、アクセスするには、Nginxを使用して受信接続用のセキュアプロキシを作成する必要があります。

UloggerマシンのIPアドレスを指す「A」レコードをドメインに作成します。

サーバーに戻り、Uloggerインスタンス用のサイト設定ファイルを作成します:

sudo nano /etc/nginx/sites-available/ulogger

新しい設定ファイル内に以下のコードブロックを貼り付けます:

server {  
  
server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;  
  
location / {  
proxy_pass http://127.0.0.1:8080;  
proxy_http_version 1.1;  
proxy_redirect off;  
proxy_set_header Upgrade $http_upgrade;  
proxy_set_header Connection "upgrade";  
proxy_set_header X-Forwarded-Proto https;  
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_set_header Host $host;  
}  
}

「server_name」変数の値をあなたのドメイン名に置き換えます。

Ulogger用のNginxサイト設定ファイルでserver_name変数を強調表示している端末の画像

Nginxのサイト設定ファイルを保存したら、Nginxの「sites-enabled」ディレクトリにシンボリックリンクを作成します:

sudo ln -s /etc/nginx/sites-available/ulogger /etc/nginx/sites-enabled/

マシンでNginxサービスを有効にして開始します:

sudo systemctl enable --now nginx.service

あなたのUbuntuサーバーをEFFに登録します:

sudo certbot register --agree-tos -m [email protected]

「y」と入力し、Enterを押します。

Certbotニュースレター登録のプロンプトを強調表示している端末の画像

EFFからUloggerのドメイン名のために新しいSSL証明書を取得します:

sudo certbot --nginx -d SUBDOMAIN.YOUR-ROOT.DOMAIN

知っておくべきこと: SimpleLoginを使ってメールエイリアスサーバーを作成することで、オンラインアイデンティティを保護する方法を学びましょう。

初めてのUloggerの実行

ウェブブラウザーを使用してあなたのサブドメインにアクセスして、Uloggerインスタンスが正しく動作しているかテストします。

Uloggerのログイン画面を示すスクリーンショット

ユーザー名パスワード の両方のフィールドに「admin」と入力し、Enterを押してログインします。

ページの右上隅でアカウントの名前をクリックし、パスワードを変更 を選択します。

Ulogger内の「パスワードを変更」プロンプトの位置を示すスクリーンショット

旧パスワード テキストボックスの下に「admin」と入力し、インスタンスの新しいパスワードを提供します。

Uloggerサーバーのパスワードプロンプトウィンドウを示すスクリーンショット

送信 をクリックして変更を適用し、Uloggerからログアウトして再度ログインして確認します。

知っておくべきこと: Linux向けの最高の旅行関連ツールを見て、あなたの休暇準備を最適化する方法を学びましょう。

AndroidでのUloggerサーバーとのリンク

GPSトラックをアクティブに記録するには、まずUloggerの専用モバイルアプリを取得する必要があります。現時点で、このプログラムはF-Droidストアからのみ入手できます。

Android用のUlogger GPSクライアントのスクリーンショット

Ulogger Androidアプリを開き、アプリの右上隅にあるギアアイコンをクリックします。

Uloggerのモバイルアプリのギアアイコンを強調表示しているスクリーンショット

位置情報提供者オプションをタップし、ラジオボタンメニューからネットワークとGPSを選択します。

Uloggerの地理位置データソース用の「ネットワークとGPS」オプションを強調表示しているスクリーンショット

ユーザー名オプションを選択し、テキストボックスに「admin」と入力します。

パスワードオプションをタップし、管理アカウントに設定したパスワードを提供します。

サーバーURLオプションを選択し、Uloggerサーバーの基本URL全体を提供します。この場合、私のものは「https://gps.myvpsserver.top」です。

Uloggerバックエンドのアカウントとサーバーの詳細を示すスクリーンショット

サーバーの詳細カテゴリの上にあるライブ同期スイッチを切り替えます。これにより、Android電話が自動的にGPSデータをUloggerバックエンドに送信できるようになります。

モバイルアプリのメイン画面に戻り、新しいトラックボタンをタップします。

Uloggerモバイルアプリの「新しいトラック」オプションを強調表示しているスクリーンショット

トラッキングスイッチを切り替えて、GPSデータをUloggerサーバーに記録します。

Uloggerモバイルアプリの「トラッキング」スイッチを強調表示しているスクリーンショット

UloggerがGPSデータを正しく追跡していることを確認するために、管理アカウントにアクセスします。

UloggerでGPSトラッキングサーバーとクライアントをホストすることは、現在の地理位置ログを追跡する1つの方法に過ぎません。オフラインでも位置情報を追跡できる方法については、Android向けの最高のオフラインGPSアプリをチェックして学びましょう。

画像提供: Antonio Groß via Unsplash と Ulogger Github。すべての変更とスクリーンショットはRamces Redによるものです。