diff --git a/.gitignore b/.gitignore index fec5a7f..6e99a56 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,7 @@ coverage/ # Docker build tarballs .docker-deps/ + +# docker-prep.sh artifacts +*.bak +package.json.bak diff --git a/.npmrc.docker b/.npmrc.docker index ddb268c..194598e 100644 --- a/.npmrc.docker +++ b/.npmrc.docker @@ -1 +1,4 @@ -@bytelyst:registry=http://localhost:3300/api/packages/learning_ai_user/npm/ \ No newline at end of file +@bytelyst:registry=http://${GITEA_NPM_HOST}:3300/api/packages/${GITEA_NPM_OWNER:-learning_ai_user}/npm/ +//${GITEA_NPM_HOST}:3300/api/packages/${GITEA_NPM_OWNER:-learning_ai_user}/npm/:_authToken=${GITEA_NPM_TOKEN} +strict-ssl=false +auto-install-peers=true diff --git a/backend/Dockerfile b/backend/Dockerfile index 2bcbf6d..7853fa4 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1.7 FROM node:22-slim AS builder WORKDIR /app/backend @@ -10,8 +11,11 @@ ENV NPM_CONFIG_STRICT_SSL=false RUN npm config set strict-ssl false \ && npm install -g pnpm@10.6.5 +ARG GITEA_NPM_HOST=localhost +ARG GITEA_NPM_OWNER=learning_ai_user + COPY .npmrc.docker ./.npmrc -COPY .docker-deps/ ../.docker-deps/ +COPY .docker-deps* ../.docker-deps/ COPY backend/package.json ./package.json RUN pnpm install --ignore-scripts --lockfile=false @@ -31,4 +35,4 @@ COPY --from=builder /app/backend/dist ./dist COPY shared/ ../shared/ EXPOSE 4016 -CMD ["node", "dist/server.js"] \ No newline at end of file +CMD ["node", "dist/server.js"] diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 030f642..7ab4e7b 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -10,9 +10,9 @@ # Bring up: # docker compose up -d # URLs: -# Web: http://localhost:3050 -# Backend: http://localhost:4016 -# Health: http://localhost:4016/health +# Web: http://127.0.0.1:3050 +# Backend: http://127.0.0.1:4016 +# Health: http://127.0.0.1:4016/health # Bring down: # docker compose down @@ -21,7 +21,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" environment: - CORS_ORIGIN: "http://localhost:3050" + CORS_ORIGIN: "http://127.0.0.1:3050" PLATFORM_SERVICE_URL: "http://host.docker.internal:4003" EXTRACTION_SERVICE_URL: "http://host.docker.internal:4005" MCP_SERVER_URL: "http://host.docker.internal:4007" @@ -40,12 +40,12 @@ services: # effect on the already-bundled client code. build: args: - NEXT_PUBLIC_NOTES_API_URL: "http://localhost:4016/api" - NEXT_PUBLIC_PLATFORM_SERVICE_URL: "http://localhost:4003/api" - NEXT_PUBLIC_EXTRACTION_SERVICE_URL: "http://localhost:4005" - NEXT_PUBLIC_MCP_SERVER_URL: "http://localhost:4007/api" + NEXT_PUBLIC_NOTES_API_URL: "http://127.0.0.1:4016/api" + NEXT_PUBLIC_PLATFORM_SERVICE_URL: "http://127.0.0.1:4003/api" + NEXT_PUBLIC_EXTRACTION_SERVICE_URL: "http://127.0.0.1:4005" + NEXT_PUBLIC_MCP_SERVER_URL: "http://127.0.0.1:4007/api" environment: - NEXT_PUBLIC_NOTES_API_URL: "http://localhost:4016/api" - NEXT_PUBLIC_PLATFORM_SERVICE_URL: "http://localhost:4003/api" - NEXT_PUBLIC_EXTRACTION_SERVICE_URL: "http://localhost:4005" - NEXT_PUBLIC_MCP_SERVER_URL: "http://localhost:4007/api" + NEXT_PUBLIC_NOTES_API_URL: "http://127.0.0.1:4016/api" + NEXT_PUBLIC_PLATFORM_SERVICE_URL: "http://127.0.0.1:4003/api" + NEXT_PUBLIC_EXTRACTION_SERVICE_URL: "http://127.0.0.1:4005" + NEXT_PUBLIC_MCP_SERVER_URL: "http://127.0.0.1:4007/api" diff --git a/docker-compose.yml b/docker-compose.yml index 0a5d94f..bd0d031 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,10 +17,10 @@ services: COSMOS_KEY: ${COSMOS_KEY:-} COSMOS_DATABASE: ${COSMOS_DATABASE:-bytelyst} DB_PROVIDER: ${DB_PROVIDER:-memory} - CORS_ORIGIN: ${CORS_ORIGIN:-http://localhost:3000} - PLATFORM_SERVICE_URL: ${PLATFORM_SERVICE_URL:-http://localhost:4003} - EXTRACTION_SERVICE_URL: ${EXTRACTION_SERVICE_URL:-http://localhost:4005} - MCP_SERVER_URL: ${MCP_SERVER_URL:-http://localhost:4007} + CORS_ORIGIN: ${CORS_ORIGIN:-http://127.0.0.1:3000} + PLATFORM_SERVICE_URL: ${PLATFORM_SERVICE_URL:-http://127.0.0.1:4003} + EXTRACTION_SERVICE_URL: ${EXTRACTION_SERVICE_URL:-http://127.0.0.1:4005} + MCP_SERVER_URL: ${MCP_SERVER_URL:-http://127.0.0.1:4007} TELEMETRY_ENABLED: ${TELEMETRY_ENABLED:-false} FEATURE_FLAGS_ENABLED: ${FEATURE_FLAGS_ENABLED:-false} FIELD_ENCRYPT_ENABLED: ${FIELD_ENCRYPT_ENABLED:-false} @@ -35,7 +35,7 @@ services: LLM_EMBEDDING_MODEL: ${LLM_EMBEDDING_MODEL:-text-embedding-3-small} restart: unless-stopped healthcheck: - test: ["CMD-SHELL", "node -e \"fetch('http://localhost:4016/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\""] + test: ["CMD-SHELL", "node -e \"fetch('http://127.0.0.1:4016/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\""] interval: 30s timeout: 5s retries: 3 @@ -51,11 +51,11 @@ services: # environment. The defaults below target a local stack; override # via the same-named env var on the host (the value is captured # by docker compose's ${VAR:-default} substitution). - NEXT_PUBLIC_NOTES_API_URL: ${NEXT_PUBLIC_NOTES_API_URL:-http://localhost:4016/api} - NEXT_PUBLIC_PLATFORM_SERVICE_URL: ${NEXT_PUBLIC_PLATFORM_SERVICE_URL:-http://localhost:4003/api} - NEXT_PUBLIC_EXTRACTION_SERVICE_URL: ${NEXT_PUBLIC_EXTRACTION_SERVICE_URL:-http://localhost:4005} - NEXT_PUBLIC_MCP_SERVER_URL: ${NEXT_PUBLIC_MCP_SERVER_URL:-http://localhost:4007/api} - NEXT_PUBLIC_DIAGNOSTICS_URL: ${NEXT_PUBLIC_DIAGNOSTICS_URL:-http://localhost:3000} + NEXT_PUBLIC_NOTES_API_URL: ${NEXT_PUBLIC_NOTES_API_URL:-http://127.0.0.1:4016/api} + NEXT_PUBLIC_PLATFORM_SERVICE_URL: ${NEXT_PUBLIC_PLATFORM_SERVICE_URL:-http://127.0.0.1:4003/api} + NEXT_PUBLIC_EXTRACTION_SERVICE_URL: ${NEXT_PUBLIC_EXTRACTION_SERVICE_URL:-http://127.0.0.1:4005} + NEXT_PUBLIC_MCP_SERVER_URL: ${NEXT_PUBLIC_MCP_SERVER_URL:-http://127.0.0.1:4007/api} + NEXT_PUBLIC_DIAGNOSTICS_URL: ${NEXT_PUBLIC_DIAGNOSTICS_URL:-http://127.0.0.1:3000} NEXT_PUBLIC_PRODUCT_NAME: ${NEXT_PUBLIC_PRODUCT_NAME:-NoteLett} NEXT_PUBLIC_PRODUCT_ID: ${NEXT_PUBLIC_PRODUCT_ID:-notelett} NEXT_PUBLIC_TELEMETRY_TRANSPORT: ${NEXT_PUBLIC_TELEMETRY_TRANSPORT:-fetch} @@ -65,11 +65,11 @@ services: NODE_ENV: production NEXT_PUBLIC_PRODUCT_NAME: NoteLett NEXT_PUBLIC_PRODUCT_ID: notelett - NEXT_PUBLIC_NOTES_API_URL: ${NEXT_PUBLIC_NOTES_API_URL:-http://localhost:4016/api} - NEXT_PUBLIC_PLATFORM_SERVICE_URL: ${NEXT_PUBLIC_PLATFORM_SERVICE_URL:-http://localhost:4003/api} - NEXT_PUBLIC_EXTRACTION_SERVICE_URL: ${EXTRACTION_SERVICE_URL:-http://localhost:4005} - NEXT_PUBLIC_MCP_SERVER_URL: ${MCP_SERVER_URL:-http://localhost:4007}/api - NEXT_PUBLIC_DIAGNOSTICS_URL: ${DIAGNOSTICS_URL:-http://localhost:3000} + NEXT_PUBLIC_NOTES_API_URL: ${NEXT_PUBLIC_NOTES_API_URL:-http://127.0.0.1:4016/api} + NEXT_PUBLIC_PLATFORM_SERVICE_URL: ${NEXT_PUBLIC_PLATFORM_SERVICE_URL:-http://127.0.0.1:4003/api} + NEXT_PUBLIC_EXTRACTION_SERVICE_URL: ${EXTRACTION_SERVICE_URL:-http://127.0.0.1:4005} + NEXT_PUBLIC_MCP_SERVER_URL: ${MCP_SERVER_URL:-http://127.0.0.1:4007}/api + NEXT_PUBLIC_DIAGNOSTICS_URL: ${DIAGNOSTICS_URL:-http://127.0.0.1:3000} NEXT_PUBLIC_TELEMETRY_TRANSPORT: fetch depends_on: backend: diff --git a/web/Dockerfile b/web/Dockerfile index 40185cf..5c97725 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -1,7 +1,9 @@ +# syntax=docker/dockerfile:1.7 FROM node:22-slim AS builder WORKDIR /app/web ARG GITEA_NPM_HOST +ARG GITEA_NPM_OWNER=learning_ai_user ENV NODE_TLS_REJECT_UNAUTHORIZED=0 ENV NPM_CONFIG_STRICT_SSL=false ENV GITEA_NPM_HOST=$GITEA_NPM_HOST @@ -10,14 +12,11 @@ RUN npm config set strict-ssl false \ && npm install -g pnpm@10.6.5 COPY .npmrc.docker ./.npmrc -COPY .docker-deps/ ../.docker-deps/ +COPY .docker-deps* ../.docker-deps/ COPY web/package.json ./package.json RUN pnpm install --ignore-scripts --lockfile=false -COPY web/next.config.ts ./next.config.ts -COPY web/tsconfig.json ./tsconfig.json -COPY web/next-env.d.ts ./next-env.d.ts -COPY web/postcss.config.mjs ./postcss.config.mjs +COPY web/*.json web/*.ts web/*.mjs ./ COPY web/src/ ./src/ COPY shared/ ../shared/