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
This commit is contained in:
Claude
2025-11-07 07:02:43 +00:00
parent ff161f84a0
commit 7d531c2608
5 changed files with 38 additions and 28 deletions

View File

@@ -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 '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 'chsh -s /bin/zsh'
arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'npm i -g @anthropic-ai/claude-code' 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 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 'useradd -m -G wheel -s /bin/zsh ai'
arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'echo "ai:root" | chpasswd' arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'echo "ai:root" | chpasswd'

View File

@@ -22,10 +22,6 @@ arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'chsh -s /bin/zsh'
# Install Claude Code # Install Claude Code
arch-chroot root.x86_64/var/lib/machines/arch /bin/sh -c 'npm i -g @anthropic-ai/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 # Copy os-release
cp -rf ./cfg/os-release root.x86_64/var/lib/machines/arch/etc/os-release cp -rf ./cfg/os-release root.x86_64/var/lib/machines/arch/etc/os-release

View File

@@ -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

View File

@@ -36,6 +36,8 @@ mv root.x86_64/var/lib/machines/arch /var/lib/machines/$NAME
# Copy nspawn configuration # Copy nspawn configuration
echo "3. Installing systemd-nspawn configuration..." echo "3. Installing systemd-nspawn configuration..."
mkdir -p /etc/systemd/nspawn mkdir -p /etc/systemd/nspawn
# Create aios.nspawn
cat > /etc/systemd/nspawn/$NAME.nspawn <<'EOF' cat > /etc/systemd/nspawn/$NAME.nspawn <<'EOF'
[Exec] [Exec]
Boot=yes Boot=yes
@@ -43,13 +45,43 @@ PrivateUsers=pick
ResolvConf=copy-host ResolvConf=copy-host
[Files] [Files]
Bind=%h/.config/syui/ai:/root/.config/syui/ai Bind=/root/.config/syui/ai:/root/.config/syui/ai
[Network] [Network]
Private=yes VirtualEthernet=no
VirtualEthernet=yes
EOF 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 # Enable systemd-machined
echo "4. Enabling systemd-machined..." echo "4. Enabling systemd-machined..."
systemctl enable --now systemd-machined systemctl enable --now systemd-machined

View File

@@ -8,9 +8,8 @@ ResolvConf=copy-host
[Files] [Files]
# Bind mount shared memory directory # Bind mount shared memory directory
# Host: ~/.config/syui/ai -> Container: /root/.config/syui/ai # Host: /root/.config/syui/ai -> Container: /root/.config/syui/ai
Bind=%h/.config/syui/ai:/root/.config/syui/ai Bind=/root/.config/syui/ai:/root/.config/syui/ai
[Network] [Network]
Private=yes VirtualEthernet=no
VirtualEthernet=yes