From 7d531c260836343f9a3fc7b43c32a6c1e12679bb Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 7 Nov 2025 07:02:43 +0000 Subject: [PATCH] fix: Remove claude.service and fix network settings - Remove cfg/claude.service (claude should be run manually, not as systemd service) - Fix bind mount: change %h to /root for proper path resolution - Fix network: change to VirtualEthernet=no for internet access - Update install.sh to create proper nspawn configs for all containers - Create /root/.config/syui/ai directory in install.sh Working flow: - aios OS boot -> ai user login - machinectl login workspace - manually run 'claude' command --- .github/workflows/release.yml | 2 -- build.zsh | 4 ---- cfg/claude.service | 15 -------------- cfg/install.sh | 38 ++++++++++++++++++++++++++++++++--- cfg/nspawn/aios.nspawn | 7 +++---- 5 files changed, 38 insertions(+), 28 deletions(-) delete mode 100644 cfg/claude.service diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0ed5ea9..9227c43 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -46,8 +46,6 @@ jobs: arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'curl -sL -o /etc/containers/registries.conf.d/ai.conf https://git.syui.ai/ai/os/raw/branch/main/cfg/ai.conf' arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chsh -s /bin/zsh' arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'npm i -g @anthropic-ai/claude-code' - cp -rf ./cfg/claude.service root.x86_64/var/lib/machines/arch/etc/systemd/system/claude.service - arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'systemctl enable claude' cp -rf ./cfg/os-release root.x86_64/var/lib/machines/arch/etc/os-release arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'useradd -m -G wheel -s /bin/zsh ai' arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'echo "ai:root" | chpasswd' diff --git a/build.zsh b/build.zsh index 6a4b50e..babd919 100755 --- a/build.zsh +++ b/build.zsh @@ -22,10 +22,6 @@ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chsh -s /bin/zsh' # Install Claude Code arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'npm i -g @anthropic-ai/claude-code' -# Setup Claude Code systemd service for auto-start -cp -rf ./cfg/claude.service root.x86_64/var/lib/machines/arch/etc/systemd/system/claude.service -arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'systemctl enable claude' - # Copy os-release cp -rf ./cfg/os-release root.x86_64/var/lib/machines/arch/etc/os-release diff --git a/cfg/claude.service b/cfg/claude.service deleted file mode 100644 index bbcd46c..0000000 --- a/cfg/claude.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Claude Code AI Assistant -After=network.target - -[Service] -Type=simple -User=ai -WorkingDirectory=/home/ai -Environment=HOME=/home/ai -ExecStart=/usr/bin/claude -Restart=on-failure -RestartSec=5s - -[Install] -WantedBy=multi-user.target diff --git a/cfg/install.sh b/cfg/install.sh index 16ead3a..86703e9 100644 --- a/cfg/install.sh +++ b/cfg/install.sh @@ -36,6 +36,8 @@ mv root.x86_64/var/lib/machines/arch /var/lib/machines/$NAME # Copy nspawn configuration echo "3. Installing systemd-nspawn configuration..." mkdir -p /etc/systemd/nspawn + +# Create aios.nspawn cat > /etc/systemd/nspawn/$NAME.nspawn <<'EOF' [Exec] Boot=yes @@ -43,13 +45,43 @@ PrivateUsers=pick ResolvConf=copy-host [Files] -Bind=%h/.config/syui/ai:/root/.config/syui/ai +Bind=/root/.config/syui/ai:/root/.config/syui/ai [Network] -Private=yes -VirtualEthernet=yes +VirtualEthernet=no EOF +# Create aiosback.nspawn +cat > /etc/systemd/nspawn/$BACKUP.nspawn <<'EOF' +[Exec] +Boot=yes +PrivateUsers=pick +ResolvConf=copy-host + +[Files] +Bind=/root/.config/syui/ai:/root/.config/syui/ai + +[Network] +VirtualEthernet=no +EOF + +# Create workspace.nspawn +cat > /etc/systemd/nspawn/workspace.nspawn <<'EOF' +[Exec] +Boot=yes +PrivateUsers=pick +ResolvConf=copy-host + +[Files] +Bind=/root/.config/syui/ai:/root/.config/syui/ai + +[Network] +VirtualEthernet=no +EOF + +# Create bind mount directory +mkdir -p /root/.config/syui/ai + # Enable systemd-machined echo "4. Enabling systemd-machined..." systemctl enable --now systemd-machined diff --git a/cfg/nspawn/aios.nspawn b/cfg/nspawn/aios.nspawn index 1550bda..6a07f95 100644 --- a/cfg/nspawn/aios.nspawn +++ b/cfg/nspawn/aios.nspawn @@ -8,9 +8,8 @@ ResolvConf=copy-host [Files] # Bind mount shared memory directory -# Host: ~/.config/syui/ai -> Container: /root/.config/syui/ai -Bind=%h/.config/syui/ai:/root/.config/syui/ai +# Host: /root/.config/syui/ai -> Container: /root/.config/syui/ai +Bind=/root/.config/syui/ai:/root/.config/syui/ai [Network] -Private=yes -VirtualEthernet=yes +VirtualEthernet=no