DUBSOFT Monorepo
This repository is a root wrapper around two child applications:
POCSite: Next.js application with Prisma-backed persistencePOCGraphGen: Bun/TypeScript pipeline service
The stack is orchestrated from the root with Docker Compose and runs all services on a shared Docker network:
poc-site: web app onhttp://localhost:3000poc-graph-gen: pipeline service onhttp://localhost:3001poc-db: PostgreSQL database onlocalhost:5432
Repository Layout
.
├── POCGraphGen/
├── POCSite/
├── .env.example
├── .gitmodules
└── compose.yml
Prerequisites
- Docker
- Docker Compose
- Git
Setup
- Create a local environment file:
cp .env.example .env
- Edit
.envand set at minimum:
ENCRYPTION_KEY- one LLM provider key for
POCGraphGensuch asOPENROUTER_API_KEY,OPENAI_API_KEY, orANTHROPIC_API_KEY
- Start the stack:
docker compose up --build
Services
poc-site
- Source:
POCSite/ - Host URL:
http://localhost:3000 - Connects to Postgres through
DATABASE_URL - Calls the pipeline service over the internal Docker network
poc-graph-gen
- Source:
POCGraphGen/ - Host URL:
http://localhost:3001 - Internal service URL from other containers:
http://poc-graph-gen:3000 - Requires at least one configured LLM provider credential
poc-db
- Image:
postgres:16-alpine - Host port:
5432 - Data is persisted in the
poc-db-dataDocker volume
Common Commands
Start in the foreground:
docker compose up --build
Start in the background:
docker compose up --build -d
Stop the stack:
docker compose down
Stop the stack and remove volumes:
docker compose down -v
Git Submodules
Both child projects are registered as git submodules from the root repository.
Current note:
- the submodule URLs are local paths right now, so this setup is correct for this machine but not yet portable for fresh clones from another machine
If you later add remotes for POCSite and POCGraphGen, update .gitmodules to point at those repository URLs.
Description