mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
8.5 KiB
8.5 KiB
NocoDB
✨ Airtable 的开源替代品 ✨
将 MySQL、PostgreSQL、SQL Server、SQLite 或 MariaDB 转换为智能电子表格。
Website • Discord • Twitter • Reddit • Documentation
快速尝试
一键式部署
Heroku
使用Docker
docker run -d --name nocodb -p 8080:8080 nocodb/nocodb:latest
要使用数据持久化,你可以挂载到
/usr/app/data/
。
使用NPM
npx create-nocodb-app
使用git
git clone https://github.com/nocodb/nocodb-seed
cd nocodb-seed
npm install
npm start
GUI
使用仪表板使用 : http://localhost:8080/dashboard
加入我们的社区
截图
特征
丰富的电子表格功能
- ⚡ 搜索,排序,过滤,隐藏列
- ⚡ 创建视图:网格,画廊,看板,甘特图,表单
- ⚡ 分享视图:公开 或 密码保护
- ⚡ 个人和锁定视图
- ⚡ 将图像上传到单元格(使用S3,Minio,GCP,Azure,DigitalOcean,Linode,OVH,Backblaze)
- ⚡ 角色:所有者,创建者,编辑器,查看器,评论者,自定义角色。
- ⚡ 访问控制:在
数据库
、表
、列
级别的访问控制。
工作流自动化应用商店:
- ⚡ 聊天:微软Teams,Slack,Discord,Mattermost
- ⚡ 电子邮件:SMTP,SES,MailChimp
- ⚡ 短信:Twilio
- ⚡ 任何第三方API
Programmatic API访问通过:
- ⚡ REST API (Swagger)
- ⚡ GraphQL API
- ⚡ JWT身份验证和社交验证
- ⚡ 与Zapier,Integromat集成的API
生产安装
NoCodb 要求一个数据库用来存储电子表格视图和外部元数据。可以在NC_DB
环境变量中指定此数据库的连接参数。
Docker
MySQL 示例
docker run -d -p 8080:8080 \
-e NC_DB="mysql2://host.docker.internal:3306?u=root&p=password&d=d1" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb:latest
Postgres 示例
docker run -d -p 8080:8080 \
-e NC_DB="pg://host:port?u=user&p=password&d=database" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb:latest
SQL Server 示例
docker run -d -p 8080:8080 \
-e NC_DB="mssql://host:port?u=user&p=password&d=database" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb:latest
Docker Compose
git clone https://github.com/nocodb/nocodb
cd docker-compose
cd mysql or pg or mssql
docker-compose up
环境变量
变量 | 强制 | 注释 | 缺省 |
---|---|---|---|
NC_DB | Yes | 查看我们的数据库 URL | 将在根文件夹中创建一个本地 SQLite 文件 |
DATABASE_URL | No | JDBC URL 格式。 可以代替 NC_DB 使用。 用于一键式 Heroku 部署 | |
DATABASE_URL_FILE | No | 包含 JDBC URL 格式的文件的路径。 可以代替 NC_DB 使用。 用于一键式 Heroku 部署 | |
NC_PUBLIC_URL | Yes | 用于发送电子邮件邀请 | 尽量从 http 请求参数推测一个 |
NC_AUTH_JWT_SECRET | Yes | JWT secret 用于认证和存储其他加密项 | 将会产生一个随机的 secret |
NC_SENTRY_DSN | No | 用于 Sentry 监控 | |
NC_CONNECT_TO_EXTERNAL_DB_DISABLED | No | 禁止使用外部数据库创建项目 | |
NC_DISABLE_TELE | No | 禁用 telemetry | |
NC_BACKEND_URL | No | 自定义后端URL | 将使用http://localhost:8080 |
开发安装
git clone https://github.com/nocodb/nocodb
cd nocodb
# 运行后端
cd packages/nocodb
npm install
npm run watch:run
# 在浏览器打开 localhost:8080/dashboard
# 运行前端
cd packages/nc-gui
npm install
npm run dev
# 在浏览器打开 localhost:3000/dashboard
对代码做更改后会自动重新启动服务。
在本地运行 Cypress 测试
# 安装开发依赖(cypress)
npm install
# 使用 docker compose 使用所需的数据库运行 mysql 数据库
docker-compose -f ./scripts/docker-compose-cypress.yml up
# 使用以下命令运行后端 api
npm run start:api
# 使用以下命令运行前端 Web UI
npm run start:web
# 等到 3000 和 8080 端口都可用时,使用以下命令运行Cypress测试
npm run cypress:run
# or run following command to run it with GUI
npm run cypress:open
贡献
- 请看一下 ./scripts/contribute/HowToApplyLicense.md
- 忽略为 .json 或 .md 或 .yml 添加标头
🎯 为什么我们建立这个?
大多数互联网业务都配备了电子表格或数据库以解决其业务需求,每天有上亿人使用电子表格。我们基于数据库运行更强大的工具能更高效地完成工作。用SaaS产品解决此问题的尝试已经意味着可怕的访问控制,供应商锁定,数据锁定,突然的价格变化,甚至是将来可能会阻碍发展。
❤ 我们的任务 :
我们的使命是为数据库提供最强大的无码界面,为世界上每一个互联网业务的开源使用。这不仅将民主化带给强大的计算工具,还将为数亿人增强他们的创造力。