claude-docker/scripts/install.sh
Vishal Jain dcc936dc10 Implement authentication persistence for Claude Docker
- Add persistent volume mount for Claude home directory (~/.claude)
- Create non-root user in Docker container for better security
- Mount host ~/.claude-docker/claude-home to container ~/.claude
- Update install script to create claude-home directory
- Check for existing credentials on startup
- Authentication tokens now persist across container restarts
2025-06-12 14:09:10 +01:00

42 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# ABOUTME: Installation script for claude-docker
# ABOUTME: Sets up alias and creates config directory
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
# Create config directory and claude persistence directory
mkdir -p "$HOME/.claude-docker/config"
mkdir -p "$HOME/.claude-docker/claude-home"
# Copy example env file if doesn't exist
if [ ! -f "$HOME/.claude-docker/.env" ]; then
cp "$PROJECT_ROOT/.env.example" "$HOME/.claude-docker/.env"
echo "⚠️ Created .env file at $HOME/.claude-docker/.env"
echo " Please edit it with your API keys!"
fi
# Add alias to .zshrc
ALIAS_LINE="alias claude-docker='$PROJECT_ROOT/scripts/claude-docker.sh'"
if ! grep -q "alias claude-docker=" "$HOME/.zshrc"; then
echo "" >> "$HOME/.zshrc"
echo "# Claude Docker alias" >> "$HOME/.zshrc"
echo "$ALIAS_LINE" >> "$HOME/.zshrc"
echo "✓ Added 'claude-docker' alias to .zshrc"
else
echo "✓ Claude-docker alias already exists in .zshrc"
fi
# Make scripts executable
chmod +x "$PROJECT_ROOT/scripts/claude-docker.sh"
chmod +x "$PROJECT_ROOT/scripts/startup.sh"
echo ""
echo "Installation complete! 🎉"
echo ""
echo "Next steps:"
echo "1. (Optional) Edit $HOME/.claude-docker/.env with your API keys"
echo "2. Run 'source ~/.zshrc' or start a new terminal"
echo "3. Navigate to any project and run 'claude-docker' to start"
echo "4. If no API key, Claude will prompt for interactive authentication"