Initial commit

This commit is contained in:
Dan Guido
2026-01-29 21:50:14 -05:00
commit bc36073036
38 changed files with 12434 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
FROM mcr.microsoft.com/devcontainers/base:debian
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Install uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/
# Switch to non-root user
USER vscode
WORKDIR /home/vscode
# Add ~/.local/bin to PATH for Claude Code
ENV PATH="/home/vscode/.local/bin:$PATH"
# Install Claude Code (installs to ~/.local/bin/claude)
RUN curl -fsSL https://claude.ai/install.sh | bash && \
claude plugin marketplace add trailofbits/skills && \
claude plugin marketplace add anthropics/skills && \
claude plugin marketplace add obra/superpowers
# Set environment variables
ENV DEVCONTAINER=true
ENV EDITOR=nano
# Configure zsh and add aliases
RUN echo "export HISTFILE=\"\$HOME/.zsh_history_data/.zsh_history\"" >> ~/.zshrc && \
echo "alias yolo=\"claude --dangerously-skip-permissions\"" >> ~/.zshrc
WORKDIR /workspace
+58
View File
@@ -0,0 +1,58 @@
{
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json",
"name": "dropkit",
"build": {
"dockerfile": "Dockerfile"
},
"runArgs": ["--hostname=dropkit-dev"],
"features": {
"ghcr.io/devcontainers/features/python:1": {
"version": "3.13"
},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/tailscale/codespace/tailscale:1": {}
},
"remoteUser": "vscode",
"workspaceFolder": "/workspace",
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached",
"mounts": [
"source=dropkit-zsh-history,target=/home/vscode/.zsh_history_data,type=volume",
"source=dropkit-claude,target=/home/vscode/.claude_data,type=volume",
"source=dropkit-gh,target=/home/vscode/.gh_data,type=volume",
"source=dropkit-config,target=/home/vscode/.config/dropkit,type=volume",
"source=dropkit-ssh,target=/home/vscode/.ssh,type=volume"
],
"customizations": {
"vscode": {
"extensions": [
"anthropic.claude-code",
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff",
"eamodio.gitlens",
"tamasfe.even-better-toml"
],
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh",
"python.defaultInterpreterPath": "/workspace/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
}
}
}
},
"onCreateCommand": "uv sync",
"updateContentCommand": "uv sync",
"postCreateCommand": "sudo chown -R vscode:vscode /home/vscode/.config/dropkit /home/vscode/.claude_data /home/vscode/.gh_data /home/vscode/.zsh_history_data /home/vscode/.ssh",
"containerEnv": {
"UV_LINK_MODE": "copy",
"CLAUDE_CONFIG_DIR": "/home/vscode/.claude_data",
"GH_CONFIG_DIR": "/home/vscode/.gh_data"
}
}