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
Based on `ubuntu:24.04`. Tools are managed by [mise](https://mise.jdx.dev/) and persisted on a shared volume mounted at `/tools`.
### Tools
| Category | Tools | | Category | Tools |
| ---------------- | -------------------------------------------------- | | ---------------- | ------------------------------------------- |
| Languages | Node 24, Python 3.11, Go 1.26, DuckDB 1 | | Runtimes | Node 24, Python 3.11, Go 1.26 |
| Package managers | uv | | Package managers | uv |
| Infrastructure | kubectl, terraform, docker-cli, ansible |
| Secrets | sops, age | | Secrets | sops, age |
| Infra | mc (MinIO client), Supabase CLI | | CLI utilities | just, gh, jq, yq, bat, ripgrep, fzf, direnv |
| Dev utilities | bat, eza, ripgrep, fzf, jq, yq, just, gh, starship |
## Quick Start ### Configuration
Clone and run the dev-tools container: | Variable | Default | Description |
| -------------- | -------- | --------------------------------------------- |
| `GITHUB_TOKEN` | _(none)_ | GitHub token to increase mise API rate limits |
### Usage
```bash ```bash
git clone https://github.com/esauflores/dev-tools docker pull git.fastwaydata.com/esauflores/dev-tools:base
cd dev-tools
cp .env.example .env # optional, fill in GITHUB_TOKEN
docker compose up
``` ```
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 volumes:
- Start the container with the volume mounted at `/tools` dev-tools-data:
- Install all tools via mise on first run ```
**Optional (Important):** Set `GITHUB_TOKEN` in `.env` to increase GitHub API rate limits for mise. On first run the container installs all tools into the volume. Once healthy, the volume can be mounted read-only in other containers:
## Using the Volume in Other Containers
The `dev-tools` container populates the volume with all tools. Use that volume in your other containers:
```yaml ```yaml
services: services:
app: app:
volumes: 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 ```dockerfile
ENV MISE_DATA_DIR="/tools" ENV MISE_DATA_DIR="/tools/mise"
ENV MISE_CONFIG_DIR="/tools/config" ENV MISE_CONFIG_DIR="/tools/config"
ENV MISE_CACHE_DIR="/tools/cache" ENV PATH="/tools/bin:/tools/shims:${PATH}"
ENV PATH="/tools/shims:/tools/bin:${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.