mirror of
https://github.com/esauflores/toolbox.git
synced 2026-03-09 21:03:59 +00:00
docs: refactor README for toolbox clarity and structure
This commit is contained in:
80
README.md
80
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.
|
||||
|
||||
Reference in New Issue
Block a user