46 Commits
Author SHA1 Message Date
RGJorge d38b8a9ff0 v0.1.10 — WebSocket incremental graph diffs 2026-05-30 21:02:07 +00:00
RGJorge fae265727c perf: WebSocket graph diffs — broadcast only what changed 2026-05-30 20:57:44 +00:00
RGJorge 3b18cad271 v0.1.9 — fix crash on Windows when container Ports is null
Docker Desktop on Windows can return null for c.Ports / c.Labels / c.Names
in the listContainers response (Linux returns empty array/object). The
mapping in discoverServices() assumed array, so .filter() crashed and the
refresh loop kept retrying every 5s, filling the logs.

Closes #7
2026-05-18 17:06:53 +00:00
RGJorge 6fd4440b7a v0.1.8 — in-app update notifications
- Header indicator (pulsating dot + "NEW VERSION") when a newer release
  is published on GitHub. Replaces the version subtitle without growing
  the header.
- Modal with current → latest version, release notes preview (parsed
  from GitHub release body), copy-paste update command, link to repo
  and release notes, current star count, and "versions behind" badge.
- Auto-detects deploy mode (GHCR image vs source build) by inspecting
  the running container. Shows the matching update command, but always
  exposes both via tabs.
- Backend caches the GitHub API response for 6h (~8 calls/day per
  instance, far under the rate limit).
2026-05-17 20:24:47 +00:00
RGJorge 61472e4e04 v0.1.7 — group color picker + centered layout
- New: per-project color picker (palette popover, 6 colors, persisted)
- Layout: groups center their content horizontally + vertically; drag-end recenters and keeps margins symmetric
- Layout: COMPOSE_FILE merges (multi-file) resolve to the override file as the compose key
- UI: standalone group renamed to "docker" with Container icon; compose suffix hidden
- UI: group footer shows compose filename with hover tooltip when truncated
- UI: styled tooltips for header buttons (rename, reset, color)
2026-05-16 04:43:17 +00:00
RGJorge b079422de8 v0.1.6 — project aliases (closes #3)
Adds human-readable aliases for project groups (the wrapping label
around services), useful when orchestrators like Coolify or Dokploy
generate cryptic project keys.

- New server module `src/server/project-aliases.ts` with load/save
  helpers, a 64-char max, and control-char sanitization.
- New endpoints: GET /api/project-aliases, PUT /api/project-aliases,
  DELETE /api/project-aliases/:project. Aliases also returned in
  /api/init for first-paint hydration.
- GroupNode header is now click-to-edit: short names prefill so users
  can tweak them, long cryptic names start blank for a fresh alias.
  The compose suffix (PROD/DEV/etc) stays visible and is not part of
  the alias. Reset icon appears only when an alias differs from the
  original project key.
- App.tsx wires the alias state, the project filter dropdown shows
  the alias plus the compose suffix list joined by " - ".
- MonitoringPage uses the alias in: project filter dropdown, the
  totals card title, and per-service card subtitles (which show only
  THAT service's compose, not the whole project list).
- engine/layout.ts exports getComposeKey and stores the raw `project`
  key in group node data so the same alias scope matches the filter.
- i18n: 4 new keys (EN + ES) for rename / reset / save / cancel.
2026-05-16 03:16:43 +00:00
RGJorge 71b8f94e21 v0.1.5 — export graph as PNG (closes #4)
Adds a download button to the bottom-left React Flow controls that
exports the current canvas view as a PNG with the dot grid preserved.

- New util src/client/utils/exportPng.ts: html-to-image capture +
  manual canvas composition (solid bg + dot grid + captured layer).
  Works around html-to-image's SVG <pattern> limitations and produces
  a deterministic 3x retina PNG.
- During capture, temporary CSS disables ring-shadow halos and forces
  service node bodies to a solid dark fill so the dot grid doesn't
  bleed through. State is still indicated by border colors and the
  inner state dot. Group node headers are excluded so their outlines
  stay intact.
- New component src/client/components/ExportPngButton.tsx integrated
  as a custom ControlButton inside <Controls> (bottom-left).
- App.tsx: id="dashboard-canvas" + data-no-export on project filter.
- i18n: 4 keys (EN + ES) for the button and 3 error states.
- New dependency: html-to-image@1.11.13
2026-05-16 02:08:22 +00:00
RGJorge 2a660c1828 v0.1.4 — prebuilt Docker image on GHCR (closes #5)
Adds a GitHub Actions workflow that builds and pushes the Docker image
to ghcr.io/rgjorge/containerflow on every tag push, so end users can run
ContainerFlow without cloning the repo or building locally.

- New workflow: .github/workflows/docker-release.yml
- docker-compose.yml: uses the prebuilt image from GHCR by default
- New docker-compose.local.yml: override for building from source (devs)
- .env.example: simplified + adds COMPOSE_FILE toggle for local build
- README EN + ES: quick-start updated to no-clone flow
- .gitignore: ignore task/ planning notes dir
2026-05-16 01:26:28 +00:00
RGJorge dd6d2599f0 v0.1.3 — English README as primary, Spanish preserved as README.es.md
Addresses feedback from multiple reviewers on the launch thread asking
for non-Spanish primary documentation. Also adds a framing quote from
community feedback (u/dashingsauce on Reddit) that captures the project
positioning better than prior phrasing.

- README.md now in English with language switcher to Spanish version
- README.es.md preserves the original Spanish content with switcher to English
- Added missing references in structure section (i18n.tsx, watcher.test.ts, events-db.ts)
- Added Discussions link to community section
2026-05-12 17:28:22 +00:00
RGJorge 1273ff6f01 v0.1.2 — dynamic CI status badge in README
Swap the static "tests-37-passing" badge for the live GitHub Actions badge
now that CI is back online. README visitors see the real build status.
2026-05-12 02:46:11 +00:00
RGJorge 0038a7f20d v0.1.1 — fix UI overflow with long container/project names
Closes #1

- ServiceNode: cap card width at 240px, native tooltip on name and image
- App: project filter dropdown capped at 280px with scroll, names truncate
- DetailPanel header: proper flex layout (min-w-0 flex-1 + shrink-0),
  Tooltip with (?) shows full name on hover; same fix for logs modal header
- Re-enable CI workflow (was paused for GitHub billing)
2026-05-12 02:40:50 +00:00
RGJorge 396873ae87 v0.1.0 — Repositorio público 2026-05-11 03:02:14 +00:00
RGJorge 77da10bfde v0.0.34 2026-05-11 01:14:22 +00:00
RGJorge 3d544673ff v0.0.33 2026-05-11 00:56:11 +00:00
RGJorge 17e805d0fc v0.0.32 2026-05-11 00:30:55 +00:00
RGJorge 6cb5bc8e34 v0.0.31 2026-05-11 00:15:38 +00:00
RGJorge 3962e6c319 v0.0.30 2026-05-10 23:39:12 +00:00
RGJorge 713504dc65 v0.0.29 2026-05-10 20:49:06 +00:00
RGJorge 0ebe000a26 v0.0.28 2026-05-08 17:41:23 +00:00
RGJorge 1ae4b45007 v0.0.27 2026-05-08 05:51:14 +00:00
RGJorge e350b834b8 v0.0.26 2026-05-08 03:05:35 +00:00
RGJorge 10c7d6e530 v0.0.25 2026-05-08 02:50:17 +00:00
RGJorge 1ee37368bd v0.0.24 2026-05-08 02:19:45 +00:00
RGJorge 9e1dadafe7 v0.0.23 2026-05-07 23:58:10 +00:00
RGJorge 8c91dcfd5a v0.0.22 2026-05-07 23:43:38 +00:00
RGJorge 5872eff157 v0.0.21 2026-05-07 22:09:10 +00:00
RGJorge d18a459a57 v0.0.20 2026-05-04 02:43:11 +00:00
RGJorge 36080e466b v0.0.19 2026-05-04 00:51:17 +00:00
RGJorge 613495b7c2 v0.0.18 2026-05-04 00:07:06 +00:00
RGJorge ca391c97c3 v0.0.17 2026-05-03 23:47:38 +00:00
RGJorge 019a48c89e v0.0.16 2026-05-02 23:00:53 +00:00
RGJorge 5225c1aeda v0.0.15 2026-05-02 04:54:20 +00:00
RGJorge 37a81952c6 v0.0.14 2026-05-02 04:53:08 +00:00
RGJorge 49c4cde4d7 v0.0.13 2026-05-02 03:36:34 +00:00
RGJorge c034d282f6 v0.0.12 2026-05-02 01:26:59 +00:00
RGJorge afe99108b2 v0.0.11 2026-05-02 00:44:13 +00:00
RGJorge f055489d81 v0.0.10 2026-05-01 06:12:24 +00:00
RGJorge c6da792e4b v0.0.9 2026-05-01 04:55:52 +00:00
RGJorge cb25260627 v0.0.8 2026-04-30 04:05:03 +00:00
RGJorge 0aa33957c3 v0.0.7 + license 2026-04-29 21:41:49 +00:00
RGJorge 7bd9ed207f v0.0.6 2026-04-09 21:50:42 +00:00
RGJorge 8001bbf582 v0.0.5 2026-03-22 11:12:02 +00:00
RGJorge b894e39f39 v0.0.4 2026-03-22 11:07:24 +00:00
RGJorge 682f4bb910 v0.0.3 2026-03-22 11:05:07 +00:00
RGJorge cd7786ef66 v0.0.2 2026-03-22 10:31:19 +00:00
RGJorge 8703f28856 v0.0.1 2026-03-22 09:53:08 +00:00