|
| 1 | +# Installation |
| 2 | + |
| 3 | +## 必要環境 |
| 4 | + |
| 5 | +| 項目 | 要件 | |
| 6 | +|------|------| |
| 7 | +| OS | AlmaLinux 9 / 10(他の systemd Linux でも動作可能) | |
| 8 | +| Go | 1.23 以上(ビルド時のみ) | |
| 9 | +| git | リポジトリのクローンに必要 | |
| 10 | +| 権限 | インストールスクリプトは root 必要 | |
| 11 | + |
| 12 | +### 依存パッケージのインストール(AlmaLinux) |
| 13 | + |
| 14 | +```bash |
| 15 | +# git |
| 16 | +sudo dnf install -y git |
| 17 | + |
| 18 | +# Go 1.23+(dnf のバージョンが古い場合は公式バイナリを使用) |
| 19 | +sudo dnf install -y golang |
| 20 | +go version # 1.23 未満の場合は以下の手順で公式バイナリを導入 |
| 21 | + |
| 22 | +# Go 公式バイナリ(dnf で 1.23+ が入らない場合) |
| 23 | +curl -LO https://go.dev/dl/go1.23.6.linux-amd64.tar.gz |
| 24 | +sudo tar -C /usr/local -xzf go1.23.6.linux-amd64.tar.gz |
| 25 | +echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/go.sh |
| 26 | +source /etc/profile.d/go.sh |
| 27 | +go version |
| 28 | +``` |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## ビルド |
| 33 | + |
| 34 | +```bash |
| 35 | +git clone https://github.com/Liplus-Project/dipper_ai.git |
| 36 | +cd dipper_ai |
| 37 | +go build -o dipper_ai ./cmd/dipper_ai |
| 38 | +``` |
| 39 | + |
| 40 | +クロスコンパイル例(Linux AMD64 向け): |
| 41 | + |
| 42 | +```bash |
| 43 | +GOOS=linux GOARCH=amd64 go build -o dipper_ai ./cmd/dipper_ai |
| 44 | +``` |
| 45 | + |
| 46 | +--- |
| 47 | + |
| 48 | +## インストール |
| 49 | + |
| 50 | +`scripts/install.sh` を root で実行します。 |
| 51 | +以下のファイルが配置され、systemd タイマーが有効化されます。 |
| 52 | + |
| 53 | +```bash |
| 54 | +sudo bash scripts/install.sh |
| 55 | +``` |
| 56 | + |
| 57 | +### 配置先 |
| 58 | + |
| 59 | +| ファイル | 配置先 | |
| 60 | +|----------|--------| |
| 61 | +| `dipper_ai` バイナリ | `/usr/bin/dipper_ai` | |
| 62 | +| 設定サンプル | `/etc/dipper_ai/user.conf.example` | |
| 63 | +| systemd サービス | `/etc/systemd/system/dipper_ai.service` | |
| 64 | +| systemd タイマー | `/etc/systemd/system/dipper_ai.timer` | |
| 65 | +| 状態ファイル | `/etc/dipper_ai/state/`(実行時に自動生成) | |
| 66 | + |
| 67 | +### インストール後の手順 |
| 68 | + |
| 69 | +```bash |
| 70 | +# 設定ファイルを作成して編集 |
| 71 | +sudo cp /etc/dipper_ai/user.conf.example /etc/dipper_ai/user.conf |
| 72 | +sudo vi /etc/dipper_ai/user.conf |
| 73 | + |
| 74 | +# タイマーの状態確認 |
| 75 | +systemctl status dipper_ai.timer |
| 76 | + |
| 77 | +# 手動で update を実行してテスト |
| 78 | +sudo dipper_ai update |
| 79 | +``` |
| 80 | + |
| 81 | +--- |
| 82 | + |
| 83 | +## アップデート |
| 84 | + |
| 85 | +新しいバージョンが出たときはリポジトリのディレクトリで以下を実行するだけです。 |
| 86 | + |
| 87 | +```bash |
| 88 | +cd dipper_ai |
| 89 | +git pull |
| 90 | +go build -o dipper_ai ./cmd/dipper_ai |
| 91 | +sudo bash scripts/install.sh |
| 92 | +``` |
| 93 | + |
| 94 | +4 ステップの意味: |
| 95 | + |
| 96 | +| ステップ | 内容 | |
| 97 | +|----------|------| |
| 98 | +| `git pull` | 最新のソースコードを取得 | |
| 99 | +| `go build ...` | バイナリを再ビルド | |
| 100 | +| `sudo bash scripts/install.sh` | バイナリと systemd unit を上書きインストール・タイマー再起動 | |
| 101 | + |
| 102 | +> **Note:** 設定ファイル (`/etc/dipper_ai/user.conf`) はインストールスクリプトで上書きされません。設定は引き継がれます。 |
| 103 | +
|
| 104 | +--- |
| 105 | + |
| 106 | +## アンインストール |
| 107 | + |
| 108 | +```bash |
| 109 | +sudo bash scripts/uninstall.sh |
| 110 | +``` |
| 111 | + |
| 112 | +サービス・タイマーの停止と無効化、バイナリの削除を行います。 |
| 113 | +設定ファイル (`/etc/dipper_ai/`) は保持されます。手動で削除してください。 |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +## 設定ファイルのパス |
| 118 | + |
| 119 | +デフォルトは `/etc/dipper_ai/user.conf` ですが、環境変数 `DIPPER_AI_CONFIG` で上書きできます。 |
| 120 | + |
| 121 | +```bash |
| 122 | +DIPPER_AI_CONFIG=/path/to/custom.conf dipper_ai update |
| 123 | +``` |
| 124 | + |
| 125 | +--- |
| 126 | + |
| 127 | +## テスト実行 |
| 128 | + |
| 129 | +```bash |
| 130 | +go test ./... |
| 131 | +``` |
| 132 | + |
| 133 | +全パッケージのユニットテスト・受け入れテストが実行されます(外部 API 接続不要)。 |
0 commit comments