nocobase/README.md
chenos a77f71e32f
feat: improvements (#335)
* 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
2022-04-29 00:09:40 +08:00

6.4 KiB

English | 中文

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

Requirements

Node:

  • Node.js 12.20+

Database:

  • PostgreSQL 10.x+
  • MySQL 8.x+
  • SQLite 3+

Installation

1. Create an empty project directory

mkdir my-nocobase-app && cd my-nocobase-app/

2. Create a docker-compose.yml file

SQLite

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

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

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

安装过程可能需要等待几十秒钟

$ 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 在后台运行,如:

# 在后台运行
$ docker-compose up -d
# 查看 app 进程的情况
$ docker-compose logs app

4. Log in to NocoBase

使用浏览器打开 http://localhost:13000/ 初始化账号和密码是 admin@nocobase.comadmin123

Create a project with create-nocobase-app

# 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 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
# 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

# For all packages
yarn build

# For specific package
yarn build --scope @nocobase/database

Testing

# For all packages
yarn test

# For specific package
yarn test packages/<name>