- Node.js 18+ with npm
- Git for version control
- Database (PostgreSQL, MySQL, or SQLite for development)
- Docker (optional, for containerized development)
- VS Code with Vue.js and Node.js extensions
- Postman or similar for API testing
- Database client (DBeaver, pgAdmin, or similar)
# Clone the repository
git clone https://github.com/nocodb/nocodb.git
cd nocodb
# Install dependencies
npm install
# Copy environment configuration
cp .env.example .env
# Edit .env file with your database credentials
# DB_TYPE=pg (or mysql, sqlite)
# DB_HOST=localhost
# DB_PORT=5432
# DB_USERNAME=your_username
# DB_PASSWORD=your_password
# DB_DATABASE=nocodb_dev
# Run database migrations
npm run migrate
# Start development server
npm run dev# Clone the repository
git clone https://github.com/nocodb/nocodb.git
cd nocodb
# Start with Docker Compose
docker-compose up -d
# Access the application
# - Web UI: http://localhost:8080
# - API: http://localhost:8080/api/v1PostgreSQL:
DB_TYPE=pg
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=your_password
DB_DATABASE=nocodb_devMySQL:
DB_TYPE=mysql2
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=your_password
DB_DATABASE=nocodb_devSQLite (Development Only):
DB_TYPE=sqlite3
DB_PATH=./nocodb.db# Application
PORT=8080
NODE_ENV=development
# Security
JWT_SECRET=your_jwt_secret_here
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=your_admin_password
# File Storage
FILE_STORAGE=local
# Or for cloud storage:
# FILE_STORAGE=s3
# AWS_ACCESS_KEY_ID=your_key
# AWS_SECRET_ACCESS_KEY=your_secret
# AWS_BUCKET=your_bucketnocodb/
├── packages/
│ ├── nc-gui/ # Vue.js frontend
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Route-based page components
│ │ └── store/ # Vuex state management
│ ├── nocodb/ # Node.js backend
│ │ ├── src/
│ │ │ ├── lib/ # Core business logic
│ │ │ ├── models/ # Database models
│ │ │ └── routes/ # API endpoints
│ └── nc-common/ # Shared utilities
├── docker-compose.yml
└── package.json
# Check if API server is running
curl http://localhost:8080/api/v1/health
# Should return: {"status": "ok"}# Test database connection
npm run test:db
# Should show successful connection message# Start frontend in development mode
cd packages/nc-gui
npm run dev
# Frontend should be available at http://localhost:3000# Navigate to backend package
cd packages/nocodb
# Install new dependencies
npm install package-name
# Run tests
npm test
# Start backend in watch mode
npm run dev# Navigate to frontend package
cd packages/nc-gui
# Install new dependencies
npm install package-name
# Start development server with hot reload
npm run dev# Create new migration
npm run migration:create migration_name
# Run pending migrations
npm run migrate
# Rollback migration
npm run migrate:rollback- Create connector class in
src/lib/db/ - Implement required interface methods
- Add tests in
test/unit/db/ - Update configuration schema
- Add component to
packages/nc-gui/components/ - Register in component index
- Add to Storybook for documentation
- Write unit tests
- Define route in
src/routes/ - Implement controller logic
- Add input validation middleware
- Write integration tests
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug NocoDB Backend",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/packages/nocodb/src/index.js",
"env": {
"NODE_ENV": "development"
},
"console": "integratedTerminal",
"cwd": "${workspaceFolder}/packages/nocodb"
}
]
}For frontend debugging:
- Install Vue.js DevTools extension
- Enable source maps in Vue config
- Use browser debugger for component inspection
Port Already in Use:
# Find and kill process using port 8080
lsof -ti:8080 | xargs kill -9Database Connection Failed:
# Check database status
systemctl status postgresql
# or
systemctl status mysqlPermission Errors:
# Fix file permissions
sudo chown -R $USER:$USER .
chmod -R 755 .Node Version Issues:
# Use Node Version Manager
nvm install 18
nvm use 18Once your environment is set up:
- Explore the UI - Create your first base and table
- Check the API - Test auto-generated endpoints
- Review the Code - Start with core models and routes
- Read Architecture Guide - System Overview
- Setup Issues: Open an issue with
[nocodb-setup]tag - NocoDB Community: Official Discord
- Development Questions: GitHub Discussions
✅ Environment ready? Continue to System Overview