- 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
42 lines
1.5 KiB
Bash
Executable File
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" |