Single Go binary with five commands: - build: podman build locally with registry tags + git version - push: podman push to MCR - deploy: SSH pull/stop/rm/run on target node - cert renew: issue TLS cert from Metacrypt via REST API - status: show container status on a node Config-driven via TOML service registry describing images, Dockerfiles, container configs per node. Shells out to podman for container operations and ssh for remote access. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
23 lines
801 B
Markdown
23 lines
801 B
Markdown
# CLAUDE.md
|
|
|
|
## Project Overview
|
|
|
|
mcdeploy is the Metacircular deployment CLI tool. It builds, pushes, and deploys container images to nodes, manages TLS certificates via Metacrypt, and checks container status.
|
|
|
|
## Build Commands
|
|
|
|
```bash
|
|
go build . # build the binary
|
|
go vet ./... # vet
|
|
```
|
|
|
|
## Architecture
|
|
|
|
- **Single binary** — all code in `package main`
|
|
- **Config** — TOML-based (`mcdeploy.toml`), defines services, images, nodes, and containers
|
|
- **Commands** — `build`, `push`, `deploy`, `cert renew`, `status`
|
|
- **Exec model** — shells out to `podman`, `ssh`, `scp`, and `git` for all operations
|
|
- **No auth** — relies on SSH keys and existing podman/registry auth
|
|
- **Module path**: `git.wntrmute.dev/kyle/mcdeploy`
|
|
- **Dependencies**: cobra (CLI), go-toml/v2 (config)
|