a77f71e32f
* fix: improve code * v0.7.0-alpha.18 * chore(versions): 😊 publish v0.7.0-alpha.19 * fix: tips for app.install * chore(versions): 😊 publish v0.7.0-alpha.19 * fix: chalk module * chore(versions): 😊 publish v0.7.0-alpha.21 * fix: clean && force * chore(versions): 😊 publish v0.7.0-alpha.22 * feat: silent option * chore: storage folder * feat: storage folder * chore(versions): 😊 publish v0.7.0-alpha.23 * docs: update readme.md
268 lines
6.4 KiB
Markdown
268 lines
6.4 KiB
Markdown
English | [中文](./README.zh-CN.md)
|
|
|
|
![](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**
|
|
- Unrestricted commercial use under the Apache-2.0 license
|
|
- Full code ownership, private deployment, private and secure data
|
|
- Free to expand and develop for actual needs
|
|
- Good ecological support
|
|
- **Strong no-code capability**
|
|
- Data Model
|
|
- Dozens of field types such as text, attachments, etc., as well as many-to-many, one-to-many, one-to-one relationships.
|
|
- Menu
|
|
- Groups, pages, links combination into menu, support infinite level submenu
|
|
- Block
|
|
- Rich block types such as tables, kanban, calendars, forms, etc. are freely combined within the page to display and manipulate data.
|
|
- Action
|
|
- Configure actions such as filtering, exporting, adding, deleting, modifying, and viewing to process data.
|
|
- ACL
|
|
- Role-based control of user's system configuration rights, action rights and menu access rights.
|
|
- Workflow
|
|
- Repetitive tasks are replaced by automation, reducing manual operations and increasing efficiency.
|
|
- **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:
|
|
|
|
- Node.js 12.20+
|
|
|
|
Database:
|
|
|
|
- PostgreSQL 10.x+
|
|
- MySQL 8.x+
|
|
- SQLite 3+
|
|
|
|
Installation
|
|
----------
|
|
|
|
## Create a project with [Docker](https://docs.docker.com/get-docker/) (Recommended)
|
|
|
|
### 1. Create an empty project directory
|
|
|
|
```bash
|
|
mkdir my-nocobase-app && cd my-nocobase-app/
|
|
```
|
|
|
|
### 2. Create a docker-compose.yml file
|
|
|
|
#### SQLite
|
|
|
|
```yml
|
|
version: "3"
|
|
networks:
|
|
nocobase:
|
|
driver: bridge
|
|
services:
|
|
app:
|
|
image: nocobase/nocobase:latest
|
|
networks:
|
|
- nocobase
|
|
environment:
|
|
- LOCAL_STORAGE_BASE_URL=http://localhost:13000/storage/uploads
|
|
volumes:
|
|
- ./storage:/app/nocobase/storage
|
|
ports:
|
|
- "13000:80"
|
|
```
|
|
|
|
#### MySQL
|
|
|
|
```yml
|
|
version: "3"
|
|
networks:
|
|
nocobase:
|
|
driver: bridge
|
|
services:
|
|
app:
|
|
image: nocobase/nocobase:latest
|
|
networks:
|
|
- nocobase
|
|
environment:
|
|
- DB_DIALECT=mysql
|
|
- DB_HOST=mysql
|
|
- DB_DATABASE=nocobase
|
|
- DB_USER=nocobase
|
|
- DB_PASSWORD=nocobase
|
|
- LOCAL_STORAGE_BASE_URL=http://localhost:13000/storage/uploads
|
|
volumes:
|
|
- ./storage:/app/nocobase/storage
|
|
ports:
|
|
- "13000:80"
|
|
mysql:
|
|
image: mysql:8
|
|
environment:
|
|
MYSQL_DATABASE: nocobase
|
|
MYSQL_USER: nocobase
|
|
MYSQL_PASSWORD: nocobase
|
|
MYSQL_ROOT_PASSWORD: nocobase
|
|
restart: always
|
|
networks:
|
|
- nocobase
|
|
```
|
|
|
|
#### PostgreSQL
|
|
|
|
```yml
|
|
version: "3"
|
|
networks:
|
|
nocobase:
|
|
driver: bridge
|
|
services:
|
|
app:
|
|
image: nocobase/nocobase:latest
|
|
networks:
|
|
- nocobase
|
|
environment:
|
|
- DB_DIALECT=postgres
|
|
- DB_HOST=postgres
|
|
- DB_DATABASE=nocobase
|
|
- DB_USER=nocobase
|
|
- DB_PASSWORD=nocobase
|
|
- LOCAL_STORAGE_BASE_URL=http://localhost:13000/storage/uploads
|
|
volumes:
|
|
- ./storage:/app/nocobase/storage
|
|
ports:
|
|
- "13000:80"
|
|
postgres:
|
|
image: postgres:10
|
|
restart: always
|
|
networks:
|
|
- nocobase
|
|
command: postgres -c wal_level=logical
|
|
environment:
|
|
POSTGRES_USER: nocobase
|
|
POSTGRES_DB: nocobase
|
|
POSTGRES_PASSWORD: nocobase
|
|
```
|
|
|
|
### 3. Install and start NocoBase
|
|
|
|
安装过程可能需要等待几十秒钟
|
|
|
|
```bash
|
|
$ docker-compose up
|
|
|
|
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/
|
|
```
|
|
|
|
你也可以使用 `docker-compose up -d` 在后台运行,如:
|
|
|
|
```bash
|
|
# 在后台运行
|
|
$ docker-compose up -d
|
|
# 查看 app 进程的情况
|
|
$ docker-compose logs app
|
|
```
|
|
|
|
### 4. Log in to NocoBase
|
|
|
|
使用浏览器打开 http://localhost:13000/ 初始化账号和密码是 `admin@nocobase.com` 和 `admin123`。
|
|
|
|
## Create a project with `create-nocobase-app`
|
|
|
|
~~~shell
|
|
# 1. create project
|
|
# 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
|
|
|
|
# 2. switch to the project directory
|
|
cd my-nocobase-app
|
|
|
|
# 3. Install dependencies
|
|
yarn install
|
|
|
|
# 4. Install NocoBase
|
|
yarn nocobase install --lang=en-US
|
|
|
|
# 5. start project
|
|
yarn start
|
|
~~~
|
|
|
|
Open [http://localhost:8000](http://localhost:8000) in a web browser. The initial account and password are `admin@nocobase.com` and `admin123`.
|
|
|
|
## Contributing
|
|
|
|
- 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
|
|
```
|
|
|
|
### Building
|
|
|
|
```bash
|
|
# For all packages
|
|
yarn build
|
|
|
|
# For specific package
|
|
yarn build --scope @nocobase/database
|
|
```
|
|
|
|
### Testing
|
|
|
|
```bash
|
|
# For all packages
|
|
yarn test
|
|
|
|
# For specific package
|
|
yarn test packages/<name>
|
|
```
|