# devpod A modular, Alpine-based Rust development environment running in a Podman container. It automatically integrates your custom dotfiles and pre-installs a suite of essential CLI tools. ## Features - **Seamless Integration**: Mounts your current working directory into the container at the same path. - **Customizable**: Modular script architecture makes it easy to add or remove tools. - **Dotfile Ready**: Automatically clones and configures your dotfiles repository. - **Full Rust Setup**: Includes `rustup`, `cargo-binstall`, and common Rust utilities (`cargo-watch`, `cargo-get`). - **Pre-installed Tooling**: Includes `ripgrep`, `zoxide`, `bat`, `fd`, `neovim`, `fish`, and more. ## Prerequisites - [podman](https://podman.io/) - [git](https://git-scm.com/) - [bash](https://www.gnu.org/software/bash/) ## Quick Start 1. Clone this repository (or navigate to the directory). 2. Make the host script executable: ```bash chmod +x devpod ``` 3. Run the script: ```bash ./devpod ``` *Note: The first run will take a while as it builds the container image and installs all dependencies.* ## How It Works The setup is broken down into specialized scripts to keep the `Containerfile` clean: - `install-apk.sh`: Installs system-level packages via `apk`. - `install-rust.sh`: Handles the Rust toolchain and `cargo-binstall`. - `install-cargo-tools.sh`: Installs Rust-based CLI tools and your custom crates. - `setup-rust-dev.sh`: The main orchestrator that runs the sub-scripts and configures your dotfiles. - `devpod`: The entry point that builds the image (if needed) and drops you into the container. ## Customization To add new tools, simply edit the corresponding installation script: - To add an Alpine package, edit `install-apk.sh`. - To add a Cargo-based tool, edit `install-cargo-tools.sh`. After making changes, simply run `./devpod` again to rebuild the image.