Files in the top-level directory from the latest check-in
- .fossil-settings
- artworks
- documents
- unyohub
- unyohub_gui_tools
- LICENSE
- README.md
鉄道運用Hub
鉄道運用Hubはオープンソースのユーザー投稿型鉄道運用情報データベースアプリケーションです。
サーバへのインストール
アプリ本体の設置と設定
- nginxのwebサーバを用意します。このwebサーバには、SQLite3モジュールが有効化されたPHP(8.1以降)とPython 3の実行環境が必要です。nginxの設定ファイルは本リポジトリの「documents」フォルダに含まれるサンプルファイルを参考に構成してください。
- 本リポジトリからtrunkブランチの最新版ファイル一式をダウンロードします。
- アプリ名やアプリアイコンをカスタマイズする場合は、以下の「カスタマイズ」の項目に記載の内容に従って、ダウンロードしたファイル群に含まれるフォルダ「unyohub」内の各ファイルを編集してください。
- 同じくunyohubフォルダ内の「robots.txt」とunyohubフォルダの子フォルダである「config」に含まれる「main.ini」を使用環境に合わせて編集し、configフォルダの「rules.txt」には利用者のためのルールとポリシーを記述してください。
- ユーザー情報に使い捨てメールアドレスを登録できないようにする場合は、configフォルダの「wakarana_email_domain_blacklist.conf」に使用禁止対象ドメインを各行1つずつ入力します。
- unyohubフォルダとそこに含まれるファイルを全てサーバにアップロードします。
- GNU/Linuxの場合、鉄道運用Hubのメンテナンスに使用するOSアカウントのhomeフォルダにある「.bash_profile」ファイル(隠しファイル)に以下の内容(パスは使用環境に合わせて読み替えてください)を追記して、unyohubフォルダ内の「commands」フォルダを環境変数PATHに追加します。.bash_profileの編集後はサーバの再起動またはsourceコマンドによる.bash_profileの再読み込みを行ってください。
export PATH=$PATH:/サーバ上でのunyohubフォルダの絶対パス/commands - commandsフォルダ内のファイル「unyohub」にchmodコマンド等で実行権限を追加します。
- 端末エミュレーターで以下のコマンド(ユーザーIDには半角英数字とアンダーバーが使用可能です)を順にサーバ上で実行します。1つ目のコマンドの実行時には管理者ユーザーの初期パスワードが表示されるため、これをメモしておいてください。
unyohub setup-libs 作成する管理者ユーザーのID
unyohub init-moderation-db - 後述の「data」フォルダ、及び、その中の各路線系統のデータフォルダをサーバ上のunyohubフォルダ内にアップロードすれば、アプリが実行可能となります。
各路線系統のデータ作成
- ここからはサーバではなくPC上での作業となります。作業に使用するPCには事前にTkinterが使用可能なPython3の実行環境を用意してください。
- まずは、空のフォルダ「data」を作成し、その中に任意の名前(半角英数字とアンダーバーのみで構成することを推奨します)で路線系統のデータフォルダを作成してください。
- 本リポジトリのdocumentsフォルダに含まれているファイル構成資料とサンプルファイルを参考にして、路線系統のデータフォルダ内に「railroad_info.json」と「diagram_revisions.txt」を作成します。
- 路線系統のデータフォルダ内に新しいフォルダ「icons」を作成し、その路線系統で使用する車両アイコン画像ファイル(拡張子はwebp、png、gifのいずれか)を「icons」フォルダに配置してください。それぞれの画像のファイル名(拡張子以外の部分)はアイコン識別名となるため、半角英数字とハイフンのみで構成することを推奨します。
- documentsフォルダ内の資料を参考にして、編成表をCSV形式のファイルとしてデータフォルダ内に作成します。
- データフォルダ内にダイヤ改正日名(「YYYY-MM-DD」形式)のフォルダを作成し、その中に、documentsフォルダ内の資料に従いながら「diagram_info.json」を作成します。
- 同様に、各路線の時刻表、各ダイヤの運用表をCSV形式でダイヤ改正日名フォルダ内に作成します。
- 「鉄道運用Hub用データ編集ツール」で路線系統のデータフォルダを作業フォルダとして選択し、時刻表と運用表を順にJSONファイルへ変換します。
- 「data」フォルダをサーバ上のunyohubフォルダ内にアップロードし、以下のコマンド(各路線系統ごとに実行する必要があります)を使用して「data」フォルダ内に「railroad.db」を生成してください。
unyohub init-db 路線系統データフォルダ名 - 続いて、以下のコマンド(各路線系統ごとに実行する必要があります)を実行することで、アイコン画像から「train_icons.json」が生成されます。
unyohub embed-icons 路線系統データフォルダ名 - 同様に、以下のコマンド(各路線系統ごとに実行する必要があります)で編成表の変換とデータベース書き込みを実行してください。
unyohub conv-formations 路線系統データフォルダ名 - chmodコマンドを使用するなどして、サーバ上の「data」フォルダ及びその中の各ファイルのアクセス権を「777」(所有グループ以外のユーザーも読み・書き・実行が可能)に設定します。(ファイルの所有者をPHPの実行ユーザーに変更する操作で代替することも可能です)
- 以下のコマンド(それぞれの路線系統で各ダイヤごとに実行する必要があります)を実行して、JSON化された運用表を全てrailroad.dbにインポートします。
unyohub update-operations 路線系統データフォルダ名 ダイヤ改正日名 ダイヤ識別名 - ここでwebブラウザからアプリにログインして、管理画面の「路線系統の追加・削除」から路線系統を有効化してください。
- 最後に、管理画面の「路線系統グループの編集」で路線系統を任意のグループに追加すると、路線系統が使用可能となります。
バージョンアップ
アプリ本体のバージョンアップは、サーバ上の各ファイル(フォルダ「config」「data」「libs_data」内のファイルを除く)を新しいバージョンのものに手動で置き換えることにより行います。
データベーステーブルや設定ファイルの仕様に変更があったバージョンでは、別途移行操作が必要となります。
また、アプリ本体をバージョンアップした際は、同時に「鉄道運用Hub用データ編集ツール」も最新バージョンに置き換えることが推奨されます。
メンテナンス
- エンドユーザーから投稿された運用情報は全てrailroad.dbに蓄積されます。railroad.dbは定期的にバックアップしてください。
- 車両アイコン画像や編成表、運用表を管理画面からのファイルアップロード以外の方法で更新した場合は、その都度前述のunyohubコマンドによる更新反映操作が必要です。
カスタマイズ
鉄道運用Hubのアプリ名やアイコンは以下のファイルを編集することで変更可能です。
- manifest.json の変数値 name 及び short_name
- favicon.ico (同名のアイコンファイルに差し替え)
- apple-touch-icon.webp、maskable_icon.webp、splash_screen_image.webp (それぞれ同名のWebPファイルに差し替え)
このリポジトリについて
2pd.jpドメインのFossilリポジトリ(https://fossil.2pd.jp/unyohub/)以外は全てミラーです。リポジトリのクローンを行う場合はFossilリポジトリのご利用を推奨します。
また、このソフトウェアについてのご質問や不具合の報告はMidari Createへご連絡ください。