Rename Claude sandbox to Assistant and update docs/volumes

This commit is contained in:
2026-08-12 17:58:47 +01:00
parent 023a4d1ad5
commit 61329f6960
6 changed files with 122 additions and 103 deletions
+27 -27
View File
@@ -7,9 +7,9 @@ HOST_GID=${HOST_GID:-0}
DEFAULT_UID=${DEFAULT_UID:-1000}
DEFAULT_GID=${DEFAULT_GID:-1000}
CLAUDE_USER=${CLAUDE_USER:-claude}
CLAUDE_GROUP=${CLAUDE_GROUP:-claude}
CLAUDE_HOME=${CLAUDE_HOME:-/home/${CLAUDE_USER}}
ASSISTANT_USER=${ASSISTANT_USER:-assistant}
ASSISTANT_GROUP=${ASSISTANT_GROUP:-claude}
ASSISTANT_HOME=${ASSISTANT_HOME:-/home/${ASSISTANT_USER}}
if [ "$HOST_UID" -eq 0 ] && [ "$HOST_GID" -eq 0 ]; then
HOST_UID=$DEFAULT_UID
@@ -17,39 +17,39 @@ if [ "$HOST_UID" -eq 0 ] && [ "$HOST_GID" -eq 0 ]; then
fi
if getent group "$HOST_GID" >/dev/null 2>&1; then
CLAUDE_GROUP="$(getent group "$HOST_GID" | cut -d: -f1)"
ASSISTANT_GROUP="$(getent group "$HOST_GID" | cut -d: -f1)"
else
groupadd -g "$HOST_GID" "$CLAUDE_GROUP"
groupadd -g "$HOST_GID" "$ASSISTANT_GROUP"
fi
# Ensure home exists, but don't recreate it
if [ ! -d "$CLAUDE_HOME" ]; then
mkdir -p "$CLAUDE_HOME"
chown "$HOST_UID:$HOST_GID" "$CLAUDE_HOME"
if [ ! -d "$ASSISTANT_HOME" ]; then
mkdir -p "$ASSISTANT_HOME"
chown "$HOST_UID:$HOST_GID" "$ASSISTANT_HOME"
fi
chown -R "$HOST_UID:$HOST_GID" "$CLAUDE_HOME"
chown -R "$HOST_UID:$HOST_GID" "$ASSISTANT_HOME"
if id -u "$CLAUDE_USER" >/dev/null 2>&1; then
if id -u "$ASSISTANT_USER" >/dev/null 2>&1; then
# Do NOT change -d (home) for existing user
usermod -u "$HOST_UID" -g "$CLAUDE_GROUP" "$CLAUDE_USER"
usermod -u "$HOST_UID" -g "$ASSISTANT_GROUP" "$ASSISTANT_USER"
else
# Only use -m when home doesn't already exist
useradd -u "$HOST_UID" -g "$CLAUDE_GROUP" -d "$CLAUDE_HOME" -s /bin/bash "$CLAUDE_USER"
useradd -u "$HOST_UID" -g "$ASSISTANT_GROUP" -d "$ASSISTANT_HOME" -s /bin/bash "$ASSISTANT_USER"
fi
# Grant passwordless sudo to claude user
echo "$CLAUDE_USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/claude
chmod 440 /etc/sudoers.d/claude
echo "$ASSISTANT_USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/assistant
chmod 440 /etc/sudoers.d/assistant
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$CLAUDE_HOME/.local"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$CLAUDE_HOME/.local/bin"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$CLAUDE_HOME/.config"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$CLAUDE_HOME/.claude"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$CLAUDE_HOME/.abra"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$ASSISTANT_HOME/.local"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$ASSISTANT_HOME/.local/bin"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$ASSISTANT_HOME/.config"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$ASSISTANT_HOME/.claude"
install -d -m 0755 -o "$HOST_UID" -g "$HOST_GID" "$ASSISTANT_HOME/.abra"
# Copy Claude binaries to user's local bin (always, to ensure upgrades apply)
cp -r /root/.local/bin/* "$CLAUDE_HOME/.local/bin/" 2>/dev/null || true
chown -R "$HOST_UID:$HOST_GID" "$CLAUDE_HOME/.local/bin"
cp -r /root/.local/bin/* "$ASSISTANT_HOME/.local/bin/" 2>/dev/null || true
chown -R "$HOST_UID:$HOST_GID" "$ASSISTANT_HOME/.local/bin"
if [ -d /workspace ]; then
chown -R "$HOST_UID:$HOST_GID" /workspace 2>/dev/null || true
@@ -59,15 +59,15 @@ if [ -d /workspace/target ]; then
fi
# Set up PATH in user's bashrc to avoid "~/.local/bin not in PATH" warning
if ! grep -q 'export PATH="\$HOME/.local/bin:\$PATH"' "$CLAUDE_HOME/.bashrc" 2>/dev/null; then
echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$CLAUDE_HOME/.bashrc"
chown "$HOST_UID:$HOST_GID" "$CLAUDE_HOME/.bashrc"
if ! grep -q 'export PATH="\$HOME/.local/bin:\$PATH"' "$ASSISTANT_HOME/.bashrc" 2>/dev/null; then
echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$ASSISTANT_HOME/.bashrc"
chown "$HOST_UID:$HOST_GID" "$ASSISTANT_HOME/.bashrc"
fi
export PATH="$CLAUDE_HOME/.local/bin:$CLAUDE_HOME/.cargo/bin:/usr/local/bin:$PATH"
export PATH="$ASSISTANT_HOME/.local/bin:$ASSISTANT_HOME/.cargo/bin:/usr/local/bin:$PATH"
if [ $# -gt 0 ]; then
exec gosu "$CLAUDE_USER" "$@"
exec gosu "$ASSISTANT_USER" "$@"
else
exec gosu "$CLAUDE_USER" "$CLAUDE_HOME/.local/bin/claude" --dangerously-skip-permissions
exec gosu "$ASSISTANT_USER" "$ASSISTANT_HOME/.local/bin/assistant" --dangerously-skip-permissions
fi