diff --git a/README.md b/README.md index a471888..233e3fb 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,59 @@ -# dev-tools +# toolbox -Curated set of dev tools managed by [mise](https://mise.jdx.dev/). Docker-based development environment with tools persisted on a shared volume. +Custom dev-tools Docker image for local development and self-hosted deployments. -## Tools +## dev-tools - base -| Category | Tools | -| ---------------- | -------------------------------------------------- | -| Languages | Node 24, Python 3.11, Go 1.26, DuckDB 1 | -| Package managers | uv | -| Secrets | sops, age | -| Infra | mc (MinIO client), Supabase CLI | -| Dev utilities | bat, eza, ripgrep, fzf, jq, yq, just, gh, starship | +Based on `ubuntu:24.04`. Tools are managed by [mise](https://mise.jdx.dev/) and persisted on a shared volume mounted at `/tools`. -## Quick Start +### Tools -Clone and run the dev-tools container: +| Category | Tools | +| ---------------- | ------------------------------------------- | +| Runtimes | Node 24, Python 3.11, Go 1.26 | +| Package managers | uv | +| Infrastructure | kubectl, terraform, docker-cli, ansible | +| Secrets | sops, age | +| CLI utilities | just, gh, jq, yq, bat, ripgrep, fzf, direnv | + +### Configuration + +| Variable | Default | Description | +| -------------- | -------- | --------------------------------------------- | +| `GITHUB_TOKEN` | _(none)_ | GitHub token to increase mise API rate limits | + +### Usage ```bash -git clone https://github.com/esauflores/dev-tools -cd dev-tools -cp .env.example .env # optional, fill in GITHUB_TOKEN -docker compose up +docker pull git.fastwaydata.com/esauflores/dev-tools:base ``` -This will: +```yaml +services: + dev-tools: + image: git.fastwaydata.com/esauflores/dev-tools:base + environment: + - GITHUB_TOKEN=${GITHUB_TOKEN} + volumes: + - dev-tools-data:/tools -- Create a `dev-tools` Docker volume to persist tool data and configurations -- Start the container with the volume mounted at `/tools` -- Install all tools via mise on first run +volumes: + dev-tools-data: +``` -**Optional (Important):** Set `GITHUB_TOKEN` in `.env` to increase GitHub API rate limits for mise. - -## Using the Volume in Other Containers - -The `dev-tools` container populates the volume with all tools. Use that volume in your other containers: +On first run the container installs all tools into the volume. Once healthy, the volume can be mounted read-only in other containers: ```yaml services: app: volumes: - - dev-tools:/tools:ro + - dev-tools-data:/tools:ro ``` -Add in your container's Dockerfile: +Add the following to your container's `Dockerfile` to use the tools: ```dockerfile -ENV MISE_DATA_DIR="/tools" +ENV MISE_DATA_DIR="/tools/mise" ENV MISE_CONFIG_DIR="/tools/config" -ENV MISE_CACHE_DIR="/tools/cache" -ENV PATH="/tools/shims:/tools/bin:${PATH}" +ENV PATH="/tools/bin:/tools/shims:${PATH}" ``` - -All dev-tools are now available in your container. - -## Updating Tools - -Edit `mise.toml`, update versions as needed, then rebuild: - -```bash -docker compose build --no-cache -docker compose up -``` - -The `dev-tools` volume persists tool data between runs.