systemd での運用
「ターミナルを閉じ、マシンを再起動しても、他の人が自分の AID を解決できる」ようにしたい場合は、a2ald をサービスとして常駐させます。Linux では三つの方法があり、環境に合うものを一つ選べば十分です。
| 方法 | 向いている環境 | root が必要か |
|---|---|---|
| deb / rpm パッケージ | サーバー、Raspberry Pi。コマンド1つで完了 | 必要 |
| システム単位の systemd | 独自のパスやユーザーを使う場合 | 必要 |
| ユーザー単位の systemd | 個人のワークステーション、root 権限がない場合 | 不要 |
方法1:パッケージでの導入
Section titled “方法1:パッケージでの導入”ディストリビューションのパッケージはバイナリを提供するだけでなく、ユーザーとディレクトリの作成、systemd unit の設置、サービスの起動まで行います。
# Debian / Ubuntusudo dpkg -i a2al_<バージョン>_amd64.deb
# CentOS / RHEL / Fedorasudo rpm -i a2al-<バージョン>-1.x86_64.rpmARM64(Raspberry Pi、Graviton など)では amd64 を arm64(deb)または aarch64(rpm)に置き換えます。パッケージは GitHub Releases から取得します。
導入後のパス:
| 内容 | パス |
|---|---|
| 設定 | /opt/a2al/data/config.toml(初回起動時に生成) |
| データと鍵 | /opt/a2al/data/ |
| ファイルのサンドボックス | /opt/a2al/files/ |
| バイナリ | /opt/a2al/bin/(/usr/local/bin/ にシンボリックリンク) |
方法2:手動配置のバイナリ + システム単位の systemd
Section titled “方法2:手動配置のバイナリ + システム単位の systemd”ディストリビューションのパッケージが使えない場合や、独自のパスを使いたい場合に選びます。
sudo mkdir -p /opt/a2al/binsudo cp a2ald a2al /opt/a2al/bin/sudo chmod +x /opt/a2al/bin/a2ald /opt/a2al/bin/a2alsudo ln -sf /opt/a2al/bin/a2ald /usr/local/bin/a2aldsudo ln -sf /opt/a2al/bin/a2al /usr/local/bin/a2al
sudo useradd -r -s /bin/false -M -d /opt/a2al a2alsudo mkdir -p /opt/a2al/data /opt/a2al/filessudo chown -R a2al:a2al /opt/a2al/data /opt/a2al/filesunit ファイル /etc/systemd/system/a2ald.service を書きます。
[Unit]Description=A2AL DaemonDocumentation=https://a2al.orgAfter=network-online.targetWants=network-online.target
[Service]User=a2alGroup=a2alExecStart=/opt/a2al/bin/a2ald -data-dir /opt/a2al/dataRestart=on-failureRestartSec=5TimeoutStopSec=10
# HardeningNoNewPrivileges=truePrivateTmp=trueProtectSystem=strictReadWritePaths=/opt/a2al/data /opt/a2al/files
[Install]WantedBy=multi-user.targetsudo systemctl daemon-reloadsudo systemctl enable --now a2ald方法3:ユーザー単位の systemd
Section titled “方法3:ユーザー単位の systemd”個人のワークステーションでは root は不要で、ログイン後に自動で起動します。データディレクトリは既定の ~/.config/a2al/ です。
mkdir -p ~/.config/systemd/usercat > ~/.config/systemd/user/a2ald.service <<'EOF'[Unit]Description=A2AL DaemonAfter=network.target
[Service]ExecStart=/usr/local/bin/a2aldRestart=on-failureRestartSec=5
[Install]WantedBy=default.targetEOF
systemctl --user daemon-reloadsystemctl --user enable --now a2aldExecStart は which a2ald が示す実際のパスに合わせてください。ログアウト後も動かし続けるには lingering を有効にします。
loginctl enable-linger $USERファイアウォール
Section titled “ファイアウォール”データ面のポートは開放が必要です(UDP が QUIC の直通接続とアドレス照会、TCP が ICE シグナリングを担います)。
# UFW(Ubuntu / Debian)sudo ufw allow 4121/udpsudo ufw allow 4121/tcp
# firewalld(CentOS / RHEL / Fedora)sudo firewall-cmd --permanent --add-port=4121/udpsudo firewall-cmd --permanent --add-port=4121/tcpsudo firewall-cmd --reload管理ポート 2121 は本機のみの待ち受けを保ち、外部に開放しないでください。
動作中のサービスを横で編集しないでください。停止し、編集し、起動します。
# システム単位sudo systemctl stop a2aldsudo -u a2al nano /opt/a2al/data/config.tomlsudo systemctl start a2ald
# ユーザー単位systemctl --user stop a2aldnano ~/.config/a2al/config.tomlsystemctl --user start a2ald公共の経路ノードとしてのみ使い、個人のアイデンティティを載せない場合は、さらに絞り込めます。
disable_upnp = true # サーバーに UPnP ルーターはないauto_publish = false # エンドポイント記録を自動公開しないlog_format = "json" # ログ集約が容易項目の全体は設定にあります。
SELinux(CentOS / RHEL のみ)
Section titled “SELinux(CentOS / RHEL のみ)”sudo semanage fcontext -a -t var_t '/opt/a2al/data(/.*)?'sudo restorecon -Rv /opt/a2al/data# semanage がない場合:sudo dnf install -y policycoreutils-python-utils# システム単位sudo systemctl status a2aldsudo journalctl -u a2ald -f
# ユーザー単位systemctl --user status a2aldjournalctl --user -u a2ald -fアンインストール
Section titled “アンインストール”# パッケージでの導入sudo dpkg -r a2al # Debian / Ubuntusudo rpm -e a2al # CentOS / RHEL# データと鍵は /opt/a2al/data/ に残ります。完全に消す場合:sudo rm -rf /opt/a2al/datasudo userdel a2al
# 手動配置sudo systemctl disable --now a2aldsudo rm /etc/systemd/system/a2ald.servicesudo systemctl daemon-reloadsudo rm -f /usr/local/bin/a2ald /usr/local/bin/a2alsudo rm -rf /opt/a2al/binsudo rm -rf /opt/a2al/data # 任意:鍵と設定も一緒に削除されますsudo userdel a2almacOS と Windows では組み込みの a2ald service install|status|stop|start|uninstall を使います。macOS は launchd のユーザーエージェントを書き込み、Windows はシステムサービスとタスクスケジューラの2通りを提供します。詳しくはクイックスタートと MCP 設定を参照してください。
| 目的 | ページ |
|---|---|
| 設定項目の全体 | 設定 |
| コンテナで動かす | Docker での運用 |
| ポートとアクセス制御の指針 | セキュリティ実践 |