Skip to content

Releases: yunier-rojas/minipaas

v0.3.0

Choose a tag to compare

@yunier-rojas yunier-rojas released this 22 Sep 18:08
d7cb5d8

Clean-architecture CLI, Hugo docs, PgQue example, leaner role

Summary

This PR restructures minipaas-cli into clean/hexagonal layers, replaces the
MkDocs site with a Hugo (Hextra) site, moves the example app to the PgQue queue
framework, and removes Docker API TLS from the Ansible role.

CLI (minipaas-cli/)

  • Clean architecture. The cmd/minipaas monolith is split into:
    • internal/core/entities (pure domain types: config.go, target.go, monitoring.go)
    • internal/core/usecases (ports + interactors)
    • internal/frameworks/* (adapters: caddy, compose, config, deploy, docker, files, logger, process, scaffold, shell)
    • internal/runtime (dig composition root, one runtime per command)
  • New commands: deploy secret, deploy config (replacing top-level secret create / config create).
  • Remote targets: code init gains --host (SSH), --local, --registry, --namespace; -c/--compose-file is now optional.
  • Removals: the certs command and all Docker API TLS tooling.
  • Tooling: qa/.import.yaml + make imports enforce layer boundaries; make qa runs gofmt and golangci-lint.
  • Dependencies: adopt cockroachdb/errors, go.uber.org/dig, gopkg.in/yaml.v3; drop goccy/go-yaml; Go 1.25.
  • Tests: new use-case and framework adapter tests; old monolith tests removed.

Docs (docs/)

  • MkDocs/Material replaced by Hugo + Hextra (docs/hugo.toml, baseURL https://yunier-rojas.github.io/minipaas/).
  • Content reorganized under docs/content/ with new getting-started, guides, reference and troubleshooting sections.
  • qa/docs-links.py validates internal links against the built site (wired into CI and release).
  • make build-docs now runs hugo --source docs --gc --minify; new make serve-docs.

Role (minipaas-role/)

  • Docker API TLS removed: docker_tls_dir, tasks/docker_conf_api.yml, tasks/docker_conf_normal.yml, files/daemon_api.json, and the insecure-registries entry.
  • Single tasks/docker_conf.yml installs files/daemon_common.json.
  • Manager-side default Caddyfile install removed from swarm_managers.yml.
  • tasks/firewall.yml is now imported by tasks/main.yml.
  • Monitoring script source moved to yunier-rojas/telegram-bash-system-monitoring; meta/main.yml namespace/author updated.

Example app (example-app/)

  • Custom queues/streams SQL replaced by PgQue v0.2.0 (vendored 20250300_pgque.sql, 20250304_pgque_queues.sql).
  • App rewritten on pgque-py + psycopg 3; server.py, queue_worker.py, stream_consumer.py, cleanup.py updated.
  • Dev registry removed (compose.registry.yml); networks renamed to sample_*; images no longer prefixed with registry:5000/.
  • minipaas.yaml migrated to the new schema; demo-script.sh updated to the new CLI syntax.

Removed

  • minipaas-sql/ (custom minipaas_queue_* / minipaas_stream_* framework).
  • MkDocs config/assets (mkdocs.yml, docs/requirements.txt).

Breaking Changes

  • minipaas.yaml uses the new compose.files / docker.host / namespace / vars schema.
  • --env is now a positional argument.
  • certs, secret create, and config create commands are removed (deploy secret / deploy config replace the latter two).
  • minipaas-sql/ and its queue/stream functions are gone; use PgQue.
  • Docker API TLS is no longer configured by the role; remote access uses SSH (DOCKER_HOST=ssh://...).

v0.2.0

Choose a tag to compare

@yunier-rojas yunier-rojas released this 06 Dec 17:33
490dfe2

Breaking Changes

  • CLI: removed minipaas config delete/prune.
  • CLI: removed minipaas secret delete/prune.
  • CLI: renamed minipaas code expose to minipaas code route.
  • Example app: removed prod/ and legacy infra/; use example-app/dev/compose.*.yml.
  • Role: removed legacy tasks/templates (deploy.yml, swarm_ops.yml, paas-default-stack.yml.j2, baked-in Caddyfile).

What’s New

  • Docs: new MkDocs site with “Start Here” index pages for minipaas-cli/, minipaas-role/, and minipaas-sql/ (mkdocs.yml, docs/).
  • CLI: embedded Swarm assets (caddy, compose, registry, postgres) via assets_embed.go + tests.
  • CLI: Docker helpers for build, config, and secret, each with unit tests.
  • Example: dev-focused setup with compose.apps.yml, compose.caddy.yml, compose.postgres.yml, compose.registry.yml, compose.common.yml, and minipaas.yaml.
  • Repository tooling: root Makefile, mk/docs.mk, mise.toml, and AGENTS.md.

Improvements

  • CLI: updated deploy subcommands (build/canary/rollout/routing).
  • CLI: added tests for compose/caddy/config generation and docker helpers.
  • Role: simplified defaults and main tasks; removed outdated files.
  • CI: updated CI and release workflows.
  • Docs: added installation, usage, commands, workflows, configuration pages and docs/requirements.txt.
  • Example: updated README, scripts, and API demo.

Removed

  • CLI: config delete/prune and secret delete/prune; old Docker API shim.
  • Example: prod/infra assets superseded by dev Compose files.
  • Role: legacy tasks/templates and static Caddyfile.

Upgrade Guide

  • Replace minipaas code expose with minipaas code route.
  • Remove any use of minipaas config delete/prune and minipaas secret delete/prune.
  • Update paths from example-app/prod/compose.minipaas.yaml to example-app/dev/compose.apps.yaml.
  • Role playbooks: drop includes of removed tasks/templates; rely on updated defaults and tasks/main.yml.

Docs

  • Start Here pages: docs/index.md, docs/cli/index.md, docs/role/index.md, docs/sql/index.md.
  • Build locally: make build-docs (uses docs/requirements.txt).

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 May 12:23
cc0d3ea
fix: Upload minipaas-cli files