2022-04-27 08:01:13 +08:00
English | [中文 ](./README.zh-CN.md )
2022-04-17 10:00:42 +08:00
![](https://nocobase.oss-cn-beijing.aliyuncs.com/bbcedd403d31cd1ccc4e9709581f5c2f.png)
What is NocoBase
----------
NocoBase is a scalability-first, open-source no-code development platform. No programming required, build your own collaboration platform, management system with NocoBase in minutes.
Homepage:
https://www.nocobase.com/
Online Demo:
https://demo.nocobase.com/new
Contact Us:
hello@nocobase.com
Why choose NocoBase
----------
- **Open source and free**
2022-04-27 07:45:38 +08:00
- Unrestricted commercial use under the Apache-2.0 license
2022-04-17 10:00:42 +08:00
- Full code ownership, private deployment, private and secure data
- Free to expand and develop for actual needs
- Good ecological support
- **Strong no-code capability**
2022-04-27 07:45:38 +08:00
- Data Model
2022-04-29 15:33:05 +08:00
- Create independent data models using dozens of field types such as text, date, number, attachment, option, icon, etc., and various association relationships such as one-to-one, one-to-many, many-to-many, etc.
2022-04-27 07:45:38 +08:00
- Block
2022-04-29 15:33:05 +08:00
- Display and manipulate data within a page using a free combination of block types such as tables, forms, kanban, calendars, details, etc.
2022-04-27 07:45:38 +08:00
- ACL
2022-04-29 15:33:05 +08:00
- Role-based control of user's system configuration rights, data action rights and menu access rights.
2022-04-27 07:45:38 +08:00
- Workflow
2022-04-29 15:33:05 +08:00
- Repetitive tasks are replaced by automation to increase efficiency. Manual approval is required for important matters.
- Menu
- You can group menus, support adding pages and links, and support unlimited submenus.
- Action
- Support filtering, exporting, adding, deleting, modifying, viewing and other operations to process data, which can be extended to more types.
2022-04-17 10:00:42 +08:00
- **Developer-friendly**
- Microkernel architecture, flexible and easy to extend, with a robust plug-in system
- Node.js-based, with popular frameworks and technologies, including Koa, Sequelize, React, Formily, Ant Design, etc.
- Progressive development, easy for getting-started, friendly to newcomers
- No binding, no strong dependencies, can be used in any combination or extensions, can be used in existing projects
Architecture
----------
![](https://docs.nocobase.com/static/NocoBase.c9542b1f.png)
Requirements
----------
Node:
2022-04-29 10:55:01 +08:00
- Node.js 14+
2022-04-17 10:00:42 +08:00
2022-04-29 12:05:06 +08:00
Database:(choose one)
2022-04-17 10:00:42 +08:00
- PostgreSQL 10.x+
2022-04-25 19:05:33 +08:00
- MySQL 8.x+
- SQLite 3+
2022-04-17 10:00:42 +08:00
Installation
----------
2022-04-29 12:14:23 +08:00
### Create a project with Docker (👍Recommended)
2022-04-29 00:09:40 +08:00
2022-04-29 12:05:06 +08:00
⚡⚡ Please make sure you have installed [Docker ](https://docs.docker.com/get-docker/ )
2022-04-29 12:14:23 +08:00
#### 1. Download NocoBase
2022-04-29 10:55:01 +08:00
Download with Git (or [Download Zip ](https://github.com/nocobase/nocobase/archive/refs/heads/main.zip ), and extract it to the `nocobase` directory)
2022-04-29 00:09:40 +08:00
```bash
2022-04-29 10:55:01 +08:00
git clone https://github.com/nocobase/nocobase.git nocobase
2022-04-29 00:09:40 +08:00
```
2022-04-29 12:14:23 +08:00
#### 2. Select database (choose one)
2022-04-29 00:09:40 +08:00
2022-04-29 10:55:01 +08:00
Supports SQLite, MySQL, PostgreSQL
2022-04-29 00:09:40 +08:00
2022-04-29 10:55:01 +08:00
```bash
# SQLite
cd nocobase/docker/app-sqlite
# MySQL
cd nocobase/docker/app-mysql
# PostgreSQL
cd nocobase/docker/app-postgres
2022-04-29 00:09:40 +08:00
```
2022-04-29 12:14:23 +08:00
#### 3. Install and start NocoBase
2022-04-29 00:09:40 +08:00
2022-04-29 00:13:58 +08:00
It may take dozens of seconds
2022-04-29 00:09:40 +08:00
```bash
2022-04-29 10:55:01 +08:00
# run in the background
$ docker-compose up -d
# view app logs
$ docker-compose logs app
2022-04-29 00:09:40 +08:00
app-sqlite-app-1 | nginx started
app-sqlite-app-1 | yarn run v1.22.15
app-sqlite-app-1 | $ cross-env DOTENV_CONFIG_PATH=.env node -r dotenv/config packages/app/server/lib/index.js install -s
app-sqlite-app-1 | Done in 2.72s.
app-sqlite-app-1 | yarn run v1.22.15
app-sqlite-app-1 | $ pm2-runtime start --node-args="-r dotenv/config" packages/app/server/lib/index.js -- start
app-sqlite-app-1 | 2022-04-28T15:45:38: PM2 log: Launching in no daemon mode
app-sqlite-app-1 | 2022-04-28T15:45:38: PM2 log: App [index:0] starting in -fork mode-
app-sqlite-app-1 | 2022-04-28T15:45:38: PM2 log: App [index:0] online
app-sqlite-app-1 | 🚀 NocoBase server running at: http://localhost:13000/
```
2022-04-29 12:14:23 +08:00
#### 4. Log in to NocoBase
2022-04-29 00:09:40 +08:00
2022-04-29 00:13:58 +08:00
Open [http://localhost:13000 ](http://localhost:13000 ) in a web browser. The initial account and password are `admin@nocobase.com` and `admin123` .
2022-04-29 00:09:40 +08:00
2022-04-29 12:14:23 +08:00
### Create a project with `create-nocobase-app`
2022-04-17 10:00:42 +08:00
~~~shell
# 1. create project
2022-04-25 19:05:33 +08:00
# SQLite
yarn create nocobase-app my-nocobase-app -d sqlite
# MySQL
yarn create nocobase-app my-nocobase-app -d mysql \
-e DB_HOST=mysql \
-e DB_PORT=3356 \
-e DB_DATABASE=nocobase \
-e DB_USER=nocobase \
-e DB_PASSWORD=nocobase
# PostgreSQL
yarn create nocobase-app my-nocobase-app -d postgres \
-e DB_HOST=postgres \
-e DB_PORT=5432 \
-e DB_DATABASE=postgres \
-e DB_USER=postgres \
-e DB_PASSWORD=postgres
2022-04-17 10:00:42 +08:00
# 2. switch to the project directory
cd my-nocobase-app
2022-04-25 19:05:33 +08:00
# 3. Install dependencies
yarn install
# 4. Install NocoBase
2022-04-17 10:00:42 +08:00
yarn nocobase install --lang=en-US
2022-04-25 19:05:33 +08:00
# 5. start project
2022-04-17 10:00:42 +08:00
yarn start
~~~
Open [http://localhost:8000 ](http://localhost:8000 ) in a web browser. The initial account and password are `admin@nocobase.com` and `admin123` .
2022-04-29 12:14:23 +08:00
### Contributing
2022-04-17 10:00:42 +08:00
- Fork the source code to your own repository
- Modify source code
- Submit pull request
```bash
# Replace the following git address with your own repo
git clone https://github.com/nocobase/nocobase.git
cd nocobase
cp .env.example .env
yarn install
yarn nocobase install
yarn start
```
2022-04-29 12:14:23 +08:00
#### Building
2022-04-17 10:00:42 +08:00
```bash
2022-04-25 09:45:56 +08:00
# For all packages
2022-04-17 10:00:42 +08:00
yarn build
2022-04-25 09:45:56 +08:00
# For specific package
yarn build --scope @nocobase/database
2022-04-17 10:00:42 +08:00
```
2022-04-29 12:14:23 +08:00
#### Testing
2022-04-17 10:00:42 +08:00
```bash
# For all packages
yarn test
# For specific package
yarn test packages/< name >
```