Skip to content

Releases: govtech42/devtools

Support group v0.1.0 — Planka, Chatwoot (WhatsApp)

Choose a tag to compare

@govtech42 govtech42 released this 26 Jun 01:14
1928f88

Support group — v0.1.0

Planka (kanban) + Chatwoot (helpdesk, WhatsApp Cloud API) on one AWS Lightsail
8 GB host; Chatwoot's own Redis + MinIO attachments; per-group reporting
(FDW views + PostgREST + Adminer); Caddy auto-TLS; N2. Merged via PR #2.

Verified locally (Colima): 14/14 smoke. Chatwoot runs the official image locally;
the fork (code42/chatwoot, += Kanban) builds off-host → GHCR at deploy.

Deploy-time: fork → GHCR; provision host + DNS/TLS; WhatsApp Cloud API channel
in the Chatwoot UI.

Changelog — Support

  • feat(support): Planka + Chatwoot stack (Redis + MinIO) on shared Postgres
  • feat(support reporting): Planka + Chatwoot FDW views + PostgREST/Adminer
  • feat(support): Chatwoot fork Dockerfile (deferred submodule) + RUNBOOK section
  • Add Support group design spec (Planka + Chatwoot, WhatsApp, MinIO)
  • Add implementation plan for Support group (Planka, Chatwoot)

Platform / shared (PR #2)

  • refactor(postgres): group-driven APP_DBS + pgvector base
  • feat(cli): bin/devtools single entrypoint (init / up|down|smoke|reporting --)
  • fix(cli): trim devtools help to the comment block
  • docs(recipes)+skill: capture recurring gotchas for future installs
  • docs: essential repo + .claude markdown
  • chore(conductor): add .conductor/settings.toml (setup/run/archive, nonconcurrent)
  • decision: ingress = Caddy, not Traefik (record rationale + reconsider triggers)
  • roadmap: add Admin group (Twenty CRM, shared Postgres) to backlog

Monitoring group v0.1.0 — Beszel

Choose a tag to compare

@govtech42 govtech42 released this 26 Jun 01:14
5737e4d

Monitoring group — v0.1.0

Beszel (hub + agent) on a lean AWS Lightsail (~2 GB) host. Hub uses its own
SQLite/PocketBase store (no shared Postgres); status.code42.dev via Caddy; N2.
Agents behind the agents compose profile (off by default); remote agents on the
other hosts are cross-host and deferred. Merged via PR #3.

Verified locally (Colima): smoke green (hub /api/health, N2).

Deploy-time: provision host + DNS/TLS; pair agents with the hub key (incl. remote
hosts).

Changelog

  • feat(monitoring): Beszel group (hub + agent profile)

Admin group v0.1.0 — Twenty CRM

Choose a tag to compare

@govtech42 govtech42 released this 26 Jun 01:14
1928f88

Admin group — v0.1.0

Twenty CRM (server + worker + Redis) on the shared Postgres, one AWS Lightsail 8 GB
host. Per-group reporting infra present; curated Twenty views deferred
(metadata-driven dynamic schema) — use Twenty's native GraphQL/REST API. Caddy
auto-TLS; N2. Merged via PR #2.

Verified locally (Colima): 11/11 smoke (server migrated 24 tables, worker, PostgREST).
Captured gotchas (now reusable Postgres-init conventions): apps that self-create
their DB need CREATEDB; non-trusted extensions (vector) pre-created as superuser.

Deploy-time: provision host + DNS/TLS.

Changelog — Admin

  • feat(admin): deploy/admin base (Caddy+Postgres APP_DBS=twenty) + group-aware smoke/build
  • feat(admin/twenty): Twenty CRM stack (server+worker+redis) on shared Postgres
  • feat(admin): PostgREST + Adminer; admin spec + RUNBOOK section
  • roadmap: add Admin group (Twenty CRM, shared Postgres) to backlog

Platform / shared (PR #2)

  • refactor(postgres): group-driven APP_DBS + pgvector base
  • feat(cli): bin/devtools single entrypoint (init / up|down|smoke|reporting --)
  • fix(cli): trim devtools help to the comment block
  • docs(recipes)+skill: capture recurring gotchas for future installs
  • docs: essential repo + .claude markdown
  • chore(conductor): add .conductor/settings.toml (setup/run/archive, nonconcurrent)
  • decision: ingress = Caddy, not Traefik (record rationale + reconsider triggers)

Dev group v0.1.0 — Forgejo, Mattermost, Plane

Choose a tag to compare

@govtech42 govtech42 released this 26 Jun 01:14
94114f1

Dev group — v0.1.0

Forgejo (git), Mattermost (chat), Plane (project mgmt) on one AWS Lightsail 16 GB
host. Shared Postgres (one DB per app) + curated reporting views via postgres_fdw
exposed through PostgREST; Caddy auto-TLS; N2 network model. Merged via PR #1.

Verified locally (Colima): clean-from-zero make up → 17/17 smoke.

Deploy-time: fork code42/plane → GHCR; provision host + DNS/TLS.

Changelog

  • test+docs: clean-from-zero E2E green; RUNBOOK; resilient mattermost check
  • feat(infra): Lightsail create/destroy scripts, user-data, firewall
  • feat(plane): fork context scaffold + compose wiring (profile 'plane')
  • feat(reporting): FDW foreign tables + curated views + PostgREST + Adminer
  • feat(mattermost): chat on shared Postgres (amd64 via buildx locally)
  • feat(forgejo): git hosting on shared Postgres
  • feat(caddy): TLS reverse proxy for git/chat/plane subdomains
  • feat(postgres): fdw image + init (per-app DBs, roles, reporting)
  • feat(apps): compose base (Caddy+Postgres), env template, test harness
  • Restructure to multi-host group model (Dev/Support/Monitoring)
  • Add implementation plan for Dev group (Forgejo, Mattermost, Plane)
  • Size host to Lightsail 16GB; full Plane stack; Planka/Chatwoot as phase 2
  • Pivot to AWS Lightsail; restructure into infra/ and per-app apps/
  • Add CLAUDE.md: Karpathy doctrines + Heroku/twelve-factor deploy logic
  • Add VPS dev tools design spec