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:
74
README.md
74
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
|
||||||
|
|
||||||
|
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.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user