|
| 1 | +# CLAUDE.md — Javabin App Template |
| 2 | + |
| 3 | +GitHub template repository for creating new services on the Javabin platform. |
| 4 | + |
| 5 | +## What This Template Provides |
| 6 | + |
| 7 | +| File | Purpose | |
| 8 | +|------|---------| |
| 9 | +| `app.yaml` | Platform service configuration — compute, routing, resources, auth | |
| 10 | +| `Dockerfile` | Multi-stage build (Java/Temurin by default, adapt for your runtime) | |
| 11 | +| `README.md` | Starter README with getting-started steps | |
| 12 | + |
| 13 | +## How to Use |
| 14 | + |
| 15 | +1. Click **"Use this template"** on GitHub to create a new repo under `javaBin/` |
| 16 | +2. Edit `app.yaml` — set your service name, team, compute settings, routing, and any resources |
| 17 | +3. Register your app by opening a PR to [javaBin/registry](https://github.com/javaBin/registry) with `apps/{name}.yaml` |
| 18 | +4. Push to `main` — the platform CI builds, plans, reviews, and deploys automatically |
| 19 | + |
| 20 | +## app.yaml Fields |
| 21 | + |
| 22 | +- `name` — service name (required, lowercase + hyphens, max 20 chars) |
| 23 | +- `team` — owning team, must exist in the registry (required) |
| 24 | +- `compute` — CPU, memory, port, desired count, health check path |
| 25 | +- `routing` — hostname under `javazone.no` and ALB priority |
| 26 | +- `resources` — S3 buckets, DynamoDB tables, Secrets Manager secrets, SQS queues |
| 27 | +- `auth` — Cognito integration: `internal`, `external`, `both`, or `none` |
| 28 | +- `environment` — custom environment variables |
| 29 | +- `budget_alert_nok` — monthly budget alert threshold in NOK |
| 30 | + |
| 31 | +Full reference: [app.yaml reference](https://github.com/javaBin/platform/blob/main/docs/app-yaml-reference.md) |
| 32 | + |
| 33 | +## Dockerfile |
| 34 | + |
| 35 | +The default Dockerfile uses `eclipse-temurin:21` for a Java/Maven project. Replace it with your own if you use a different runtime (Node.js, Go, Python, etc.). |
| 36 | + |
| 37 | +## CI |
| 38 | + |
| 39 | +This template does not include a workflow file. The platform's reusable workflow is called from `javaBin/platform/.github/workflows/javabin.yml`. Your repo just needs to be registered — CI is automatic. |
| 40 | + |
| 41 | +## Related |
| 42 | + |
| 43 | +- [javaBin/platform](https://github.com/javaBin/platform) — shared infrastructure and reusable modules |
| 44 | +- [javaBin/registry](https://github.com/javaBin/registry) — app and team registration |
| 45 | +- [javaBin/javabin-cli](https://github.com/javaBin/javabin-cli) — `javabin register` automates registration |
0 commit comments