feat(developer): add full-fat dev environment with 100+ tools
Some checks are pending
Build Images / Docker (developer) (push) Waiting to run
Build Images / Docker (server-php) (push) Waiting to run
Build Images / LinuxKit (developer-amd64) (push) Blocked by required conditions
Build Images / LinuxKit (server-php-amd64) (push) Blocked by required conditions
Build Images / LinuxKit (developer-arm64) (push) Blocked by required conditions
Build Images / LinuxKit (server-php-arm64) (push) Blocked by required conditions
Build Images / Release LinuxKit Images (push) Blocked by required conditions
Some checks are pending
Build Images / Docker (developer) (push) Waiting to run
Build Images / Docker (server-php) (push) Waiting to run
Build Images / LinuxKit (developer-amd64) (push) Blocked by required conditions
Build Images / LinuxKit (server-php-amd64) (push) Blocked by required conditions
Build Images / LinuxKit (developer-arm64) (push) Blocked by required conditions
Build Images / LinuxKit (server-php-arm64) (push) Blocked by required conditions
Build Images / Release LinuxKit Images (push) Blocked by required conditions
Comprehensive developer image with all S4.6 tooling: AI/LLM: claude, aider, llm VCS: git, gh, lazygit, delta, git-lfs Runtimes: node, bun, deno, go, python3, rustc, frankenphp Package Mgrs: npm, pnpm, yarn, composer, pip, uv, cargo Build: task, just, make, turbo, nx Linting: pint, phpstan, prettier, eslint, biome, golangci-lint, ruff Testing: phpunit, pest, vitest, k6 Infra: docker, kubectl, k9s, helm, terraform, ansible Databases: sqlite, mysql, psql, redis-cli, usql HTTP/Net: curl, httpie, xh, websocat, grpcurl, mkcert Data: jq, yq, fx, gron, miller, dasel Security: age, sops, cosign, trivy, trufflehog Monitoring: htop, btop, ctop, lazydocker, dive Files: fd, rg, fzf, bat, eza, tree, zoxide, broot Editors: nvim, helix, vim, nano Includes shell config (zsh + oh-my-zsh + starship), tmux, and comprehensive aliases for all tools. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
91f8aac50f
commit
69d293dd23
5 changed files with 549 additions and 168 deletions
|
|
@ -1,170 +1,164 @@
|
|||
# ============================================================
|
||||
# Docker Developer - Claude-Focused Alpine Dev Image
|
||||
# Core Developer - Full-Fat Development Environment
|
||||
#
|
||||
# A kitchen-sink developer environment optimized for
|
||||
# AI-assisted development with Claude Code CLI.
|
||||
# A comprehensive developer environment with 100+ embedded tools
|
||||
# for AI-assisted development with Claude Code CLI.
|
||||
#
|
||||
# Build: docker build -t docker-developer .
|
||||
# Run: docker run -it docker-developer
|
||||
# Build: docker build -t core-dev .
|
||||
# Run: docker run -it -v $(pwd):/workspace core-dev
|
||||
# ============================================================
|
||||
|
||||
ARG ALPINE_VERSION=3.22
|
||||
|
||||
# ============================================================
|
||||
# Developer - Full development environment
|
||||
# ============================================================
|
||||
FROM alpine:${ALPINE_VERSION} AS developer
|
||||
FROM alpine:${ALPINE_VERSION}
|
||||
|
||||
LABEL maintainer="Snider <snider@host.uk.com>"
|
||||
LABEL org.opencontainers.image.source="https://github.com/host-uk/docker-developer"
|
||||
LABEL org.opencontainers.image.description="Claude-focused Alpine developer environment"
|
||||
LABEL org.opencontainers.image.source="https://github.com/host-uk/core-images"
|
||||
LABEL org.opencontainers.image.description="Full-fat developer environment with 100+ tools"
|
||||
LABEL org.opencontainers.image.licenses="EUPL-1.2"
|
||||
LABEL org.opencontainers.image.vendor="Host UK"
|
||||
LABEL org.opencontainers.image.title="Docker Developer"
|
||||
LABEL org.opencontainers.image.title="Core Developer"
|
||||
|
||||
# Environment variables
|
||||
ENV LANG=C.UTF-8
|
||||
ENV LC_ALL=C.UTF-8
|
||||
ENV TERM=xterm-256color
|
||||
ENV EDITOR=vim
|
||||
ENV EDITOR=nvim
|
||||
ENV SHELL=/bin/zsh
|
||||
ENV GOPATH=/root/go
|
||||
ENV PATH="/root/go/bin:/root/.local/bin:/root/.composer/vendor/bin:/usr/local/bin:${PATH}"
|
||||
ENV CARGO_HOME=/root/.cargo
|
||||
ENV RUSTUP_HOME=/root/.rustup
|
||||
ENV PATH="/root/go/bin:/root/.cargo/bin:/root/.local/bin:/root/.composer/vendor/bin:/usr/local/bin:${PATH}"
|
||||
|
||||
# ============================================================
|
||||
# Core System Tools
|
||||
# Core System & Build Tools
|
||||
# ============================================================
|
||||
RUN apk add --no-cache \
|
||||
# Shell and basics
|
||||
bash \
|
||||
zsh \
|
||||
zsh-vcs \
|
||||
curl \
|
||||
wget \
|
||||
ca-certificates \
|
||||
# Build tools
|
||||
make \
|
||||
cmake \
|
||||
ninja \
|
||||
meson \
|
||||
gcc \
|
||||
g++ \
|
||||
musl-dev \
|
||||
linux-headers \
|
||||
# Essential utilities
|
||||
git \
|
||||
git-lfs \
|
||||
openssh-client \
|
||||
gnupg \
|
||||
less \
|
||||
tree \
|
||||
ncdu \
|
||||
htop \
|
||||
# Editors
|
||||
vim \
|
||||
nano \
|
||||
# Text processing
|
||||
jq \
|
||||
yq \
|
||||
# Search tools
|
||||
ripgrep \
|
||||
fzf \
|
||||
# Modern CLI tools (from Alpine packages)
|
||||
bat \
|
||||
eza \
|
||||
fd \
|
||||
# Terminal multiplexer
|
||||
tmux \
|
||||
# Shells
|
||||
bash zsh zsh-vcs \
|
||||
# Network tools
|
||||
curl wget ca-certificates bind-tools iputils openssh-client \
|
||||
# Build essentials
|
||||
make cmake ninja meson gcc g++ musl-dev linux-headers \
|
||||
# Core utilities
|
||||
coreutils findutils grep sed gawk less tree ncdu shadow gettext \
|
||||
# Compression
|
||||
zip \
|
||||
unzip \
|
||||
tar \
|
||||
gzip \
|
||||
xz \
|
||||
# Networking
|
||||
bind-tools \
|
||||
iputils \
|
||||
# Process management
|
||||
shadow \
|
||||
# Template processing
|
||||
gettext \
|
||||
# For starship
|
||||
starship
|
||||
zip unzip tar gzip xz bzip2 zstd \
|
||||
# Process & system
|
||||
htop procps util-linux \
|
||||
# Crypto
|
||||
gnupg openssl
|
||||
|
||||
# ============================================================
|
||||
# Modern CLI Tools (Files & Search)
|
||||
# ============================================================
|
||||
RUN apk add --no-cache \
|
||||
# File tools
|
||||
bat eza fd ripgrep fzf tree \
|
||||
# Terminal
|
||||
tmux starship \
|
||||
# Editors
|
||||
vim nano neovim helix \
|
||||
# Directory navigation
|
||||
zoxide broot
|
||||
|
||||
# ============================================================
|
||||
# VCS & Git Tools
|
||||
# ============================================================
|
||||
RUN apk add --no-cache \
|
||||
git git-lfs github-cli lazygit git-delta
|
||||
|
||||
# ============================================================
|
||||
# Node.js Ecosystem
|
||||
# ============================================================
|
||||
RUN apk add --no-cache \
|
||||
nodejs \
|
||||
npm
|
||||
RUN apk add --no-cache nodejs npm
|
||||
|
||||
# Install global Node.js packages
|
||||
# Bun runtime
|
||||
RUN curl -fsSL https://bun.sh/install | bash && \
|
||||
ln -sf /root/.bun/bin/bun /usr/local/bin/bun && \
|
||||
ln -sf /root/.bun/bin/bunx /usr/local/bin/bunx
|
||||
|
||||
# Deno runtime
|
||||
RUN curl -fsSL https://deno.land/install.sh | sh && \
|
||||
ln -sf /root/.deno/bin/deno /usr/local/bin/deno
|
||||
|
||||
# Global Node.js packages
|
||||
RUN npm install -g \
|
||||
@anthropic-ai/claude-code \
|
||||
typescript \
|
||||
ts-node \
|
||||
pnpm \
|
||||
yarn
|
||||
typescript ts-node \
|
||||
pnpm yarn \
|
||||
prettier eslint \
|
||||
@biomejs/biome \
|
||||
turbo nx \
|
||||
vitest \
|
||||
typedoc \
|
||||
@mermaid-js/mermaid-cli
|
||||
|
||||
# ============================================================
|
||||
# Python Ecosystem
|
||||
# ============================================================
|
||||
RUN apk add --no-cache \
|
||||
python3 \
|
||||
py3-pip \
|
||||
python3-dev
|
||||
RUN apk add --no-cache python3 py3-pip python3-dev
|
||||
|
||||
# Install Python tools
|
||||
RUN pip3 install --break-system-packages \
|
||||
pipx \
|
||||
uv \
|
||||
ipython \
|
||||
httpie
|
||||
pipx uv \
|
||||
ipython httpie \
|
||||
ruff \
|
||||
mkdocs mkdocs-material \
|
||||
aider-chat \
|
||||
llm
|
||||
|
||||
# ============================================================
|
||||
# PHP Ecosystem
|
||||
# ============================================================
|
||||
RUN apk add --no-cache \
|
||||
php84 \
|
||||
php84-phar \
|
||||
php84-mbstring \
|
||||
php84-openssl \
|
||||
php84-curl \
|
||||
php84-iconv \
|
||||
php84-tokenizer \
|
||||
php84-dom \
|
||||
php84-xml \
|
||||
php84-xmlwriter \
|
||||
php84-simplexml \
|
||||
php84-ctype \
|
||||
php84-fileinfo \
|
||||
php84-json \
|
||||
php84-posix \
|
||||
php84-pcntl \
|
||||
php84-zip
|
||||
php84 php84-phar php84-mbstring php84-openssl php84-curl \
|
||||
php84-iconv php84-tokenizer php84-dom php84-xml php84-xmlwriter \
|
||||
php84-simplexml php84-ctype php84-fileinfo php84-json \
|
||||
php84-posix php84-pcntl php84-zip php84-sodium php84-session \
|
||||
php84-pdo php84-pdo_mysql php84-pdo_pgsql php84-pdo_sqlite
|
||||
|
||||
# Create php symlink
|
||||
RUN ln -sf /usr/bin/php84 /usr/bin/php
|
||||
|
||||
# Install Composer
|
||||
# Composer
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- \
|
||||
--install-dir=/usr/bin --filename=composer
|
||||
|
||||
# Install PHP dev tools globally
|
||||
# PHP tools via Composer
|
||||
RUN composer global require --no-interaction \
|
||||
phpunit/phpunit:^11.0 \
|
||||
pestphp/pest:^3.0 \
|
||||
phpstan/phpstan:^2.0 \
|
||||
squizlabs/php_codesniffer:^3.0 \
|
||||
friendsofphp/php-cs-fixer:^3.0
|
||||
laravel/pint:^1.0 \
|
||||
phpdocumentor/phpdocumentor:^3.0
|
||||
|
||||
# FrankenPHP (static binary)
|
||||
RUN curl -fsSL "https://github.com/dunglas/frankenphp/releases/latest/download/frankenphp-linux-$(uname -m | sed 's/aarch64/arm64/' | sed 's/x86_64/x86_64/')" -o /usr/local/bin/frankenphp && \
|
||||
chmod +x /usr/local/bin/frankenphp
|
||||
|
||||
# ============================================================
|
||||
# Go Ecosystem
|
||||
# ============================================================
|
||||
RUN apk add --no-cache go
|
||||
|
||||
# Install Go tools (pinned to versions compatible with Go 1.24)
|
||||
RUN go install golang.org/x/tools/gopls@v0.17.1 && \
|
||||
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.2
|
||||
RUN go install golang.org/x/tools/gopls@latest && \
|
||||
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest && \
|
||||
go install github.com/go-task/task/v3/cmd/task@latest && \
|
||||
go install github.com/casey/just@latest && \
|
||||
go install github.com/watchexec/watchexec/cmd/watchexec@latest 2>/dev/null || true && \
|
||||
go install github.com/boyter/scc/v3@latest
|
||||
|
||||
# ============================================================
|
||||
# Rust Ecosystem
|
||||
# ============================================================
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --profile minimal
|
||||
|
||||
# Rust-based CLI tools
|
||||
RUN . /root/.cargo/env && \
|
||||
cargo install --locked \
|
||||
hyperfine \
|
||||
tokei \
|
||||
xh \
|
||||
grex
|
||||
|
||||
# ============================================================
|
||||
# Database Clients
|
||||
|
|
@ -175,24 +169,103 @@ RUN apk add --no-cache \
|
|||
redis \
|
||||
sqlite
|
||||
|
||||
# ============================================================
|
||||
# Container Tools
|
||||
# ============================================================
|
||||
RUN apk add --no-cache docker-cli
|
||||
# usql - universal SQL client
|
||||
RUN go install github.com/xo/usql@latest
|
||||
|
||||
# ============================================================
|
||||
# Git Enhancements
|
||||
# Infrastructure & DevOps
|
||||
# ============================================================
|
||||
RUN apk add --no-cache github-cli lazygit
|
||||
RUN apk add --no-cache \
|
||||
docker-cli docker-cli-compose \
|
||||
kubectl helm \
|
||||
terraform ansible
|
||||
|
||||
# k9s - Kubernetes TUI
|
||||
RUN curl -fsSL "https://github.com/derailed/k9s/releases/latest/download/k9s_Linux_$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/').tar.gz" | tar -xzf - -C /usr/local/bin k9s
|
||||
|
||||
# lazydocker
|
||||
RUN curl -fsSL "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_$(uname -s)_$(uname -m).tar.gz" | tar -xzf - -C /usr/local/bin lazydocker
|
||||
|
||||
# dive - Docker image explorer
|
||||
RUN go install github.com/wagoodman/dive@latest
|
||||
|
||||
# ctop - Container metrics
|
||||
RUN curl -fsSL "https://github.com/bcicen/ctop/releases/latest/download/ctop-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')" -o /usr/local/bin/ctop && \
|
||||
chmod +x /usr/local/bin/ctop
|
||||
|
||||
# ============================================================
|
||||
# Oh-My-Zsh Installation
|
||||
# HTTP & Networking
|
||||
# ============================================================
|
||||
RUN apk add --no-cache websocat
|
||||
|
||||
# grpcurl
|
||||
RUN go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
|
||||
|
||||
# mkcert - local CA
|
||||
RUN curl -fsSL "https://github.com/FiloSottile/mkcert/releases/latest/download/mkcert-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')" -o /usr/local/bin/mkcert && \
|
||||
chmod +x /usr/local/bin/mkcert
|
||||
|
||||
# ============================================================
|
||||
# Data Processing
|
||||
# ============================================================
|
||||
RUN apk add --no-cache jq yq miller
|
||||
|
||||
# fx - JSON viewer
|
||||
RUN go install github.com/antonmedv/fx@latest
|
||||
|
||||
# gron - Make JSON greppable
|
||||
RUN go install github.com/tomnomnom/gron@latest
|
||||
|
||||
# dasel - Query data formats
|
||||
RUN curl -fsSL "https://github.com/TomWright/dasel/releases/latest/download/dasel_linux_$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')" -o /usr/local/bin/dasel && \
|
||||
chmod +x /usr/local/bin/dasel
|
||||
|
||||
# ============================================================
|
||||
# Security Tools
|
||||
# ============================================================
|
||||
# age - encryption
|
||||
RUN apk add --no-cache age
|
||||
|
||||
# sops - secrets management
|
||||
RUN curl -fsSL "https://github.com/getsops/sops/releases/latest/download/sops-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')" -o /usr/local/bin/sops && \
|
||||
chmod +x /usr/local/bin/sops
|
||||
|
||||
# cosign - container signing
|
||||
RUN go install github.com/sigstore/cosign/v2/cmd/cosign@latest
|
||||
|
||||
# trivy - vulnerability scanner
|
||||
RUN curl -fsSL "https://github.com/aquasecurity/trivy/releases/latest/download/trivy_$(uname -s)_$(uname -m).tar.gz" | tar -xzf - -C /usr/local/bin trivy
|
||||
|
||||
# trufflehog - secret scanner
|
||||
RUN curl -fsSL "https://github.com/trufflesecurity/trufflehog/releases/latest/download/trufflehog_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/').tar.gz" | tar -xzf - -C /usr/local/bin trufflehog
|
||||
|
||||
# ============================================================
|
||||
# Monitoring
|
||||
# ============================================================
|
||||
RUN apk add --no-cache btop
|
||||
|
||||
# ============================================================
|
||||
# Testing Tools
|
||||
# ============================================================
|
||||
# k6 - load testing
|
||||
RUN curl -fsSL "https://github.com/grafana/k6/releases/latest/download/k6-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/').tar.gz" | tar -xzf - --strip-components=1 -C /usr/local/bin
|
||||
|
||||
# Playwright (via npm, already installed)
|
||||
|
||||
# ============================================================
|
||||
# Misc Tools
|
||||
# ============================================================
|
||||
RUN apk add --no-cache direnv
|
||||
|
||||
# ============================================================
|
||||
# Shell Configuration
|
||||
# ============================================================
|
||||
# Oh-My-Zsh
|
||||
RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
|
||||
|
||||
# Install zsh plugins
|
||||
RUN git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-/root/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-/root/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
|
||||
# Zsh plugins
|
||||
RUN git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-/root/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
|
||||
git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-/root/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
|
||||
|
||||
# ============================================================
|
||||
# Configuration Files
|
||||
|
|
@ -200,18 +273,15 @@ RUN git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-/ro
|
|||
COPY --chmod=644 config/zshrc /root/.zshrc
|
||||
COPY --chmod=644 config/starship.toml /root/.config/starship.toml
|
||||
COPY --chmod=644 config/tmux.conf /root/.tmux.conf
|
||||
COPY --chmod=644 config/aliases.sh /etc/profile.d/aliases.sh
|
||||
|
||||
# ============================================================
|
||||
# Entrypoint and Hooks
|
||||
# Entrypoint
|
||||
# ============================================================
|
||||
COPY --chmod=755 scripts/entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||
COPY --chmod=755 scripts/hooks.sh /usr/local/bin/hooks.sh
|
||||
|
||||
# Create config directories
|
||||
RUN mkdir -p /root/.config/docker-developer/hooks/pre-start \
|
||||
/root/.config/docker-developer/hooks/post-start \
|
||||
/root/.claude \
|
||||
/workspace
|
||||
# Create directories
|
||||
RUN mkdir -p /root/.config /root/.claude /workspace
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
|
|
|
|||
|
|
@ -1,56 +1,185 @@
|
|||
# Core-dev shell aliases
|
||||
# Core Developer - Shell Aliases
|
||||
|
||||
# ============================================================
|
||||
# Navigation
|
||||
# ============================================================
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
alias ~='cd ~'
|
||||
alias -- -='cd -'
|
||||
|
||||
# ============================================================
|
||||
# File Listing (eza)
|
||||
# ============================================================
|
||||
alias ls='eza --icons'
|
||||
alias ll='eza -la --icons --git'
|
||||
alias la='eza -la --icons'
|
||||
alias lt='eza --tree --level=2 --icons'
|
||||
alias lta='eza --tree --level=3 --icons -a'
|
||||
|
||||
# Git
|
||||
alias g='git'
|
||||
alias gs='git status'
|
||||
alias gd='git diff'
|
||||
alias gc='git commit'
|
||||
alias gp='git push'
|
||||
alias gl='git log --oneline -20'
|
||||
alias gco='git checkout'
|
||||
alias gb='git branch'
|
||||
alias lg='lazygit'
|
||||
|
||||
# Docker
|
||||
alias d='docker'
|
||||
alias dc='docker compose'
|
||||
alias dps='docker ps'
|
||||
alias di='docker images'
|
||||
alias dex='docker exec -it'
|
||||
alias ld='lazydocker'
|
||||
|
||||
# Kubernetes
|
||||
alias k='kubectl'
|
||||
alias kgp='kubectl get pods'
|
||||
alias kgs='kubectl get svc'
|
||||
alias kgd='kubectl get deployments'
|
||||
|
||||
# PHP/Laravel
|
||||
alias art='php artisan'
|
||||
alias sail='./vendor/bin/sail'
|
||||
alias pest='./vendor/bin/pest'
|
||||
alias pint='./vendor/bin/pint'
|
||||
|
||||
# Core
|
||||
alias c='core'
|
||||
alias cdev='core dev'
|
||||
alias cbuild='core build'
|
||||
alias crun='core run'
|
||||
|
||||
# Misc
|
||||
# ============================================================
|
||||
# Modern CLI Replacements
|
||||
# ============================================================
|
||||
alias cat='bat'
|
||||
alias find='fd'
|
||||
alias grep='rg'
|
||||
alias top='btop'
|
||||
alias diff='delta'
|
||||
alias vim='nvim'
|
||||
alias vi='nvim'
|
||||
|
||||
# FZF integrations
|
||||
# ============================================================
|
||||
# Git
|
||||
# ============================================================
|
||||
alias g='git'
|
||||
alias gs='git status'
|
||||
alias gd='git diff'
|
||||
alias gds='git diff --staged'
|
||||
alias gc='git commit'
|
||||
alias gca='git commit -a'
|
||||
alias gcm='git commit -m'
|
||||
alias gp='git push'
|
||||
alias gpl='git pull'
|
||||
alias gl='git log --oneline -20'
|
||||
alias glo='git log --oneline --graph --all'
|
||||
alias gco='git checkout'
|
||||
alias gb='git branch'
|
||||
alias gba='git branch -a'
|
||||
alias gf='git fetch'
|
||||
alias gm='git merge'
|
||||
alias gr='git rebase'
|
||||
alias gst='git stash'
|
||||
alias lg='lazygit'
|
||||
|
||||
# ============================================================
|
||||
# Docker
|
||||
# ============================================================
|
||||
alias d='docker'
|
||||
alias dc='docker compose'
|
||||
alias dps='docker ps'
|
||||
alias dpsa='docker ps -a'
|
||||
alias di='docker images'
|
||||
alias dex='docker exec -it'
|
||||
alias drm='docker rm'
|
||||
alias drmi='docker rmi'
|
||||
alias dlog='docker logs -f'
|
||||
alias dprune='docker system prune -af'
|
||||
alias ld='lazydocker'
|
||||
|
||||
# ============================================================
|
||||
# Kubernetes
|
||||
# ============================================================
|
||||
alias k='kubectl'
|
||||
alias kgp='kubectl get pods'
|
||||
alias kgs='kubectl get svc'
|
||||
alias kgd='kubectl get deployments'
|
||||
alias kgn='kubectl get nodes'
|
||||
alias kga='kubectl get all'
|
||||
alias kdp='kubectl describe pod'
|
||||
alias kds='kubectl describe svc'
|
||||
alias kdd='kubectl describe deployment'
|
||||
alias klf='kubectl logs -f'
|
||||
alias kex='kubectl exec -it'
|
||||
alias kaf='kubectl apply -f'
|
||||
alias kdf='kubectl delete -f'
|
||||
|
||||
# ============================================================
|
||||
# PHP / Laravel
|
||||
# ============================================================
|
||||
alias art='php artisan'
|
||||
alias sail='./vendor/bin/sail'
|
||||
alias pest='./vendor/bin/pest'
|
||||
alias pint='./vendor/bin/pint'
|
||||
alias phpunit='./vendor/bin/phpunit'
|
||||
alias stan='./vendor/bin/phpstan'
|
||||
alias tinker='php artisan tinker'
|
||||
|
||||
# ============================================================
|
||||
# Node.js
|
||||
# ============================================================
|
||||
alias nr='npm run'
|
||||
alias ni='npm install'
|
||||
alias nid='npm install -D'
|
||||
alias nu='npm update'
|
||||
alias nci='npm ci'
|
||||
alias pn='pnpm'
|
||||
alias pnr='pnpm run'
|
||||
alias pni='pnpm install'
|
||||
alias bn='bun'
|
||||
alias bnr='bun run'
|
||||
alias bni='bun install'
|
||||
|
||||
# ============================================================
|
||||
# Python
|
||||
# ============================================================
|
||||
alias py='python3'
|
||||
alias pip='pip3'
|
||||
alias venv='python3 -m venv'
|
||||
alias activate='source .venv/bin/activate'
|
||||
|
||||
# ============================================================
|
||||
# Go
|
||||
# ============================================================
|
||||
alias gob='go build'
|
||||
alias gor='go run'
|
||||
alias got='go test'
|
||||
alias gotv='go test -v'
|
||||
alias gomt='go mod tidy'
|
||||
alias gof='go fmt ./...'
|
||||
alias gol='golangci-lint run'
|
||||
|
||||
# ============================================================
|
||||
# Rust
|
||||
# ============================================================
|
||||
alias cb='cargo build'
|
||||
alias cr='cargo run'
|
||||
alias ct='cargo test'
|
||||
alias cc='cargo check'
|
||||
alias cf='cargo fmt'
|
||||
alias cl='cargo clippy'
|
||||
|
||||
# ============================================================
|
||||
# Core CLI
|
||||
# ============================================================
|
||||
alias core='core'
|
||||
alias cdev='core dev'
|
||||
alias cbuild='core build'
|
||||
alias crun='core run'
|
||||
alias crelease='core release'
|
||||
alias cphp='core php'
|
||||
|
||||
# ============================================================
|
||||
# Data Processing
|
||||
# ============================================================
|
||||
alias json='jq'
|
||||
alias yaml='yq'
|
||||
alias csv='mlr --csv'
|
||||
|
||||
# ============================================================
|
||||
# Security
|
||||
# ============================================================
|
||||
alias encrypt='age -e'
|
||||
alias decrypt='age -d'
|
||||
alias scan='trivy fs .'
|
||||
alias secrets='trufflehog filesystem .'
|
||||
|
||||
# ============================================================
|
||||
# FZF Integrations
|
||||
# ============================================================
|
||||
alias fzp='fzf --preview "bat --color=always {}"'
|
||||
alias fzg='fzf --preview "git diff {} | delta"'
|
||||
|
||||
# ============================================================
|
||||
# Misc
|
||||
# ============================================================
|
||||
alias h='history'
|
||||
alias cl='clear'
|
||||
alias q='exit'
|
||||
alias reload='source ~/.zshrc'
|
||||
alias path='echo $PATH | tr ":" "\n"'
|
||||
alias week='date +%V'
|
||||
alias myip='curl -s ifconfig.me'
|
||||
alias ports='ss -tuln'
|
||||
alias serve='python3 -m http.server'
|
||||
alias weather='curl -s wttr.in'
|
||||
|
|
|
|||
66
developer/config/tmux.conf
Normal file
66
developer/config/tmux.conf
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Core Developer - Tmux Configuration
|
||||
|
||||
# Use Ctrl-a as prefix (like screen)
|
||||
set -g prefix C-a
|
||||
unbind C-b
|
||||
bind C-a send-prefix
|
||||
|
||||
# Enable mouse support
|
||||
set -g mouse on
|
||||
|
||||
# Start windows and panes at 1
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# Renumber windows on close
|
||||
set -g renumber-windows on
|
||||
|
||||
# Increase history
|
||||
set -g history-limit 50000
|
||||
|
||||
# Enable 256 colors
|
||||
set -g default-terminal "screen-256color"
|
||||
set -ga terminal-overrides ",*256col*:Tc"
|
||||
|
||||
# Faster escape time
|
||||
set -sg escape-time 0
|
||||
|
||||
# Split panes with | and -
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
bind - split-window -v -c "#{pane_current_path}"
|
||||
|
||||
# Navigate panes with vim keys
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# Resize panes
|
||||
bind -r H resize-pane -L 5
|
||||
bind -r J resize-pane -D 5
|
||||
bind -r K resize-pane -U 5
|
||||
bind -r L resize-pane -R 5
|
||||
|
||||
# Reload config
|
||||
bind r source-file ~/.tmux.conf \; display "Config reloaded!"
|
||||
|
||||
# Status bar
|
||||
set -g status-style bg=default,fg=white
|
||||
set -g status-left "#[fg=cyan]#S "
|
||||
set -g status-right "#[fg=yellow]%H:%M"
|
||||
set -g status-left-length 20
|
||||
|
||||
# Window status
|
||||
setw -g window-status-current-style fg=cyan,bold
|
||||
setw -g window-status-style fg=white
|
||||
|
||||
# Pane borders
|
||||
set -g pane-border-style fg=colour238
|
||||
set -g pane-active-border-style fg=cyan
|
||||
|
||||
# Activity monitoring
|
||||
setw -g monitor-activity on
|
||||
set -g visual-activity off
|
||||
|
||||
# Use zsh
|
||||
set -g default-shell /bin/zsh
|
||||
69
developer/config/zshrc
Normal file
69
developer/config/zshrc
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# Core Developer - Zsh Configuration
|
||||
|
||||
# Path to oh-my-zsh installation
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
|
||||
# Theme (using starship instead)
|
||||
ZSH_THEME=""
|
||||
|
||||
# Plugins
|
||||
plugins=(
|
||||
git
|
||||
docker
|
||||
kubectl
|
||||
composer
|
||||
npm
|
||||
golang
|
||||
rust
|
||||
python
|
||||
zsh-autosuggestions
|
||||
zsh-syntax-highlighting
|
||||
)
|
||||
|
||||
# Load oh-my-zsh
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# User configuration
|
||||
export LANG=C.UTF-8
|
||||
export LC_ALL=C.UTF-8
|
||||
export EDITOR=nvim
|
||||
export VISUAL=nvim
|
||||
|
||||
# Paths
|
||||
export GOPATH=$HOME/go
|
||||
export CARGO_HOME=$HOME/.cargo
|
||||
export PATH="$GOPATH/bin:$CARGO_HOME/bin:$HOME/.local/bin:$HOME/.composer/vendor/bin:$PATH"
|
||||
|
||||
# FZF configuration
|
||||
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
|
||||
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
||||
export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude .git'
|
||||
|
||||
# Bat configuration
|
||||
export BAT_THEME="TwoDark"
|
||||
|
||||
# History
|
||||
HISTSIZE=50000
|
||||
SAVEHIST=50000
|
||||
setopt SHARE_HISTORY
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt HIST_IGNORE_SPACE
|
||||
|
||||
# Load aliases
|
||||
[[ -f /etc/profile.d/aliases.sh ]] && source /etc/profile.d/aliases.sh
|
||||
|
||||
# Initialize tools
|
||||
eval "$(starship init zsh)"
|
||||
eval "$(zoxide init zsh)"
|
||||
eval "$(direnv hook zsh)"
|
||||
|
||||
# Welcome message
|
||||
if [[ -o interactive ]]; then
|
||||
echo ""
|
||||
echo " Core Developer Environment"
|
||||
echo " Run 'claude' to start AI-assisted development"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Start in workspace if it exists
|
||||
[[ -d /workspace ]] && cd /workspace
|
||||
47
developer/scripts/entrypoint.sh
Normal file
47
developer/scripts/entrypoint.sh
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/sh
|
||||
# Core Developer - Entrypoint Script
|
||||
|
||||
set -e
|
||||
|
||||
# Run pre-start hooks if they exist
|
||||
if [ -d "/root/.config/core-dev/hooks/pre-start" ]; then
|
||||
for hook in /root/.config/core-dev/hooks/pre-start/*; do
|
||||
[ -x "$hook" ] && "$hook"
|
||||
done
|
||||
fi
|
||||
|
||||
# Setup git config if not already set
|
||||
if [ -z "$(git config --global user.name 2>/dev/null)" ]; then
|
||||
if [ -n "$GIT_USER_NAME" ]; then
|
||||
git config --global user.name "$GIT_USER_NAME"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$(git config --global user.email 2>/dev/null)" ]; then
|
||||
if [ -n "$GIT_USER_EMAIL" ]; then
|
||||
git config --global user.email "$GIT_USER_EMAIL"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup SSH agent if keys exist
|
||||
if [ -d "$HOME/.ssh" ] && [ -z "$SSH_AUTH_SOCK" ]; then
|
||||
eval "$(ssh-agent -s)" > /dev/null 2>&1
|
||||
for key in $HOME/.ssh/id_* ; do
|
||||
[ -f "$key" ] && [ ! -f "$key.pub" ] || ssh-add "$key" 2>/dev/null || true
|
||||
done
|
||||
fi
|
||||
|
||||
# Initialize mkcert CA if not already done
|
||||
if [ ! -f "$HOME/.local/share/mkcert/rootCA.pem" ]; then
|
||||
mkcert -install 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Run post-start hooks if they exist
|
||||
if [ -d "/root/.config/core-dev/hooks/post-start" ]; then
|
||||
for hook in /root/.config/core-dev/hooks/post-start/*; do
|
||||
[ -x "$hook" ] && "$hook"
|
||||
done
|
||||
fi
|
||||
|
||||
# Execute command
|
||||
exec "$@"
|
||||
Loading…
Add table
Reference in a new issue