feat(infra,database): DO deploy + memory schema
infra: Dockerfile (backend from monorepo root) + DigitalOcean App Platform spec with health check and secret env vars. database: MongoDB Atlas + Voyage vector-memory schema and the continual-learning loop notes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# PodMan backend agent — built from the monorepo root.
|
||||
# Build: docker build -f infra/Dockerfile -t podman-backend .
|
||||
FROM node:24-slim AS base
|
||||
ENV PNPM_HOME=/pnpm
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
RUN corepack enable
|
||||
WORKDIR /app
|
||||
|
||||
# Install workspace deps (cached on lockfile)
|
||||
FROM base AS deps
|
||||
COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
|
||||
COPY shared/package.json shared/
|
||||
COPY backend/package.json backend/
|
||||
RUN pnpm install --frozen-lockfile
|
||||
|
||||
# Build shared + backend
|
||||
FROM deps AS build
|
||||
COPY . .
|
||||
RUN pnpm --filter @podman/shared build && pnpm --filter @podman/backend build
|
||||
|
||||
# Runtime
|
||||
FROM base AS runtime
|
||||
ENV NODE_ENV=production
|
||||
COPY --from=build /app /app
|
||||
EXPOSE 8787
|
||||
CMD ["node", "backend/dist/index.js"]
|
||||
@@ -0,0 +1,22 @@
|
||||
# infra
|
||||
|
||||
Deploy targets for PodMan (DigitalOcean prize track).
|
||||
|
||||
- `Dockerfile` — builds the backend agent from the monorepo root.
|
||||
- `app.yaml` — DigitalOcean App Platform spec (auto-deploy on push to `main`).
|
||||
|
||||
## Local container
|
||||
|
||||
```bash
|
||||
docker build -f infra/Dockerfile -t podman-backend .
|
||||
docker run --env-file .env -p 8787:8787 podman-backend
|
||||
```
|
||||
|
||||
## DigitalOcean
|
||||
|
||||
```bash
|
||||
doctl apps create --spec infra/app.yaml
|
||||
```
|
||||
|
||||
Set the `SECRET` env vars (LiveKit, Gemini, GitHub, Atlas, Voyage) in the DO
|
||||
dashboard or via `doctl` after the app is created.
|
||||
@@ -0,0 +1,26 @@
|
||||
# DigitalOcean App Platform spec for the PodMan backend.
|
||||
# Deploy: doctl apps create --spec infra/app.yaml
|
||||
name: podman
|
||||
region: nyc
|
||||
services:
|
||||
- name: backend
|
||||
dockerfile_path: infra/Dockerfile
|
||||
source_dir: /
|
||||
github:
|
||||
repo: karti-ai/podman
|
||||
branch: main
|
||||
deploy_on_push: true
|
||||
http_port: 8787
|
||||
instance_size_slug: basic-xxs
|
||||
instance_count: 1
|
||||
health_check:
|
||||
http_path: /health
|
||||
envs:
|
||||
- { key: LIVEKIT_URL, scope: RUN_TIME }
|
||||
- { key: LIVEKIT_API_KEY, scope: RUN_TIME, type: SECRET }
|
||||
- { key: LIVEKIT_API_SECRET, scope: RUN_TIME, type: SECRET }
|
||||
- { key: GEMINI_API_KEY, scope: RUN_TIME, type: SECRET }
|
||||
- { key: GITHUB_TOKEN, scope: RUN_TIME, type: SECRET }
|
||||
- { key: GITHUB_REPO, scope: RUN_TIME }
|
||||
- { key: MONGODB_URI, scope: RUN_TIME, type: SECRET }
|
||||
- { key: VOYAGE_API_KEY, scope: RUN_TIME, type: SECRET }
|
||||
Reference in New Issue
Block a user