docs: refactor README for toolbox clarity and structure

This commit is contained in:
2026-03-09 21:39:16 +07:00
parent 87ab9a2375
commit 6e5e2760f5

View File

@@ -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.