Date: 2026-03-20
The project has reached a deployment-bounded and reviewable state with the core product flow and OCR ingestion flow verified end to end in the local Docker runtime. It is not yet production-ready because one real Linux host deployment rehearsal is still pending, although the Linux-executable rehearsal package is now included in the repository.
- Deployment mode:
Docker + host Nginx - Runtime target:
Java 21 - Topology: same-host split containers / stacks
- Internal ports:
8081 / 5432 / 6379 / 9000 / 9001 / 8088 / 8090 - Public ports: only
80 / 443 - External dependencies bounded:
- project backend stack
- Dify self-hosted stack
- MinIO
- Project stack now directly includes:
serverpostgresredisminioocr
This repository uses two Docker stacks during local verification:
- project stack:
deploy/docker-compose.yml - Dify stack:
D:\services\dify\docker\docker-compose.yaml
- Start the Dify stack
cd /d D:\services\dify\docker
docker compose up -d --build- Start the project stack
cd /d D:\Workspace\CodexProject\My_KnowledgeBase
docker compose --env-file deploy\.env -f deploy/docker-compose.yml up -d --build- Start the frontend when you need browser verification
cd /d D:\Workspace\CodexProject\My_KnowledgeBase\apps\web
npm install
npm run dev -- --host 0.0.0.0 --port 3001- Stop the project stack
cd /d D:\Workspace\CodexProject\My_KnowledgeBase
docker compose --env-file deploy\.env -f deploy/docker-compose.yml down- Stop the Dify stack
cd /d D:\services\dify\docker
docker compose down- Stop the frontend dev server
- press
Ctrl+Cin thenpm run devterminal
- Backend health:
http://127.0.0.1:8081/actuator/health - Frontend:
http://localhost:3001 - Dify API:
http://127.0.0.1:8088/v1 - If the backend runs in Docker,
DIFY_BASE_URLmust usehttp://host.docker.internal:8088/v1
- Auth
- Knowledge base management
- Document upload
- Ingestion task tracking
Dify dataset/document APIintegrationQA / chat SSE- Frontend business workbench
- Local browser-based workbench validation
- Real OCR adapter service and PDF ingestion validation
- Linux-executable smoke and rehearsal scripts
postgres / redis / minio / server / ocrare up from deploy/docker-compose.yml- Dify self-hosted stack is reachable on local
8088 http://127.0.0.1:8081/actuator/healthreturnedUPhttp://127.0.0.1:8090/healthzreturnedUP./scripts/smoke.ps1 -BaseUrl http://127.0.0.1:8081passed end to end on 2026-03-19./scripts/smoke.ps1 -BaseUrl http://127.0.0.1:8081 -RunOcrCheckpassed end to end on 2026-03-20- Frontend workbench on
http://localhost:3001was manually validated on 2026-03-20 - Linux-executable rehearsal package is available via:
- Browser flow verified:
- login
- knowledge base selection
- document upload
- ingestion task completion
- failed task retry
- failed document cleanup for duplicate recovery
- streamed QA with retrieved source display
- Real Linux host deployment rehearsal not executed yet
- OCR currently runs through the in-app async executor, which is enough for MVP but may require a dedicated worker later if OCR load grows
- QA quality still depends on the Dify completion app prompt and retrieval settings
- Duplicate document strategy is strict, although failed-document delete and failed-task retry now cover the main recovery path
- Docker image builds still rely on external package registries and may require stable outbound network on the deployment host
- MinIO backup / retention policy is not refined yet
- Execute
bash scripts/rehearse-linux.shon the target Linux host and capture output - Decide whether bulk cleanup UX is needed beyond the current single-item delete / retry path
- If deployment hosts are network-constrained, harden image build caching before release