✨ Merlin’s Workshop: where utilities are forged, scripts are tested, tools are summoned for the kingdom’s network and system needs.
= SPEC-005: Merlin’s Workshop
:sectnums:
:toc:
== Background
✨ Merlin’s Workshop: where utilities are forged, scripts are tested, tools are summoned for the kingdom’s network and system needs.
The need for a **dedicated container to host essential admin tools** has emerged. This container will act as a flexible, portable utility knife for system diagnostics, disk inspection, and basic network troubleshooting — deployable inside Proxmox as an LXC container, and reusable across environments.
This toolset is intended for internal diagnostics and experimentation, reducing reliance on tools installed directly on the Proxmox host.
== Requirements
- Must run as an **LXC container** on Proxmox
- Must include basic system admin tools:
- `fdisk`, `lsblk`, `parted`, `blkid`
- `df`, `du`
- `ip`, `net-tools`, `ethtool`
- `curl`, `wget`, `nc`
- (optionally) `smartctl`, `iperf`, `lsof`
- Should be based on a minimal Debian or Alpine base image
- Should expose a shell prompt for interactive use
- Should optionally mount `/dev` from host if host device inspection is desired
- Should require **no special privileges** unless specific hardware access is needed
- Should be easily re-creatable from a documented build process
== Method
The container will be built from a minimal Debian (or Alpine) LXC template, with required packages installed via package manager.
Example approach:
1. Download minimal Debian template from Proxmox
2. Create container:
pct create 200 local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst --rootfs local-zfs:8 --net0 name=eth0,bridge=vmbr0,ip=dhcp --unprivileged 1
3. Install tools:
pct exec 200 -- bash -c "apt update && apt install -y fdisk parted util-linux net-tools iproute2 curl wget ethtool"
4. Optionally configure `/etc/fstab` or Proxmox bind mounts to expose `/dev`
5. Save configuration and test command execution
== Implementation
1. Prepare LXC template and create container
2. Verify package installation
3. Validate disk and network command access inside container
4. Mount host devices (optional) and confirm visibility
5. Document installation as a reproducible build process
== Milestones
- ✅ Container template downloaded
- ✅ Container created
- ✅ Required packages installed
- ✅ Initial tests (disk, network) confirmed
- ✅ Optional bind mounts configured
- ✅ Usage documented for future reuse
== Gathering Results
The container will be evaluated by successfully:
- Listing available disks and partitions
- Reporting filesystem usage
- Displaying network interfaces and routes
- Performing basic file downloads from known URLs
- Demonstrating no host disruption or unsafe access