CodeIssuesDiscussionsWikiPull RequestsProjectsCommitsActionsReleasesContributorsPulse● GatesSecuritySettingsDeploymentsPipelineInsightsAgents✨ Explain✨ Ask AI✨ Workspace✨ Spec✨ Tests▓ Debt Map✨ NL Search🏛 Archaeology
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | # LAUNCH TODAY — exact steps to get GlueCron live
The app is deploy-ready. Tests pass (76/76). Boot verified. Migrations included. Dockerfile + Railway + Fly configs shipped.
You need **two secrets** and **one deploy command**. That's it.
---
## A. What you need (3 minutes)
1. **Neon Postgres database** — free tier at https://neon.tech
- Create a project → copy the "pooled" connection string.
- This becomes `DATABASE_URL`.
2. **Anthropic API key** — https://console.anthropic.com
- Create a key → `ANTHROPIC_API_KEY` (optional: all AI features gracefully degrade without it, but you'll want this for the differentiator features).
3. **A deploy target** — pick one:
- Railway (easiest, `railway.toml` already configured)
- Fly.io (has `fly.toml` with persistent volume for git repos)
- Any Docker host (Render, Koyeb, DO App Platform, a VPS — `Dockerfile` works anywhere)
---
## B. Railway (fastest path — ~5 minutes)
```bash
# 1. Install Railway CLI (one-time)
npm i -g @railway/cli
# 2. From the repo root
railway login
railway link # create or pick a project
railway variables set DATABASE_URL="postgresql://..."
railway variables set ANTHROPIC_API_KEY="sk-ant-..."
railway up # builds Dockerfile, runs db:migrate via releaseCommand, starts server
```
Railway gives you a live URL like `https://gluecron-production.up.railway.app`.
Add your custom domain (`gluecron.com`) in the Railway dashboard → Settings → Networking.
---
## C. Fly.io (persistent volume for git repos — ~8 minutes)
```bash
# 1. Install flyctl (one-time)
curl -L https://fly.io/install.sh | sh
# 2. From the repo root
fly auth login
fly launch --no-deploy # accepts existing fly.toml
fly volumes create gluecron_repos --size 10 --region lhr
fly secrets set DATABASE_URL="postgresql://..."
fly secrets set ANTHROPIC_API_KEY="sk-ant-..."
fly deploy
```
Fly gives you `https://gluecron.fly.dev`. Point your domain with:
```bash
fly certs add gluecron.com
```
---
## D. Any Docker host
```bash
docker build -t gluecron .
docker run -d \
-p 3000:3000 \
-e DATABASE_URL="postgresql://..." \
-e ANTHROPIC_API_KEY="sk-ant-..." \
-v gluecron_repos:/app/repos \
gluecron
# Run migrations once:
docker run --rm \
-e DATABASE_URL="postgresql://..." \
gluecron bun run db:migrate
```
---
## E. First-boot checklist (after deploy)
1. Visit `https://your-url/healthz` → `{"ok":true,...}`
2. Visit `https://your-url/readyz` → `{"ok":true}` (confirms DB connectivity)
3. Visit `https://your-url/register` → create the first admin account
4. Visit `https://your-url/new` → create a repo (auto-configures with green defaults)
5. Clone it: `git clone https://your-url/<owner>/<repo>.git` — confirms Smart HTTP works
6. Push a commit → post-receive hook fires GateTest + secret scan + webhook fan-out
---
## F. Custom domain (gluecron.com)
DNS:
- `A` or `CNAME` → your deploy host (Railway / Fly / Docker box)
- If using Railway, they issue the cert automatically
- If using Fly, run `fly certs add gluecron.com` after DNS is pointed
- If using a VPS, terminate TLS with Caddy / nginx / Cloudflare in front
---
## G. Post-launch hardening (day 1–3)
These are already shipped and will just start working:
- ✅ Rate limiting (`/api/*` 120/min, `/login` 20/min, `/register` 10/min)
- ✅ Health + readiness + metrics endpoints
- ✅ Request-ID tracing on every response
- ✅ Secret scanner on every push
- ✅ AI security review on every push (if `ANTHROPIC_API_KEY` set)
- ✅ Auto-repair engine (if `ANTHROPIC_API_KEY` set)
- ✅ CODEOWNERS auto-sync
- ✅ Notifications + dashboard + audit log
Observability you might want to add later (Block F in BUILD_BIBLE.md):
- Ship `/metrics` to Grafana / Datadog / Prometheus
- Wire error tracking (Sentry) — one-file addition
- Email digests (currently in-app only)
---
## H. What fails gracefully if you skip secrets
| Missing | Effect |
|---|---|
| `DATABASE_URL` | App boots, `/healthz` returns 200, any DB route returns 500. Don't deploy without it. |
| `ANTHROPIC_API_KEY` | All AI features return safe fallback strings. Site fully usable as a git host. |
| `GATETEST_API_KEY` | GateTest integration silently skipped. Local gates still run. |
---
## I. If anything goes wrong
- Check `/readyz` — tells you if DB is reachable.
- Check `/metrics` — process health snapshot.
- Container logs show every request with latency + status.
- Every request has `X-Request-Id` header — grep logs by that ID.
- `bun test` in the container proves the build is sound.
|