build: Set up the monorepo workspace. Ensure the root README describes a pro...
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This commit is contained in:
parent
8928bd8225
commit
4416aaf6d9
20
Dockerfile
20
Dockerfile
@ -1,8 +1,22 @@
|
|||||||
# Default Dockerfile - replace with your application
|
# Stage 1: Install dependencies and build
|
||||||
|
FROM node:18-alpine AS build
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package.json package-lock.json* ./
|
||||||
|
COPY packages/shared/package.json ./packages/shared/
|
||||||
|
COPY packages/web/package.json ./packages/web/
|
||||||
|
|
||||||
|
RUN npm install --ignore-scripts
|
||||||
|
|
||||||
|
COPY packages/ ./packages/
|
||||||
|
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# Stage 2: Serve
|
||||||
FROM nginx:alpine
|
FROM nginx:alpine
|
||||||
|
|
||||||
# Copy static files or your app
|
COPY --from=build /app/packages/web/dist /usr/share/nginx/html/
|
||||||
COPY . /usr/share/nginx/html/
|
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
|
|||||||
52
README.md
52
README.md
@ -1,19 +1,49 @@
|
|||||||
# foundary-1770666514
|
# Foundary
|
||||||
|
|
||||||
Deployed at: https://ks9ftyd2.threesix.ai
|
Foundary is a product studio for conversational product development. It provides the tools and infrastructure to go from idea to shipped product through structured conversation — turning dialogue into design decisions, code, and deployable artifacts.
|
||||||
|
|
||||||
## Getting Started
|
## How it works
|
||||||
|
|
||||||
1. Clone the repository
|
1. **Converse** — Describe what you want to build in plain language. Foundary captures intent, constraints, and requirements through iterative dialogue.
|
||||||
2. Build with Docker: `docker build -t foundary-1770666514 .`
|
2. **Shape** — Conversations produce concrete specs, wireframes, and architecture decisions stored as version-controlled artifacts.
|
||||||
3. Run locally: `docker run -p 8080:8080 foundary-1770666514`
|
3. **Build** — Specs flow into implementation. Shared libraries, components, and business logic live in a unified monorepo so everything stays in sync.
|
||||||
|
4. **Ship** — Every push to `main` triggers an automated build and deployment pipeline. Products go live continuously.
|
||||||
|
|
||||||
## CI/CD
|
## Repository structure
|
||||||
|
|
||||||
This project uses Woodpecker CI for continuous deployment. Pushing to `main` will:
|
This is an npm workspaces monorepo. All packages live under `packages/`:
|
||||||
- Build a Docker image
|
|
||||||
- Push to the container registry
|
```
|
||||||
- Deploy to Kubernetes
|
packages/
|
||||||
|
shared/ — shared types, utilities, and constants (@foundary/shared)
|
||||||
|
web/ — web application (@foundary/web)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Getting started
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install all dependencies
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# Run all workspaces in dev mode
|
||||||
|
npm run dev
|
||||||
|
|
||||||
|
# Build all workspaces
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# Run tests across all workspaces
|
||||||
|
npm run test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
Pushes to `main` trigger automatic deployment via Woodpecker CI:
|
||||||
|
|
||||||
|
1. Build Docker image
|
||||||
|
2. Push to container registry
|
||||||
|
3. Update Kubernetes deployment
|
||||||
|
|
||||||
|
Live at: https://ks9ftyd2.threesix.ai
|
||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
|
|||||||
18
package.json
Normal file
18
package.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "foundary",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"description": "Foundary — a product studio for conversational product development",
|
||||||
|
"workspaces": [
|
||||||
|
"packages/*"
|
||||||
|
],
|
||||||
|
"scripts": {
|
||||||
|
"build": "npm run build --workspaces --if-present",
|
||||||
|
"dev": "npm run dev --workspaces --if-present",
|
||||||
|
"lint": "npm run lint --workspaces --if-present",
|
||||||
|
"test": "npm run test --workspaces --if-present"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
}
|
||||||
|
}
|
||||||
12
packages/shared/package.json
Normal file
12
packages/shared/package.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "@foundary/shared",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"description": "Shared types, utilities, and constants for Foundary",
|
||||||
|
"main": "src/index.js",
|
||||||
|
"scripts": {
|
||||||
|
"build": "echo 'No build configured yet'",
|
||||||
|
"lint": "echo 'No linter configured yet'",
|
||||||
|
"test": "echo 'No tests configured yet'"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
packages/shared/src/index.js
Normal file
1
packages/shared/src/index.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
// @foundary/shared — shared types, utilities, and constants
|
||||||
15
packages/web/package.json
Normal file
15
packages/web/package.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "@foundary/web",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"description": "Foundary web application",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "echo 'No dev server configured yet'",
|
||||||
|
"build": "echo 'No build configured yet'",
|
||||||
|
"lint": "echo 'No linter configured yet'",
|
||||||
|
"test": "echo 'No tests configured yet'"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@foundary/shared": "*"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
packages/web/src/index.js
Normal file
1
packages/web/src/index.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
// @foundary/web — web application entry point
|
||||||
Loading…
Reference in New Issue
Block a user