IronClaw: use dbus-run-session for Debian and Alpine startup and install keychain dependencies

This commit is contained in:
MickLesk
2026-04-12 21:13:48 +02:00
parent 4e9a36db47
commit 66865df2c5
2 changed files with 12 additions and 14 deletions

View File

@@ -14,7 +14,7 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apk add openssl
$STD apk add openssl dbus gnome-keyring
msg_ok "Installed Dependencies"
msg_info "Installing PostgreSQL"
@@ -57,7 +57,8 @@ cat <<EOF >/etc/init.d/ironclaw
name="IronClaw"
description="IronClaw AI Agent"
command="/usr/local/bin/ironclaw"
command="/usr/bin/dbus-run-session"
command_args="/usr/local/bin/ironclaw"
command_background=true
pidfile="/run/ironclaw.pid"
directory="/root"

View File

@@ -13,13 +13,16 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
dbus-user-session \
gnome-keyring \
libsecret-tools
msg_ok "Installed Dependencies"
PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql
PG_DB_NAME="ironclaw" PG_DB_USER="ironclaw" PG_DB_EXTENSIONS="vector" setup_postgresql_db
msg_info "Installing secret service dependencies"
$STD apt install -y dbus-user-session gnome-keyring libsecret-tools
msg_ok "Installed secret service dependencies"
fetch_and_deploy_gh_release "ironclaw-bin" "nearai/ironclaw" "prebuild" "latest" "/usr/local/bin" \
"ironclaw-$(uname -m)-unknown-linux-$([[ -f /etc/alpine-release ]] && echo "musl" || echo "gnu").tar.gz"
chmod +x /usr/local/bin/ironclaw
@@ -41,13 +44,6 @@ chmod 600 /root/.ironclaw/.env
msg_ok "Configured IronClaw"
msg_info "Creating Service"
cat <<'EOF' >/usr/local/bin/ironclaw-run.sh
#!/usr/bin/env bash
set -euo pipefail
exec dbus-run-session -- bash -lc 'gnome-keyring-daemon --start --components=secrets >/dev/null 2>&1 && exec /usr/local/bin/ironclaw'
EOF
chmod +x /usr/local/bin/ironclaw-run.sh
cat <<EOF >/etc/systemd/system/ironclaw.service
[Unit]
Description=IronClaw AI Agent
@@ -57,7 +53,8 @@ After=network.target postgresql.service
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/usr/local/bin/ironclaw-run.sh
EnvironmentFile=/root/.ironclaw/.env
ExecStart=/usr/bin/dbus-run-session /usr/local/bin/ironclaw
Restart=on-failure
RestartSec=5