Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
5c0db9b
docs: update roadmap with container readiness phase
itisrohit Jan 16, 2026
5deaac9
chore(docker): add optimized multi-stage Dockerfiles and .dockerignore
itisrohit Jan 16, 2026
14bf21a
feat(docker): optimize docker-compose with health checks, resource li…
itisrohit Jan 16, 2026
6c54b67
fix(api): set build target to bun in package.json
itisrohit Jan 16, 2026
74f79ed
feat(root): add docker management scripts to root package.json
itisrohit Jan 16, 2026
c2b26fb
docs(plan): update container readiness status and dev-only terminology
itisrohit Jan 16, 2026
ae68136
docs: restructure documentation and add roadmap
itisrohit Jan 16, 2026
94f2b83
docs: remove old file paths after restructuring
itisrohit Jan 16, 2026
ec5b47e
docs: add CONTRIBUTING.md guide
itisrohit Jan 16, 2026
293f96b
docs: revamp README with professionally styling and banner
itisrohit Jan 16, 2026
b25c2fa
ci: add github actions workflow with bun caching and integration tests
itisrohit Jan 16, 2026
11b399b
docs(plan): prune ai references and update infrastructure details
itisrohit Jan 16, 2026
2dc9d4d
docs: refine project vision, removing marketing buzzwords and clarify…
itisrohit Jan 16, 2026
3dbee08
style: fix json formatting for biome
itisrohit Jan 16, 2026
697107b
fix(ci): remove missing init-db.sh script mount causing postgres failure
itisrohit Jan 16, 2026
5f53030
build: register test pipeline in turbo.json
itisrohit Jan 16, 2026
2afed13
style: fix turbo.json formatting for biome
itisrohit Jan 16, 2026
e649b8a
test: increase timeouts for rbac and rate-limit tests in CI
itisrohit Jan 17, 2026
80bb973
fix(test): remove duplicate variable declaration and format code
itisrohit Jan 17, 2026
9e93a57
docs(readme): refine wording for senior engineering tone
itisrohit Jan 17, 2026
1de8bf8
fix(docker): ensure uploads directory exists with correct permissions
itisrohit Jan 17, 2026
94cc5a2
test: improve stability and add debug logs for ci
itisrohit Jan 17, 2026
145a420
fix(ci): optimize rate limiting test strategy
itisrohit Jan 17, 2026
3f5ce6e
fix(docker): remove empty volumes list to fix syntax error
itisrohit Jan 17, 2026
d399581
fix(storage): align local driver path with container-ready environment
itisrohit Jan 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Git
.git
.gitignore
.gitattributes

# Node modules and build outputs
node_modules
npm-debug.log
yarn-error.log
pnpm-debug.log
.turbo
dist
build
.next
out

# Dependencies cache
.bun
bun.lockb

# IDE and editors
.vscode
.idea
*.swp
*.swo
*~
.DS_Store

# Environment and config
.env
.env.local
.env.*.local
.eslintcache

# Documentation
*.md
docs/
README.md

# OS files
Thumbs.db
.DS_Store

# CI/CD
.github
.gitlab-ci.yml

# Docker
Dockerfile*
docker-compose*
.dockerignore

# Testing
*.test.ts
*.spec.ts
coverage
.nyc_output

# Misc
.prettierignore
.prettierrc
biome.json
tsconfig.json
turbo.json
67 changes: 67 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: CI

on:
push:
branches: ["main", "feat/container-readiness"]
pull_request:
branches: ["main"]

jobs:
build:
name: Build & Test
runs-on: ubuntu-latest
timeout-minutes: 15

env:
# Database URL for 'init-db' step (connecting to exposed docker port)
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/base0

steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest

- name: Cache Bun dependencies
uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }}
restore-keys: |
${{ runner.os }}-bun-

- name: Install dependencies
run: bun install --frozen-lockfile

- name: Check Code Quality (Lint & Biome)
run: bun run check

- name: Type Check
run: bun run type-check

- name: Build
run: bun run build

- name: Start Infrastructure
run: |
docker compose up -d --build postgres api minio

# Wait for API health check
echo "Waiting for API to be healthy..."
timeout 60s sh -c 'until curl -s http://localhost:3001/health | grep "OK"; do sleep 2; done'
echo "Infrastructure is ready!"

- name: Init Test Database
run: |
# The postgres container is exposed on 5432
cd packages/db
bun run db:push

- name: Run Tests
run: bun run test
env:
# Ensure tests target the local exposed port which maps to the container
API_URL: http://localhost:3001/v1
113 changes: 113 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Contributing to Base0

Thank you for your interest in contributing to Base0. This guide is intended to help you understand the development process, potential areas for contribution, and how to submit successful Pull Requests.

## Understanding the Project

Before contributing, we recommend reviewing the core documentation to understand the project's architecture and future direction:

* **Project Plan**: See [docs/plan.md](docs/plan.md) for the architectural overview and features.
* **Future Roadmap**: See [docs/roadmap.md](docs/roadmap.md) for planned phases and upcoming features.

## How Can You Contribute?

We welcome contributions in several forms:

1. **Reporting Bugs**: If you encounter unintended behavior, please open an Issue describing the reproduction steps.
2. **Suggesting Features**: Check the Roadmap first. If your idea isn't listed, propose it via an Issue.
3. **Codebase Improvements**: You can pick up "Good First Issues" or work on roadmap items (Vector DB, Realtime, Enterprise Auth).
4. **Documentation**: Improving the clarity of our specific guides or inline comments.

## Development Environment

### Prerequisites

* **Runtime**: Bun (v1.2 or higher)
* **Container**: Docker (required for the local PostgreSQL instance)

### Setup Instructions

1. **Clone the repository**:
```bash
git clone https://github.com/itisrohit/base0.git
cd base0
```

2. **Install dependencies**:
```bash
bun install
```

3. **Configure Environment**:
```bash
cp .env.example .env
```

4. **Start Infrastructure**:
```bash
docker-compose up -d db
```

5. **Initialize Database**:
```bash
bun run db:push
```

6. **Start Development Server**:
This will start both the API and the Dashboard concurrently:
```bash
bun run dev
```
* **Dashboard**: http://localhost:5173
* **API**: http://localhost:3001

## Operations

We use **Turborepo** to manage tasks across the workspace.

* `bun run build` - Build all apps and packages.
* `bun run lint` - Lint all code using Biome.
* `bun run check` - Run type-checking and linting verification.

## Project Structure

* `apps/api`: The Hono-based backend core.
* `apps/dashboard`: The React 19 mission control dashboard.
* `packages/db`: Shared Drizzle ORM schema and database utilities.

## Pull Request Process

1. **Fork the Repository**: Create a fork of the repository to your own GitHub account.
2. **Create a Branch**: Create a new branch from `main` with a descriptive name (e.g., `feat/vector-search` or `fix/auth-bug`).
3. **Implement Changes**: write your code, ensuring it adheres to the project's coding standards.
4. **Verify**: Run `bun run check` to ensure your code passes all linting and type-safety checks.
5. **Commit**: Use Conventional Commits for your messages (e.g., `feat: add realtime websocket server`).
6. **Submit PR**: Push your branch and open a Pull Request against the `main` branch. Provide a clear description of the changes and link any related issues.

### Pull Request Format

Please copy and paste the following template into your PR description:

```markdown
## Summary
<!-- Explain what this PR does and why it is needed -->

## Type of Change
<!-- Please delete options that are not relevant -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update

## Checklist
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] My changes generate no new linting or build errors
```

## Coding Standards

* **Strict Typed**: We enforce strict TypeScript configurations. Avoid usage of `any`.
* **Linter**: We use Biome. Ensure your code is formatted before submission.

Loading