docs(ai-new-thread): clarify master-ai is local-only; production runs from Gitea+Coolify

This commit is contained in:
2026-06-10 21:45:28 -07:00
parent cca2211b33
commit 7a69f47608

View File

@@ -39,9 +39,11 @@ graph TD
## 2. Directory Structure & Individual Git Repositories ## 2. Directory Structure & Individual Git Repositories
Your local directory `master-ai` is a **unified workspace** housing folders that map directly to **individual, independent repositories on Gitea** (`https://git.vibnai.com/mark`). > **`master-ai` is a LOCAL development workspace on Mark's Mac. It does not exist in production and is never accessed by any running cloud service.** Production runs entirely from the individual Gitea repositories → Coolify builds → running containers on `34.19.250.135`. Once a change is pushed to the matching Gitea remote, `master-ai` is completely out of the picture.
DO NOT treat `master-ai` as a single monorepo on Gitea. You must push changes inside specific directories to their matching Gitea remote targets. The local `master-ai` directory houses folders that each map to an **independent Gitea repository**. The `master-ai` git repo itself is just a convenience — a single place to commit and track changes across all sub-projects before pushing each one to its own Gitea remote.
DO NOT treat `master-ai` as a single monorepo on Gitea — it is not deployed as one. You must push changes inside specific directories to their matching Gitea remote targets.
``` ```
/Users/markhenderson/master-ai/ <-- Local Parent Directory /Users/markhenderson/master-ai/ <-- Local Parent Directory
@@ -57,25 +59,40 @@ DO NOT treat `master-ai` as a single monorepo on Gitea. You must push changes in
Remote 'coolify_telemetry_gitea' -> https://git.vibnai.com/mark/vibn-telemetry-service.git Remote 'coolify_telemetry_gitea' -> https://git.vibnai.com/mark/vibn-telemetry-service.git
``` ```
### Git Remotes Reference (Configured in `/Users/markhenderson/master-ai`): ### Git Remotes Reference (local Mac remotes — these exist only on Mark's machine):
* `coolify_agent_gitea` : `https://git.vibnai.com/mark/vibn-agent-runner.git`
* `coolify_gitea` : `https://git.vibnai.com/mark/vibn-frontend.git`
* `coolify_api_gitea` : `https://git.vibnai.com/mark/vibn-api.git`
* `coolify_telemetry_gitea` : `https://git.vibnai.com/mark/vibn-telemetry-service.git`
* `gitea` : `https://git.vibnai.com/mark/master-ai.git` *(share-only: for a coworker's local setup; **builds do NOT use this**)*
* `origin` : `https://github.com/MawkOne/master-ai.git` *(GitHub mirror)*
**How deploys actually work:** `master-ai` is a single git repo. Each cloud app builds from its **own** Gitea These are git remotes configured in the local `master-ai` repo. They are the **one-way bridge** between local development and production. Production Coolify services pull directly from the Gitea URLs; they have no knowledge of `master-ai`.
remote, from the matching subfolder. To ship a change, commit in `master-ai`, then
`git push <remote> HEAD:main` (e.g. `git push coolify_gitea HEAD:main` for vibn-frontend), then trigger the
Coolify deploy for that app (see `VIBNDEV.md`). `vibn-code` is a nested submodule with its own `.git` — commit &
push it via its own `origin`. Secret `.env*` files at the repo root are gitignored — never commit them.
**⚠️ IMPORTANT — never use `git subtree push` for these remotes.** Coolify is configured with | Remote | Gitea URL | What it deploys |
`vibn-frontend` as its **base directory**, so it expects the full `master-ai` repo at the remote root |---|---|---|
and resolves the Dockerfile at `vibn-frontend/Dockerfile`. A subtree push flattens the repo to just the | `coolify_gitea` | `https://git.vibnai.com/mark/vibn-frontend.git` | vibn-frontend (Next.js platform) |
subfolder contents, making the `vibn-frontend/` subdirectory disappear and breaking the build with | `coolify_agent_gitea` | `https://git.vibnai.com/mark/vibn-agent-runner.git` | vibn-agent-runner |
`open Dockerfile: no such file or directory`. Always use `git push <remote> HEAD:main [--force]`. | `coolify_api_gitea` | `https://git.vibnai.com/mark/vibn-api.git` | vibn-api |
| `coolify_telemetry_gitea` | `https://git.vibnai.com/mark/vibn-telemetry-service.git` | vibn-telemetry-service |
| `gitea` | `https://git.vibnai.com/mark/master-ai.git` | *(share-only — coworker local setup; **builds do NOT use this**)* |
| `origin` | `https://github.com/MawkOne/master-ai.git` | *(GitHub mirror only — not used by Coolify)* |
**The full deploy lifecycle:**
```
Local Mac (master-ai) → git push <remote> HEAD:main → Gitea repo → Coolify build → Production
↑ ↑
master-ai ends here Production begins here
```
1. Make changes in `master-ai/vibn-frontend/` (or whichever subfolder).
2. `git commit` in `master-ai`.
3. `git push coolify_gitea HEAD:main` (or relevant remote) — **this is the complete hand-off**.
4. Coolify detects the push, builds a Docker image from the Gitea repo, and deploys it.
5. `master-ai` is no longer involved. Production runs entirely from the Gitea repo + Coolify.
`vibn-code` is a nested submodule with its own `.git` — commit & push it via its own `origin`.
Secret `.env*` files at the repo root are gitignored — never commit them.
**⚠️ NEVER use `git subtree push` for these remotes.** Coolify is configured with `vibn-frontend` as its **base directory**, so it expects the full `master-ai` repo structure at the Gitea root and resolves the Dockerfile at `vibn-frontend/Dockerfile`. A subtree push flattens the repo to just the subfolder contents, making `vibn-frontend/` disappear and breaking the build with `open Dockerfile: no such file or directory`. Always use:
```bash
git push <remote> HEAD:main # normal
git push <remote> HEAD:main --force # if remote has diverged
```
### Deploying the Telemetry Service manually via Coolify UI: ### Deploying the Telemetry Service manually via Coolify UI:
Because Coolify's API strictly blocks the programmatic creation of GitHub/Gitea Apps, the Telemetry service must be linked manually once: Because Coolify's API strictly blocks the programmatic creation of GitHub/Gitea Apps, the Telemetry service must be linked manually once:
@@ -147,8 +164,14 @@ VibnCode overrides local OS actions to communicate with your cloud containers (o
```bash ```bash
git commit -m "commit message" --no-verify git commit -m "commit message" --no-verify
``` ```
3. **Push to Individual remotes**: 3. **Push to Individual remotes (the ONLY way changes reach production)**:
Always commit inside the specific project folder, and push to the matching Gitea remote (e.g., `git push coolify_agent_gitea branch-name` for `vibn-agent-runner`). Commit in `master-ai`, then push the relevant subfolder's remote. Production never reads from `master-ai` directly — the push to Gitea is the complete hand-off.
```bash
git push coolify_gitea HEAD:main # deploy vibn-frontend
git push coolify_agent_gitea HEAD:main # deploy vibn-agent-runner
git push coolify_api_gitea HEAD:main # deploy vibn-api
git push coolify_telemetry_gitea HEAD:main # deploy vibn-telemetry-service
```
--- ---