feat: Add generic deploy-vps action #7

Merged
ahmad merged 1 commit from feat/deploy-vps into main 2026-08-13 06:37:08 +00:00
Owner

Issue

Closes #6

Problem

Portfolio vendors its VPS deploy action, hardcoding its own app-env schema
(turnstile/mailtrap/contact) and container names. To standardize deploys across
apps it has to become app-agnostic and live here.

Solution

Extract deploy-vps into the org, generalized:

  • Drop the app-specific inputs; add app-env (newline KEY=VALUE, written
    verbatim into the host runtime env) so each app supplies its own runtime.
  • Add healthcheck-containers (space-separated) replacing hardcoded names.
  • Keep grafana-prom-* — the observability contract this repo owns.
  • Every generic infra step (ssh copy, compose pull/recreate, validation) is
    byte-for-byte unchanged; no app name remains.

After merge → tag v3

Please tag v3 on the merge commit — v3 = openbao-fetch + notify-telegram +
deploy-vps. Portfolio's adoption PR pins @v3 and only merges once v3 exists.

Review notes

  • README documents the action + the canonical uses: and inputs.
  • The rewrite is a minimal diff from portfolio's vendored action (5 app inputs →
    app-env; healthcheck loop → input; SSH heredoc threads the new var).
### Issue Closes #6 ### Problem Portfolio vendors its VPS deploy action, hardcoding its own app-env schema (turnstile/mailtrap/contact) and container names. To standardize deploys across apps it has to become app-agnostic and live here. ### Solution Extract `deploy-vps` into the org, generalized: - Drop the app-specific inputs; add **`app-env`** (newline `KEY=VALUE`, written verbatim into the host runtime env) so each app supplies its own runtime. - Add **`healthcheck-containers`** (space-separated) replacing hardcoded names. - Keep `grafana-prom-*` — the observability contract this repo owns. - Every generic infra step (ssh copy, compose pull/recreate, validation) is byte-for-byte unchanged; no app name remains. ### After merge → tag v3 Please **tag `v3`** on the merge commit — v3 = openbao-fetch + notify-telegram + deploy-vps. Portfolio's adoption PR pins `@v3` and only merges once v3 exists. ### Review notes - README documents the action + the canonical `uses:` and inputs. - The rewrite is a minimal diff from portfolio's vendored action (5 app inputs → `app-env`; healthcheck loop → input; SSH heredoc threads the new var).
Extract portfolio's VPS deploy into a shared, app-agnostic action: the caller
supplies its runtime env via app-env and its container names via
healthcheck-containers; the grafana-prom-* observability contract stays. To be
released as v3 (with openbao-fetch + notify-telegram).
ahmad merged commit 38a21c0a5b into main 2026-08-13 06:37:08 +00:00
ahmad deleted branch feat/deploy-vps 2026-08-13 06:37:08 +00:00
Sign in to join this conversation.
No description provided.