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

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:
Snider 2026-01-28 22:31:24 +00:00
parent 91f8aac50f
commit 69d293dd23
5 changed files with 549 additions and 168 deletions

View file

@ -1,170 +1,164 @@
# ============================================================ # ============================================================
# Docker Developer - Claude-Focused Alpine Dev Image # Core Developer - Full-Fat Development Environment
# #
# A kitchen-sink developer environment optimized for # A comprehensive developer environment with 100+ embedded tools
# AI-assisted development with Claude Code CLI. # for AI-assisted development with Claude Code CLI.
# #
# Build: docker build -t docker-developer . # Build: docker build -t core-dev .
# Run: docker run -it docker-developer # Run: docker run -it -v $(pwd):/workspace core-dev
# ============================================================ # ============================================================
ARG ALPINE_VERSION=3.22 ARG ALPINE_VERSION=3.22
# ============================================================ FROM alpine:${ALPINE_VERSION}
# Developer - Full development environment
# ============================================================
FROM alpine:${ALPINE_VERSION} AS developer
LABEL maintainer="Snider <snider@host.uk.com>" LABEL maintainer="Snider <snider@host.uk.com>"
LABEL org.opencontainers.image.source="https://github.com/host-uk/docker-developer" LABEL org.opencontainers.image.source="https://github.com/host-uk/core-images"
LABEL org.opencontainers.image.description="Claude-focused Alpine developer environment" LABEL org.opencontainers.image.description="Full-fat developer environment with 100+ tools"
LABEL org.opencontainers.image.licenses="EUPL-1.2" LABEL org.opencontainers.image.licenses="EUPL-1.2"
LABEL org.opencontainers.image.vendor="Host UK" LABEL org.opencontainers.image.vendor="Host UK"
LABEL org.opencontainers.image.title="Docker Developer" LABEL org.opencontainers.image.title="Core Developer"
# Environment variables # Environment variables
ENV LANG=C.UTF-8 ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8 ENV LC_ALL=C.UTF-8
ENV TERM=xterm-256color ENV TERM=xterm-256color
ENV EDITOR=vim ENV EDITOR=nvim
ENV SHELL=/bin/zsh ENV SHELL=/bin/zsh
ENV GOPATH=/root/go 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 \ RUN apk add --no-cache \
# Shell and basics # Shells
bash \ bash zsh zsh-vcs \
zsh \ # Network tools
zsh-vcs \ curl wget ca-certificates bind-tools iputils openssh-client \
curl \ # Build essentials
wget \ make cmake ninja meson gcc g++ musl-dev linux-headers \
ca-certificates \ # Core utilities
# Build tools coreutils findutils grep sed gawk less tree ncdu shadow gettext \
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 \
# Compression # Compression
zip \ zip unzip tar gzip xz bzip2 zstd \
unzip \ # Process & system
tar \ htop procps util-linux \
gzip \ # Crypto
xz \ gnupg openssl
# Networking
bind-tools \ # ============================================================
iputils \ # Modern CLI Tools (Files & Search)
# Process management # ============================================================
shadow \ RUN apk add --no-cache \
# Template processing # File tools
gettext \ bat eza fd ripgrep fzf tree \
# For starship # Terminal
starship 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 # Node.js Ecosystem
# ============================================================ # ============================================================
RUN apk add --no-cache \ RUN apk add --no-cache nodejs npm
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 \ RUN npm install -g \
@anthropic-ai/claude-code \ @anthropic-ai/claude-code \
typescript \ typescript ts-node \
ts-node \ pnpm yarn \
pnpm \ prettier eslint \
yarn @biomejs/biome \
turbo nx \
vitest \
typedoc \
@mermaid-js/mermaid-cli
# ============================================================ # ============================================================
# Python Ecosystem # Python Ecosystem
# ============================================================ # ============================================================
RUN apk add --no-cache \ RUN apk add --no-cache python3 py3-pip python3-dev
python3 \
py3-pip \
python3-dev
# Install Python tools
RUN pip3 install --break-system-packages \ RUN pip3 install --break-system-packages \
pipx \ pipx uv \
uv \ ipython httpie \
ipython \ ruff \
httpie mkdocs mkdocs-material \
aider-chat \
llm
# ============================================================ # ============================================================
# PHP Ecosystem # PHP Ecosystem
# ============================================================ # ============================================================
RUN apk add --no-cache \ RUN apk add --no-cache \
php84 \ php84 php84-phar php84-mbstring php84-openssl php84-curl \
php84-phar \ php84-iconv php84-tokenizer php84-dom php84-xml php84-xmlwriter \
php84-mbstring \ php84-simplexml php84-ctype php84-fileinfo php84-json \
php84-openssl \ php84-posix php84-pcntl php84-zip php84-sodium php84-session \
php84-curl \ php84-pdo php84-pdo_mysql php84-pdo_pgsql php84-pdo_sqlite
php84-iconv \
php84-tokenizer \
php84-dom \
php84-xml \
php84-xmlwriter \
php84-simplexml \
php84-ctype \
php84-fileinfo \
php84-json \
php84-posix \
php84-pcntl \
php84-zip
# Create php symlink
RUN ln -sf /usr/bin/php84 /usr/bin/php RUN ln -sf /usr/bin/php84 /usr/bin/php
# Install Composer # Composer
RUN curl -sS https://getcomposer.org/installer | php -- \ RUN curl -sS https://getcomposer.org/installer | php -- \
--install-dir=/usr/bin --filename=composer --install-dir=/usr/bin --filename=composer
# Install PHP dev tools globally # PHP tools via Composer
RUN composer global require --no-interaction \ RUN composer global require --no-interaction \
phpunit/phpunit:^11.0 \ phpunit/phpunit:^11.0 \
pestphp/pest:^3.0 \
phpstan/phpstan:^2.0 \ phpstan/phpstan:^2.0 \
squizlabs/php_codesniffer:^3.0 \ laravel/pint:^1.0 \
friendsofphp/php-cs-fixer:^3.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 # Go Ecosystem
# ============================================================ # ============================================================
RUN apk add --no-cache go 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@latest && \
RUN go install golang.org/x/tools/gopls@v0.17.1 && \ go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest && \
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.2 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 # Database Clients
@ -175,24 +169,103 @@ RUN apk add --no-cache \
redis \ redis \
sqlite sqlite
# ============================================================ # usql - universal SQL client
# Container Tools RUN go install github.com/xo/usql@latest
# ============================================================
RUN apk add --no-cache docker-cli
# ============================================================ # ============================================================
# 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 RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
# Install zsh plugins # Zsh plugins
RUN git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-/root/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \ RUN git clone --depth=1 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 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 # 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/zshrc /root/.zshrc
COPY --chmod=644 config/starship.toml /root/.config/starship.toml COPY --chmod=644 config/starship.toml /root/.config/starship.toml
COPY --chmod=644 config/tmux.conf /root/.tmux.conf 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/entrypoint.sh /usr/local/bin/entrypoint.sh
COPY --chmod=755 scripts/hooks.sh /usr/local/bin/hooks.sh
# Create config directories # Create directories
RUN mkdir -p /root/.config/docker-developer/hooks/pre-start \ RUN mkdir -p /root/.config /root/.claude /workspace
/root/.config/docker-developer/hooks/post-start \
/root/.claude \
/workspace
WORKDIR /workspace WORKDIR /workspace

View file

@ -1,56 +1,185 @@
# Core-dev shell aliases # Core Developer - Shell Aliases
# ============================================================
# Navigation # Navigation
# ============================================================
alias ..='cd ..' alias ..='cd ..'
alias ...='cd ../..' alias ...='cd ../..'
alias ....='cd ../../..'
alias ~='cd ~'
alias -- -='cd -'
# ============================================================
# File Listing (eza)
# ============================================================
alias ls='eza --icons'
alias ll='eza -la --icons --git' alias ll='eza -la --icons --git'
alias la='eza -la --icons' alias la='eza -la --icons'
alias lt='eza --tree --level=2 --icons' alias lt='eza --tree --level=2 --icons'
alias lta='eza --tree --level=3 --icons -a'
# Git # ============================================================
alias g='git' # Modern CLI Replacements
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
alias cat='bat' alias cat='bat'
alias find='fd' alias find='fd'
alias grep='rg' alias grep='rg'
alias top='btop' alias top='btop'
alias diff='delta'
alias vim='nvim' alias vim='nvim'
alias vi='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 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'

View 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
View 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

View 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 "$@"