# go-mad A web application for managing tenant database connections and running migration scripts. | | | | --- | --- | | Module | github.com/dnoulet/go-mad · go 1.27.1 · 4 Go files | | Endpoints | 0 endpoints | | Components | 0 component directories | | Tests | none detected | | Go lines | 362 lines | > Everything between the generated markers is rewritten by every sync. Notes written outside the markers are kept. ## For Users ### What this application does A web application for managing tenant database connections and running migration scripts. The project ships its own README at `docs/README.md`, which is the long form of this page. The three audience tabs split the same facts three ways so you only read the part that concerns you. ### Reading this in go-doc Open the page and pick the tab that matches you: - **User** — you use the finished application. This section is all you need. - **Operator** — you run it. Configuration, ports and deployment notes are under that tab. - **Developer** — you integrate with it or change it. The API and layout tables are under that tab. The feedback panel stores a note per audience, tagged with your badge, so operators and developers can see which audience raised it. ### Where the original documentation lives This project already carries 3 Markdown documents. They stay in the project repository: this page points at them instead of copying them, so there is always exactly one copy of the truth. | Document | Size | | --- | --- | | `docs/README.md` | 3197 bytes | | `docs/installation.md` | 1600 bytes | | `docs/operations.md` | 2193 bytes | --- ## For Operators ### Running it locally The root Makefile defines 6 targets: - `make compose-logs` - `make docker-build` - `make docker-push` - `make integration-test` - `make run` - `make web-build` ### Local containers The compose file defines these services: | Service | Image | Published ports | | --- | --- | --- | | postgres | `postgres:15-alpine` | internal only | | go-mad | built locally | internal only | ### Image `Dockerfile` builds from `golang:1.27.1-alpine`, `gcr.io/distroless/static-debian12:nonroot` in stages: builder and exposes 8080. ### Configuration Every environment variable found in the source or in a `.env` file: | Variable | Example | Found in | | --- | --- | --- | | `GO_MAD_DATABASE_URL` | — | source | | `GO_MAD_JWT_SECRET` | — | source | | `GO_MAD_SERVER_HOST` | — | source | | `GO_MAD_SERVER_PORT` | — | source | ### Network surface Ports referenced across the project: `8080`. ### Deployment artefacts Helm 1 chart found: - `helm/go-mad` ### Operations documentation that already exists Read these in place rather than duplicating them here: - `docs/installation.md` — Installation - `docs/operations.md` — Operations > No HTTP route registrations were detected. If this is a server, the API table is incomplete — check for routes built dynamically. --- ## For Developers ### Module layout - go.mod — module github.com/dnoulet/go-mad, go 1.27.1, 2 direct and 9 indirect dependencies ### HTTP API No route registrations were detected, which is expected for a CLI, a library or a worker. ### Direct dependencies - `github.com/jackc/pgx/v5` v5.11.0 - `gopkg.in/yaml.v3` v3.0.1 ### Directory map | Directory | Files | Lines | Likely purpose | | --- | --- | --- | --- | | `helm/` | 12 | 329 | deployment manifests | | `web/` | 8 | 355 | frontend assets | | `internal/` | 6 | 332 | unimportable application internals | | `docs/` | 3 | 0 | project documentation | | `cmd/` | 1 | 63 | binary entry points | ### Languages - **JSON** — 2 files, 976 lines - **CSS** — 1 file, 585 lines - **YAML** — 11 files, 478 lines - **Go** — 4 files, 362 lines - **Markdown** — 3 files, 349 lines - **tgz** — 1 file, 319 lines - **JSX** — 1 file, 241 lines - **TypeScript** — 1 file, 109 lines - **SQL** — 3 files, 33 lines - **HTML** — 1 file, 13 lines