Initial implementation of mcdeploy deployment tool
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>
This commit is contained in:
22
CLAUDE.md
Normal file
22
CLAUDE.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user